Mir 並不只是 Unity 8
這是一篇來自 Canonical 的軟體工程師 Alan Griffiths 的一篇遊客文章。如果你也想投稿,請聯繫 ubuntu-devices@canonical.com
Mir 是一個計算機顯示的管理應用的支持項目。它可以與當前 Ubuntu 桌面(及很多其他桌面)上使用的、我們更熟悉的 X-Window 相比較。我下面會討論 Mir 的一些動機,但本篇的目的是澄清 Mir 和 Unity 8 之間的關係。
大多數時候你聽說 Mir 時都會提到 Unity 8。這並不奇怪,因為 Unity 8 是 Canonical 新的用戶界面 shell,用戶會一直與它交互。 Mir 「只」是使這成為可能。Unity 8 目前用於手機和平板電腦,也可以在 Ubuntu 16.10 桌面上「預覽」它。
在這裡我想解釋一下,可以不用 Unity 8 也可以使用 Mir。要麼作為替代 shell,要麼作為嵌入式環境的更簡單的界面:信息亭,電子標牌等。Mir 「抽象層」證明了這一點,它提供了三個重要的元素:
- libmiral.so - Mir 的穩定介面,提供基本的窗口管理;
- miral-shell - 一個提供「傳統」和「平鋪」窗口管理的示例 shell;
- miral-kiosk - 一個僅提供基本窗口管理的示例「信息亭」。
miral-shell 和 miral-kiosk 示例伺服器可從 zesty 的歸檔文件中獲得,Kevin Gunn 已經在「Voices」上寫了一篇基於 miral-kiosk 的「信息亭」的概覽的博文。我將在下面給出更多關於使用這些例子的細節,但在我的「voices」博客上有更多(包括「如何」開發自己的替代 Mir 伺服器)。
使用 MIR
Mir 是一套編程庫,而不是獨立的程序。這意味著這需要程序去調用它實現相應的功能。有兩種方式去使用 Mir 庫:編寫程序的時候作為「客戶端」,或者在實現 shell 時作為「服務端」。客戶端(和 X11 一起)典型是使用工具庫,而不是直接使用 Mir(或者 X11)。
GTK、Qt 和 SDL2 中有對 Mir 的支持。當在那些工具庫中啟用對它的支持時(默認在 Ubuntu 中啟用支持),意味著使用這些工具的程序應該「可以工作」於 Mir 中。除此之外還有一個 Xmir:一個運行於 Mir 的 X11 伺服器,這允許基於 X 的服務運行在 Mir 服務端上。
但是開始之前 Mir 客戶端需要一個相匹配的 Mir 服務端。在最後一個開發周期中,Mir 團隊在演示中將 MirAL 作為編寫 Mir 服務端的推薦方法,並推出了一個「miral-examples」包。在 Ubuntu 的開發版本 zesty 中,你可以從歸檔中安裝它:
$ sudo apt install miral-examples mir-graphics-drivers-desktop qtubuntu-desktop
對於其他平台,你需要自己構建 MirAL(有關詳細信息,請參閱 Mir 桌面環境示例)。
miral-examples 安裝後你可以在 Unity 7 中以窗口的方式運行一個 Mir 服務端,然後在裡面運行一個客戶端(比如 gedit):
$ miral-shell&
$ miral-run gedit
這會給你一個(非常基礎的)「傳統」 的桌面窗口管理。另外你可以試下「平鋪」窗口管理器:
$ miral-shell --window-manager tiling&
$ miral-run qterminal
或者(甚至更基礎的)信息亭界面:
$ miral-kiosk&
$ miral-run 7kaa
這些 Mir 服務端都不會提供帶有「啟動器」、通知等的完整「桌面」。但是它們演示了不使用 Unity 8 使用 Mir 的可能。
MIR 解決的問題
X-Window 系統過去是,並且現在也是,一種提供了與計算機的交互的非常成功的方式。它提供了廣泛的硬體和驅動程序一致的抽象。它支持許多桌面環境和圖形用戶界面工具包,並可以讓它們在大量計算機上一起工作。
但它來自一個與當前電腦使用方式非常不同的時代,現在有一些問題是很難滿足的,因為它需要支持老舊的系統。
在 1980 年,大多數計算機是由專家管理的大型事物,將它們連接在一起「是非常困難的」。在那個時代,開發軟體的成本是這樣的,一個程序「監聽」另一個程序獲得的好處是可以忽略不計的:此時幾乎沒有計算機,同時它們是獨立的,它們所有的工作和金融無關。
X-Window 開發於這種環境下,通過一系列擴展,它已經適應了許多變化。但它本質上是不安全的:任何應用程序可以知道顯示了什麼(並影響它)。你可以編寫像 Xeyes(用「眼睛」跟蹤游標)或「Tickeys」(通過鍵盤來生成打字機雜訊)等應用程序。現實是,任何應用程序可以跟蹤和操縱幾乎所有的事情。這就是基於 X 的桌面如 Unity 7、Gnome、KDE及其它桌面工作的方式。
X-Window 中窗口管理的開放性質不適合用於具有數百萬計算機連接到網際網路的世界,它們用於信用卡交易和網上銀行,且由非專家管理,並自願安裝來自陌生人的程序。人們越來越意識到讓 X-Window 適應新的安全性和圖形性能的要求是不可行的。
現在至少有兩個開源項目旨在提供一個替代品:Mir 和 Wayland。雖然有些人認為兩者是競爭關係,但在很多領域,它們有共同的利益:它們都需要與那些之前假定使用 X11 的其它軟體交互,並且許多引入支持的工作對兩者都有益。
Canonical 的 X-Window 替換品 Mir,它只將信息暴露給它需要的應用程序(因此沒有按鍵監聽或游標跟蹤)。它可以滿足當前時代的需求,並可以利用現代硬體,如圖形處理器。
via: https://insights.ubuntu.com/2016/11/28/mir-is-not-only-about-unity8/
作者:Alan Griffiths 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive