wayland 第一章 简介-官网翻译

动机

大多数基于 Linux 和 Unix 的系统依赖 X Window System(或简称 X)作为构建位图图形界面的低级协议。在这些系统上,X 堆栈已经发展到包含可以说属于客户端库、帮助程序库或主机操作系统内核的功能。支持性的功能支持已集成到 X 堆栈中,如对 PCI 资源管理、显示配置管理、直接渲染和内存管理等内容的;这些从而造成了限制,例如对独立应用程序的支持有限、在其他项目中重复(例如 Linux fb 层或 DirectFB 项目) ;以及组合多个元素的系统的高度复杂性(例如 fb 驱动程序和 X 驱动程序之间的 radeon 内存映射处理,或 VT 切换)。

此外,X 已经发展到包含离屏渲染和场景合成等现代功能,但受到 X 架构的限制。例如,组合的 X 实现添加了额外的上下文切换,并使输入重定向之类的事情变得困难。
在这里插入图片描述
上图说明了 X 服务器和合成器在操作中的核心作用,以及将内容显示到屏幕上所需的步骤。

随着时间的推移,X 开发人员开始了解这种方法的缺点,并努力将X的内容分开。在过去的几年里,很多功能已经从 X 服务器转移到客户端库或内核驱动程序中。最先移出的组件之一是font rendering,freetype 和 fontconfig 提供了核心 X 字体的替代方案~~(翻译不懂,英语太烂了)~~ 。直接渲染 OpenGL 作为客户端库中的图形驱动程序经历了一些迭代,最终成为 DRI2,它从客户端代码中抽象了大部分的直接渲染缓冲区管理功能。然后 cairo 出现并提供了一个独立于 X 的现代 2D 渲染库,随着 GTK+ 和 Qt 等工具包不再使用 X API 进行渲染,合成管理器接管了桌面渲染的控制。最近,内存和显示管理已转移到 Linux 内核,进一步缩小了 X 及其驱动程序堆栈的范围。最终结果是高度模块化的图形堆栈。

作为显示服务器的合成管理器

Wayland 是一种新的显示服务器和合成协议,而 Weston 是该协议的实现,它建立在上述所有组件之上(即X)。我们正在尝试提取现代 Linux 桌面仍在使用的 X 服务器中的功能。事实证明这并不是很多。应用程序可以分配自己的屏幕外缓冲区并直接渲染其窗口内容,使用硬件加速库(如 libGL)或高质量的软件实现(如在Carie找到的那些)。最后,需要的是一种呈现结果窗口表面以供显示的方法,以及一种在多个客户端之间接收和仲裁输入的方法。这就是 Wayland 提供的,通过以稍微不同的方式将生态系统中已有的组件拼凑在一起。

X 将始终是相关的,就像 Fortran 编译器和 VRML 浏览器一样,但现在是我们考虑将其移出关键路径,并将其作为遗留应用程序的可选组件提供。

总的来说,Wayland 的理念是为客户提供一种管理窗口及其内容显示方式的方法。渲染留给客户端,系统范围的内存管理接口用于在客户端和合成管理器之间传递缓冲区句柄。
在这里插入图片描述
上图说明了 Wayland 客户端如何与 Wayland 服务器交互。 请注意,窗口管理和合成完全在服务器中处理,显着降低了复杂性,同时通过减少上下文切换略微提高了性能。 由此产生的系统比类似的 X 系统更容易构建和扩展,因为通常只需要在一个地方进行更改;或者在协议扩展的情况下,需要修改两个地方(作为对比,X系统下,窗口管理和/或合成管理器可能需要更 3 或 4个地方)。

说明

本篇翻译来自于官网Introduction

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值