为什么 Canonical 选择 Mir 而不是 Wayland 作为显示服务器?

为什么 Canonical 选择 Mir 而不是 Wayland 作为显示服务器?

我想知道 Mir 有什么优势。

答案1

为什么不是 Wayland/Weston?

首先要澄清一个显而易见的事实:Wayland 是一个协议定义,它定义了客户端应用程序应如何与合成器组件通信。它涉及表面创建/销毁、图形缓冲区分配/管理、输入事件处理以及集成 shell 组件的粗略原型等领域。但是,我们对协议定义的评估表明,Wayland 协议不符合我们的要求。首先,我们的目标是实现一个更具扩展性的输入事件处理,将 3D 输入设备(例如 Leap Motion)等未来发展考虑在内。但请注意,Wayland 的输入事件处理不会受到 X 的输入事件处理语义引入的安全问题的影响(感谢 Daniel Stone 和 Kristian Høgsberg 指出这一点)。对于移动用例,我们认为输入方法的处理也应该反映在显示服务器协议中。再举一个例子,我们认为协议的 shell 集成部分是特权部分,我们宁愿避免在面向客户端的协议中定义任何类型的 shell 行为。

然而,我们仍然认为 Wayland 在标准化客户端和显示服务器组件之间的通信方面的尝试非常明智和有用,但由于我们的要求不同,我们决定采用以下架构来进行协议集成:

一个与协议无关的内核,定义非常明确、经过充分测试且可移植。外壳与前端防火墙一起允许我们将显示服务器移植到任意图形堆栈并将其绑定到多个协议。

总之,我们没有选择 Wayland/Weston 作为提供下一代用户体验的基础,因为它不能完全满足我们的要求。更重要的是,通过我们的协议和平台无关的方法,我们可以确保实现跨平台和设备外形的一致且美观的用户体验的目标。但是,可以通过为我们的显示服务器提供 Wayland 特定的前端实现或提供最终与 Mir 对话的 libwayland 的客户端实现来添加 Wayland 支持。

这里有更详细的讨论:https://wiki.ubuntu.com/Mir/Spec?action=show&redirect=MirSpec

Mir 技术架构师表示:

http://samohtv.wordpress.com/2013/03/04/mir-an-outpost-envisioned-as-a-new-home/

更多信息:

答案2

Jono Bacon 在他的问答中多次回答过这个问题。他最新的回答如下:

http://www.youtube.com/watch?v=6Oa2psAewtg&feature=share&t=56m36s

从 Jono 的问答和 Popey 在 Linux Unplugged 上的评论中我收集到的信息来看,可以总结如下要点:

  1. Wayland 功能太多。软件堆栈中存在永久未使用的功能是糟糕的软件设计。
  2. Wayland 团队不够灵活,无法提供经过精简的 Wayland 版本来充分、礼貌地适应。
  3. Mir 之于 Wayland,就像 LightDM 之于 GDM/KDM。
  4. Ubuntu 需要满足手机制造商等的紧迫期限。掌控项目可以更轻松地注入额外资源,以确保满足这些期限。
  5. 虽然我认为这个理由从未正式来自规范,因此只是我个人的猜测,但在做出这个决定的时候,Wayland 似乎并没有快速地进入市场,而现有的 Android 技术似乎是推出其产品的更合适的基础。

相关内容