[文章翻译] Wayland, X.Org 和 Mir
Tofloor
poster avatar
doooooit
deepin
2018-04-07 05:35
Author
原文:Wayland, X.Org and Mir
地址:https://distrowatch.com/weekly.php?issue=20180205#myth
作者:Jesse Smith

在今年(2018)年初,我们报导了在 FreeBSD 邮件列表上进行的讨论——开发人员正在讨论是否默认在 FreeBSD 端口中启用 Wayland 支持。经过一番讨论后,Kevin Oberman 提出了一个很好的观点,该观点可能会作为关于 Wayland 的任何讨论的脚注发表,他认为:“对于 Wayland 是什么、做什么,似乎普遍存在混淆。”

对于 Wayland 到底是什么、它如何被使用以及它如何与其他显示技术(如 X.Org 或 Mir)共存,大众对此存在普遍的误解。今天我想澄清一些关于这些技术的常见误解。

X.Org 是在 Linux 和 BSD 系统上显示图形元素的经典方法。 X.Org 显示服务器是构成桌面环境及其应用程序的许多组件之一。在图形绘制这个小的模型里,应用程序处于顶层,应用程序窗口的管理由被称为窗口管理器的单独任务处理。窗口管理器处于中间层,运行于 X.Org 显示服务器之上。而显示服务器负责绘制屏幕上的所有内容。我们举个实际中的例子:假如我们正在运行 Firefox 浏览器,这时其窗口的位置和行为,比如窗口拖动、改变窗口大小、最大化最小化等操作由 deepin-window-manager 之类的窗口管理器处理,而内容及窗口本身的绘制由 X.Org 完成。

X.Org 诞生已经有些年头了,一些开发人员觉得是时候用一种更新的、更简化的设计来替换它,于是在开源社区中出现了两种方法。第一个叫做 Wayland,第二个叫做 Mir。我们先来关注Wayland。

“Wayland 是一个合成器与客户端进行信息交流的协议,以及该协议的C库实现。”换句话说,Wayland 被设想成一个可以在屏幕上绘制应用程序的方法(程序)。 Wayland 网站对这个概念是这样描述的:“Wayland架构将显示服务器、窗口管理器和合成器集成到一个流程中,您可以将Wayland视为创建客户端和合成器的工具包,它不是一个特定的合成器或窗口管理器“。

换句话说,以前图像绘制和窗口管理是由X.Org和另一个窗口管理器分别处理的,现在则由 Wayland 将两者合并为一个作业统一负责。理论上,这应该让事情变得更简单。在以前应用程序是运行在一个单独的窗口管理器上的,由该窗口管理器去和显示服务器进行信息交换,而现在我们只需在 Wayland 实现中运行应用程序,Wayland 既是窗口管理器又是显示服务器。新方法更简化。

不过,现实是,Wayland 只定义了协议,并没有官方实现,许多人都对此存在误解。对于一个桌面环境,比如 GNOME 或者 KDE Plasma 或者 deepin 等桌面环境,为了支持Wayland,桌面开发人员必须创建自己的 Wayland 版本。

在这一方面,X.Org 与 Wayland 不同。X.Org 提供了一个满足大多数实际场景的实现,每个桌面环境都可以使用。而 Wayland 则需要每个桌面环境自己去编写一个 Wayland 实现。

至于 Mir,它是一个类似于 Wayland 的技术。不过与 Wayland 不同的是 Mir 既是协议的名称,也是 Mir 协议的具体实现。换句话说,Mir 软件实现了 Mir 协议。Mir 是从 Wayland 分离出来的一个单独项目,它们都做着大致相同的事情:为 X.Org 提供更简单,更轻的替代方案。

在过去的一年里,Mir 软件的开发者决定扩大其范围。 Mir 软件现在可以同时理解 Mir 协议和 Wayland 协议。简而言之,Mir 软件现在是 Wayland 协议的一个实现。

基于 Wayland 协议的 Mir 软件的一个潜在好处是,Mir 可以用作桌面中立显示服务器,用于较小的桌面项目。 对于 GNOME 和 KDE 这类相对较大的项目,它们有能力采用 Wayland 协议去开创性地实现自己的显示系统(KDE创建了KWin / Wayland,GNOME将Wayland支持写入了Mutter)。而对于较小的团队,比如在 MATE 和 Xfce 工作的团队,可能没有时间精力为他们的桌面环境创建自己版本的 Wayland。因此,一些较小的桌面项目正在考虑将 Mir 作为通用组件用来减少他们支持 Wayland 的工作量。

新的 Wayland 方式还有一个好处是它可以与旧的 X.Org 软件并存。正如 FreeBSD  开发人员 Johannes Lundberg 最近指出的那样:“X 和 Wayland 常见的库如 mesa-libs,Qt5 和 GTK30 为了启用 Wayland 将会变得更大,这对 X 用户是完全透明的,并且无论如何也不会影响 X 相关的组件,使用 Wayway 合成器如 Sway 或 Weston 仍然是完全可选的,它们可以与任何 X 服务器和 X11 窗口管理器共存。“在大多数情况下,我们不仅可以在同一操作系统上同时安装 Wayland 和 X.Org 桌面会话(desktop sessions),而且 X.Org 程序通常可以在 Wayland 会话中运行。

基于这一点,Wayland 的大部分实现(例如 KDE 和 GNOME 所使用的实现)都可以用于一般日常使用。不过,或许是因为还有一些问题要解决,又或许因为 X.Org 会话仍然运行良好,所以大多数发行版仍在继续使用 X.Org 桌面会话。



Reply Favorite View the author
All Replies
avatar
moonjourney
deepin
2018-04-07 05:43
#1
做不了wayland协议实现的桌面还是淘汰的好
Reply View the author
avatar
lenke
deepin
2018-04-07 05:45
#2
怎么有一种穿越的感觉
Reply View the author
avatar
rekols
deepin
2018-04-07 06:54
#3
Google翻译大法好
Reply View the author
avatar
155******38
deepin
2018-04-07 20:35
#4
又是一些被新名词新概念忽悠瘸了的。wayland现在一堆软件不兼任,光企业级的emc,hp,18m的很多软件都不兼容,就会炒作,以为客户是傻子。喜欢新技术,可以自己去用arch,lfs,gentoo,爱怎么玩怎么玩,别出来祸害别人。系统是拿来用的,不是拿来显摆的。一个不好用的软件系统就是shit。
Reply View the author
avatar
bnbvb
deepin
2018-04-07 21:22
#5
这翻译怎么强行把deepin塞进去,人家明明没提过...
Reply View the author
avatar
158******68
deepin
2018-04-07 21:45
#6
自己看看吧
Reply View the author