Wayland

title: 历史.
content: Wayland的创始人Kristian Høgsberg是X.Org Server开发者,曾参与过和的开发。他在2008年供职于红帽时发起了Wayland作为业余项目,目标是让“每一个帧都完美无瑕,也就是说应用程序要能充分地控制图形的渲染,使我们完全无法察觉任何的撕裂、延迟、重画及闪烁”。这一灵感浮现时他正开车经过马萨诸塞州的韦兰,也就由此决定了项目的名字。  2010年10月,Wayland加入了Freedesktop.org项目。在迁移过程中,邮件列表wayland-devel代替了原先的Google group邮件组,用于讨论项目的开发。  Wayland是自由软件,它的库(libwayland-server和libwayland-client)以MIT License授权,示例程序和Compositor一开始以GPLv2授权。现在整个项目都是以MIT License授权。直到2010年11月份,Wayland还仅仅只能在Intel、Nvidia和AMD的开源驱动上运行。
title: 设计.
content: Wayland运用既有的Linux核心技术,像是Direct Rendering Manager(DRM),Kernel Mode-Setting(KMS)以及Graphics Execution Manager(GEM)以提供一个最小化的显示管理服务。Wayland混合器(compositor)在2010年6月已从桌面常用的OpenGL改为OpenGL ES<ref name="Wayland Meets Some Summer Love w/ New Changes"></ref>。这个专案也开发支援Wayland显示的Qt,而不需要X。大部分应用程序都有望获得透过函式库,无需修改程序即可支援Wayland。  近些年来,GNU/Linux桌面图形开发者将许多与渲染有关的接口从X server移动到内核中。现在,已经有许多功能被移入内核(内存管理、任务调度、模式设置(KMS)等等)或是程序库(cairo、pixman、freetype、fontconfig、pango等等),所以窗口系统需要做的事情大大减少了。但是X11协议十分巨大、庞杂,并且它包括了许多已经过时的模块。虽然开发者们为了使X server适应现代化的计算机体系结构而开发出了XRandR、XRender、Composite等一些额外扩展,但这终究是治标不治本,同时这也会增加维护的难度。  Wayland是一款协议,但与X server不同的是,Wayland只做它必须要做的事情。下面以「鼠标点击按钮引发按钮更新动作」为例来说明一下Wayland和X server的区别: 在X中: 在Wayland中:  目前,Wayland使用OpenGL ES而不是传统的OpenGL。“从长远来看,我们需要完整的OpenGL支持,但问题是libGL会带来X的依赖性...”另一方面,使用OpenGL ES会使得Wayland更容易支持移动设备。Wayland目前并不支持网络透明性,但未来可能会支持。
title: 媒体关注.
content: Phoronix于2008年11月发表了一篇标题为「Wayland: A New X Server For Linux」的文章,披露Wayland这项新的项目。Kristian透过他的网志对此关注作出回应,他告示大众Wayland并非一个新的X server而是一个显示服务器,并声明这个新兴的专案尚处于未成熟的阶段。
title: 使用.
title: Arch Linux.
content: Arch Linux本身不具有Wayland。但实际上,安装 Enlightenment 或 KDE 等桌面环境时,可以选用Wayland安装作为显示服务器。
title: Ubuntu.
content: 马克·沙特尔沃思于2010年11月4日宣布Wayland将作为Ubuntu未来某一未定版本Unity接口的显示服务器。但是2013年3月份,Canonical确认他们将开发一个新的显示服务Mir而不是使用Wayland来替代X<ref name = "Ubuntu Announces Mir, A X.Org/Wayland Replacement"></ref>。2017年4月份,Canonical宣布放弃Unity与Mir,并于Ubuntu 17.10开始使用Wayland。但在18.04LTS版本中因为Wayland无法支持屏幕共享,远程桌面服务以及GNOME Shell崩溃的可恢复性更换为X.Org Server。
title: Fedora.
content: Fedora 25整合了GNOME桌面最新版本 3.22,并将GNOME桌面的版本的显示后端切换至预设为Wayland。
title: RHEL.
content: RHEL 8整合了Wayland。
title: Qt.
content: Qt 5.x提供了QtWayland模块以支持Wayland协议,借由-platform命令列选项,Qt应用程序可以在运行时切换图形后端,如X与Wayland。2011年1月,Wayland支持进入上游Qt版本库的Lighthouse分支。
title: KDE.
content: KWin,KDE的视窗管理器加入支持OpenGL ES输出,已在KDE SC 4.7发布。目前,KWin已经完成Wayland的初步移植。在2012年1月发布的KDE SC 4.8,KDE将支援X下执行Wayland。在2012年夏天发布的KDE SC 4.9,将可以直接执行Wayland,主要用于支援行动设备,也就是Plasma Active。
title: GNOME.
content: GNOME从3.10开始支持Wayland。
title: Compiz.
content: Compiz开发者们已经把它对X的依赖部分变成了一个可选插件。同时,Canonical正在为Compiz添加OpenGL ES的支持。众所周知,目前Wayland正是使用OpenGL ES,这使将得Compiz能够更容易迁移到Wayland。 注:compiz此项目的主要作者已经离开Canonical,使得此项目进入停止开发的状态,当然迁移到wayland的计划也就更遥遥无期。
title: Sailfish OS.
content: Jolla的第一款装置搭载的Sailfish OS使用Wayland。
title: 工具包.
content: 截止到2012年3月:  Clutter对Wayland已经有完整的支持。  Enlightenment Foundation Libraries对Wayland已经有完整的支持。  QT 5除了对client有一些改动之外,对Wayland已经有完整的支持。  GTK+3.4.0,发布于2012年3月26日,对Wayland的支持有一些缺陷。不过过随着3.4.1更新版本的发布,这个问题得到了缓解。  SDL的Wayland支持正在开发中。

Summary: Wayland是一个通信协议,规定了显示服务器与其客户机之间的通信方式,而使用这个协议的显示服务器称为Wayland Compositor。它由Kristian Høgsberg于2008年发起,目标是用更简单的现代化视窗系统取代X Window System。Wayland协议的参考实现称为Weston,由Wayland项目组使用C语言开发。

Wayland (Display-Server-Protokoll): Wayland ist ein Display-Server-Protokoll für Linux, FreeBSD und DragonFly BSD. Seine Hauptaufgabe ist das Rendern von Fenstern auf einer Bitmap. Es beschreibt die Kommunikation zwischen einem Display-Server und seinen Clients (üblicherweise die Anwendungen des Nutzers). Der Server wird Wayland-Compositor genannt, da er zusätzlich die Funktion eines Composition-Window-Manager übernimmt. Ziel von Wayland ist es, dem Programmierer ein leichter zu wartendes Display-Server-Protokoll als den bisherigen X-Window-Server bereitzustellen. Anwendungen, die noch vom X-Server abhängig sind, können mithilfe von "XWayland" auch unter einem Wayland-Compositor genutzt werden.