Xorg 服务器和窗口管理器(例如 metacity)在显示窗口时扮演什么角色?窗口管理器是否与操作系统或 Xorg 通信?Xorg 是否使用 OpenGl 来显示内容?
有人能准确解释一下 Xorg 服务器的功能、窗口管理器的功能以及两者之间的区别吗?如果您还能向我展示 Windows 的等效功能,那将很有帮助。
答案1
Windows 并没有与 Xorg 工作方式完全相同的程序。
Xorg 与系统的图形硬件通信,并通过操作系统处理来自键盘和鼠标的输入事件。您在 Xorg 桌面上运行的所有图形应用程序都会与 Xorg 通信,以便在屏幕上绘制并接收输入事件。窗口管理器只是系统上的另一个应用程序,但它处理诸如移动和调整窗口大小之类的事件,它会绘制窗口周围的边框,包括任何按钮,例如提供最小化、最大化和关闭功能的按钮。
Xorg 本身通过一种称为 GLX 的机制支持 OpenGL。Xorg 还支持一种称为 Compositing 的功能,允许使用 OpenGL/GLX 编写窗口管理器。对于合成窗口管理器,窗口管理器将从 Xorg 检索窗口内容并通过 OpenGL/GLX 渲染它们。在这种情况下,Xorg 服务器通常只渲染窗口管理器提供的图形。
最后,需要注意的是,Xorg 只是实现了一个名为 X11 的协议。这里描述的所有内容也适用于其他 X11 服务器,尽管功能可能有所不同,但某些 X11 服务器可能不支持 GLX 或 Compositing。