将其与 X 堆栈进行比较,那里到处都是零碎的东西。一些 X 混乱已经通过灵活的设计,一些已经成长的痛苦。所有的合成器(Compiz/Metacity/Mutter/KWin/etc)都是事后添加的。从本质上讲,它们是做 X 自己应该做的事情的黑客。如果事情继续像以前那样向外扩展,我们将达到项目变得无法维护的地步。
总而言之,当硬件支持存在时,它应该使整个堆栈更高效,并且在标准设置中使用时更不痛苦。
但是,到目前为止,有几个问题我还没有看到补救措施:
X 非常具有网络意识。您可以将窗口发送到其他计算机,您可以拥有多个带有远程登录的屏幕以及各种时髦的东西。这可能看起来相当专业,但它是广泛使用的技术。相比之下,Wayland 显得相当局部和静态。
还有驱动程序支持。闭源驱动程序尚未支持 Wayland 赖以发展的 KMS/shared-GEM/shared-DRM 技术。纯粹主义者可能会接受 Nouveau,但花 100 到 400 英镑购买高性能 3D 显卡的人不会对他们使用当前开放驱动程序获得的糟糕的 3D 性能感到满意。
您可以查看Wayland 架构页面,了解它在设计上的不同之处。它应该通过强制所有通过标准 GEM/DRM 堆栈直接进入内核并管理合成本身来简化整个图形堆栈。
将其与 X 堆栈进行比较,那里到处都是零碎的东西。一些 X 混乱已经通过灵活的设计,一些已经成长的痛苦。所有的合成器(Compiz/Metacity/Mutter/KWin/etc)都是事后添加的。从本质上讲,它们是做 X 自己应该做的事情的黑客。如果事情继续像以前那样向外扩展,我们将达到项目变得无法维护的地步。
总而言之,当硬件支持存在时,它应该使整个堆栈更高效,并且在标准设置中使用时更不痛苦。
但是,到目前为止,有几个问题我还没有看到补救措施:
X 非常具有网络意识。您可以将窗口发送到其他计算机,您可以拥有多个带有远程登录的屏幕以及各种时髦的东西。这可能看起来相当专业,但它是广泛使用的技术。相比之下,Wayland 显得相当局部和静态。
还有驱动程序支持。闭源驱动程序尚未支持 Wayland 赖以发展的 KMS/shared-GEM/shared-DRM 技术。纯粹主义者可能会接受 Nouveau,但花 100 到 400 英镑购买高性能 3D 显卡的人不会对他们使用当前开放驱动程序获得的糟糕的 3D 性能感到满意。
更新: Nvidia 正在努力支持 Wayland 和 Mir。
2018 年更新。17.10 使用 Wayland 作为默认显示服务器(除非你有一个封闭的驱动程序,或者一个不支持它的驱动程序,或者需要 X)。18.04 和 18.10 都使用 X 作为全局默认值(尽管您可以安装 Wayland)。
我不负责任何事情,但从这个职位来看,似乎我们距离获得真正的牵引力还差一个 Nvidia 的标准。在那之前,我认为我们不会看到足够的思想分享和发展力量落后于 Wayland。游戏/性能市场正在使用 X。MCE 市场正在使用 X(和直接帧缓冲区)。我不确定 Wayland 是否会有真正的机会。
X 和 Wayland 之间有很多不同之处。从图形方面来说,最大的可能是 Wayland不做任何绘图。
X 有两个绘图 API。其中之一是核心 X11 协议的一部分,它是古老的、无用的、没有人使用的。另一个是提供现代复合操作的 XRender 扩展,其中包括渐变等。例如,开罗就是这样使用的。X 也有字体绘制 API。
Wayland 没有绘图 API。Wayland 客户端获取 DRM 缓冲区句柄,它基本上是指向某些图形内存的指针;Wayland 不知道也不关心客户端如何绘制到该缓冲区。在 X 术语中,这意味着所有应用程序都可以直接渲染——绘图请求不需要通过服务器。
Wayland 所做的唯一渲染是将客户端的缓冲区复制到屏幕上。
就好处而言,Wayland 比 X 复杂得多,这应该更容易维护——尽管这种简单性部分来自将复杂性(例如:如何实际绘制到该缓冲区、网络透明度)推到了其他层堆。通过让客户负责他们的所有渲染,Wayland 使客户可以更聪明地处理双缓冲等事情。
图形之外还有其他好处。例如,沙箱应用程序要容易得多。
所有其他帖子都强调了 Wayland 的好处,但并非都是好的。X 相对于 Wayland 的最大优势是 X 在网络上工作。X 是网络透明的,您可以在终端上显示窗口或使用 XDMCP 完整会话,而实际程序在另一台通常更强大的机器上运行。有了像 Wayland 这样的东西,网络透明的想法就消失了。也许这些天对快速网络和其他协议(如 VNC 和 RDP)的要求并不高,只是想为了完整起见我会提到它。
在我看来,主要区别在于 Wayland 比 X-Server 更接近内核。随着图形驱动程序从 X 转移到内核(称为内核模式设置,KMS),Wayland 计划使用这个新功能来替换 X。您可能会看到以下内容...
比 X 占用更少的空间——因为显示是由内核处理的,Wayland 不必实现太多就可以使用。这是双向的,因为我怀疑 X 转发(查看另一台 PC 上的一个屏幕)可能会随着 X 消失。
KMS 功能:能够在不重新启动 X 服务器的情况下更改屏幕分辨率(尽管我相信这在不久前已在 X 中修复,至少对于 nvidia 而言),如果您喜欢英特尔芯片组的内核恐慌调试控制台(转向 nouveau)之类的东西。
如果我错了,任何人都可以纠正我吗?
简单地说,希望是更好的图形(更少的错误,更快,更容易使用)。甚至有一天,以前不可能的事情也可能成为可能。我个人认为这至少会让事情变得有趣,因为竞争总是如此。
在日常工作中任何人都会很快注意到的两件小事: