Linux 下的窗口管理器、shell、桌面环境、发行版和内核架构有如此多的选择,但为什么(也许)20 年后我们只有 X.org 服务器(包括它的前身)作为 GUI 的底层?
我了解 XFree86 和 Y,但大多数都被卡住了。创造一个新的(即现代的)有那么难吗?或者还有其他原因让我们被困在 X.org 上吗?
答案1
尽管 X.org 已经有 20 多年的历史了,但您到底需要从 Windows 服务器中获得哪些它没有提供的功能呢?您拥有 OpenGL 支持、抗锯齿字体、双缓冲、漂亮的半透明复合窗口、硬件加速视频播放。如果你喜欢的话,你甚至可以用 wine 来玩一些 DirectX 游戏。在您看来,是什么让 X11 服务器变得“现代”?
编写 X11 服务器很困难。开发它、添加功能并在其基础上进行 20 年的改造以保持其相关性更加困难。 X 服务器编程的入门门槛很高,而且我认为没有多少人参与其中。事实上,X.org 的关键点在于不断努力将现有的混乱代码重构和模块化为更易于管理的基础架构,从而更轻松地开发和实现新功能。
虽然“让我们重写它”这件事可能看起来很有趣,但我认为没有什么意义。
答案2
X11 还有其他几种实现,但没有一个具有 X.org 所具有的所有功能和驱动程序支持。
还有一些基于帧缓冲区的解决方案,例如 DirectFB 以及 Android 使用的任何解决方案。
最近的工作正在进行中韦兰计划,也许有一天它可能(部分)取代 X11。
答案3
好吧,有 SVGALib 或 fbdev,如果您愿意,您可以在其中之一之上构建一个窗口管理器。我认为现有的桌面环境(Gnome/KDE)是构建在 X.Org 编程接口之上的,因此您需要做大量工作才能使它们在不同的基础上工作。我听说 Android 使用它自己的帧缓冲系统并且不依赖于 X。与 POSIX 不同,底层图形系统没有真正的可移植 API,因此我们都默认使用 X。
答案4
嗯,有韦兰但这还没有准备好。