Mir 并不只是 Unity 8
创始人
2024-03-01 18:45:10
0

mir

这是一篇来自 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 “抽象层”证明了这一点,它提供了三个重要的元素:

  1. libmiral.so - Mir 的稳定接口,提供基本的窗口管理;
  2. miral-shell - 一个提供“传统”和“平铺”窗口管理的示例 shell;
  3. 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

本文由 LCTT 组织编译,Linux中国 荣誉推出

相关内容

Xfce 桌面终极对决:F...
谁:两个自带 Xfce 桌面的发行版——Fedora Xfce 与...
2026-07-22 14:40:01
Buildroot vs ...
在嵌入式与边缘计算开发中,操作系统的选择直接决定了产品的开发效率、...
2026-07-20 15:54:01
雷蛇推进灵刃18 Ubun...
近日,科技媒体Phoronix披露了一则重要消息:雷蛇正为其旗舰级...
2026-07-08 23:01:45
别被外表骗了:KDE 桌面...
核心结论:KDE Plasma 桌面同样漂亮,但两款发行版定位不同...
2026-05-21 03:37:42
放弃Ubuntu吧!Deb...
过去几年,我看到不少读者在评论区、私信里吐槽Ubuntu:Snap...
2026-05-09 16:17:21
美股AI应用软件股盘前走强
美股 AI应用软件股盘前走强,Datadog涨幅扩大至逾31%,U...
2026-05-08 07:48:52

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...