为什么我们需要 Wayland(或 X)?

为什么我们需要 Wayland(或 X)?

我完全不知道我们为什么需要 Wayland(或 X)。既然在 Wayland 下应用程序会自行绘制,那么 Wayland 的意义何在?应用程序可以绘制自己的窗口和小部件,不是吗?

没有 Wayland(或 X)我们就不能做什么?

答案1

是的,应用程序会绘制自己的小部件和窗口,但仅此而已。特别是,它们不知道其他应用程序在屏幕上绘制了什么。每个应用程序都会告诉窗口管理器它想要在屏幕上绘制哪些像素,然后窗口管理器负责将这些像素组合起来,为用户生成多应用程序显示,而无需应用程序之间进行任何直接通信。请参阅https://en.wikipedia.org/wiki/Compositing_window_manager

Wayland 或 X 的另一个功能是将用户输入(键盘和鼠标移动/点击)定向到正确的应用程序。如果没有窗口管理器,每个应用程序都必须接收所有按键、鼠标移动和点击,然后确定该输入是定向到自身还是其他应用程序。虽然这可以在 UI 工具包中处理,但显然在较低级别的组件中进行一次计算更有效(也更安全)。

在较低级别,X 和 Wayland 为程序提供了一个抽象的 API,而不是单个显卡 API 的低级别。作为额外好处,客户端-服务器架构允许我们通过 SSH 运行图形应用程序。

相关内容