如果你认为X在现代Linux系统中是一个开销的来源,那么你可能没有找到正确的地方。 X是设计用于比现代手机性能弱得多的计算机,而且已经设计很久了。
如果你查看"top"并看到X使用内存,就需要进行很多工作来确定实际的X开销。有一些内存映射不是“真正”的内存,并且还有资源(如应用程序所分配的大块像素)。总之,在top中显示的X内存并不是人们想象的那样。
人们也会听说X使用“网络”,并认为这将成为性能瓶颈。这里的“网络”是指本地UNIX域套接字,在现代Linux上几乎没有开销。对于可能在网络上成为瓶颈的事情,有X扩展可以使其更快(共享内存像素图,DRI等)。进程内的线程未必比X套接字更快,因为瓶颈主要与协调多个线程或进程访问相同硬件的固有问题有关,而不是与本地套接字的最小开销有关。
多进程设置有很多优点,例如更难崩溃。以Google Chrome为例,使用多个进程来提高鲁棒性 - 结果是运行速度更快。进程越少并不一定意味着更现代。
有许多原因使使用GTK的应用程序无法透明地移植到DirectFB。对于Firefox,一个原因是它有时会直接使用X。此外,一些与工具包无关的东西,如浏览器插件接口,也直接使用X。例如,Flash插件将无法在DirectFB上运行。即使不直接使用X的应用程序通常也会假设正常的基于X的桌面环境存在(如GNOME等)。
替换X的另一个问题是驱动程序支持,在其更好的图形卡(NVidia、ATI)都有专有驱动程序比自由驱动程序更具能力,而这些专有驱动程序与X相关联。
当然,还有迁移路径。如果您有数百个使用X的应用程序,并且没有明显的X端用户缺点,那么没人会切换到无法运行任何应用程序的新系统。最可能的解决方案是在新窗口系统上运行根本无法窗口化的X服务器,以便旧的应用程序仍然可以使用。
老旧并不总是坏的。X由聪明的人设计得非常好,这使得它能够演变和改变并仍然在许多年后工作良好。
总之,换掉X需要很大的努力,它真的运行良好,“运行良好”从来没有适用于任何替代方案(至少如果你想在大多数硬件上运行大多数应用程序)。
有一些问题需要解决,比如不可能进行原子屏幕更新,Wayland项目正在研究这个问题,但大多数问题对用户来说只是表面问题(例如非原子更新),对开发人员来说只是表面问题(老旧的废弃扩展等)。事实并不是丢掉X就可以神奇地得到更小、更快的东西。这主要基于人们猜测“旧的”和“使用网络”一定会很慢和臃肿,但再次强调,X是为真正糟糕的硬件而设计的。我曾经在我的386上顺利运行X(和Emacs!),可能只有8兆字节的RAM或类似的东西。