最近 宣布发布Wayland 1.18协议的新稳定版本,其中此新版本与1.x版的API和ABI级别上的先前版本兼容,但也包含部分改进。
对于那些不了解Wayland的人,他们应该知道 这是用于复合服务器和与其一起工作的应用程序交互的协议。 客户端分别独立地渲染其窗口,将更新信息传递到复合服务器,该服务器将各个应用程序窗口的内容组合起来以形成最终输出,同时考虑到诸如窗口重叠和透明度之类的细微差别。
换句话说,复合服务器不提供API 用于渲染单个元素 并且仅在已经形成的窗口下运行 使用高级库(例如GTK +和Qt)消除双重缓冲。
关于韦兰
目前,支持 与Wayland直接合作 已针对GTK3 +,Qt 5,SDL,Clutter和EFL实现 (启蒙基金会图书馆)。
与硬件的交互 在Wayland / Weston中,例如,初始化,更改视频模式(drm模式设置)和内存管理(i915为GEM,radeon和nouveau为TTM), 可以直接通过内核级模块完成,这使您可以绕过超级用户特权。
Weston复合服务器不仅可以使用Linux内核DRM模块运行,而且还可以在X11,其他Wayland复合服务器,帧缓冲区和RDP上运行。 此外,正在开发项目以确保在Android平台图形堆栈的顶部进行工作。
作为Weston项目的一部分,正在开发一种复合服务器部署。
任何其他支持Wayland协议的产品也可以充当复合服务器。
例如: 目前正在为KWin的Wayland提供支持的工作。 以目前的形式,Weston已经超出了一组示例的范围来测试Wayland协议,并且可以通过插件获取功能。 此外,建议以Weston外部的后端形式实现自定义外壳程序和高级窗口管理功能。
为了确保普通的X11应用程序在基于Wayland的环境中运行,使用了XWayland DDX(设备相关X)组件,该组件在组织上类似于在Win32和OS X平台的Xwin和Xquartz中工作。
计划将对X11应用程序启动的支持直接集成到Weston复合服务器中,当涉及完整的X11应用程序时,它将启动X服务器和相关XWayland组件的启动。
通过这种方法,对于启动直接与Wayland一起使用的应用程序的用户而言,启动X11应用程序的过程将是简单而直接的。
Wayland 1.18的重大改进
在其新颖性方面,该公告提到了增加了对Meson建筑系统的支持,虽然仍保留使用自动工具进行构建的功能,但在以后的版本中将删除该功能。
Wayland 1.18的新版本中另一个引人注目的变化是 新API已添加到单独的代理对象 基于标签。 这允许应用程序和工具包共享Wayland连接。
另外, 添加了wl_global_remove()函数 分派一个全局对象删除事件而不清除它。
新功能允许消除全局对象时消除“竞赛条件”的发生。 由于客户无法确认是否收到淘汰赛,因此可能会发生类似的比赛情况。 wl_global_remove()函数使它可以首先发送删除事件,并且只有在一定延迟后才删除对象。
还 Wayland服务器计时器已跟踪保证 在用户空间中,消除了创建过多文件描述符的麻烦。
直到最后一个图形多服务器,唯一没有重新发明轮子的事情就变得太复杂了,它似乎不是最后一个稻草,在这里,我将尽可能地对X11感到满意。
PS:您知道在不破坏Debian中一切稳定的情况下返回SystemV的任何方法吗? 提前致谢。