我很好奇,我相信 OSX 使 *nix 的 GUI 体验更“活泼”的方法之一是放弃 X 并更直接地在硬件上运行窗口管理器。
如果我想在桌面上运行 Linux,并且不想将 Windows 发送到网络上的其他机器,我可以运行没有“X”的 KDE 或 Gnome 来消除窗口管理器体验中的轻微延迟吗?
我猜基本上我想问的是 Linux 上是否有与 quartz 相当的东西?
答案1
什么让你相信通过放弃 X Window 系统,GUI 体验会“更加敏捷”?
现代 X 服务器在可用的地方使用硬件加速(对于 OpenGL、对于 Compiz、对于视频等),因此它们在适当的情况下“直接在硬件上”运行。
至于 X 的替代方案:是的,它们是存在的;我想到的一些方案是
- 乌托邦
- 帧缓冲图形
但它们是针对特定领域的,而且很可能不会比 X 快。
因此,不要说“我认为我们需要一些更直接在硬件上运行的东西”这样毫无意义的话,而是尝试找出 X 表现不佳的具体领域。然后才有可能找到解决方案。
顺便说一句,当本地使用 X 时,X 的网络透明性不会带来太多开销。对于本地使用,X 不会使用网络(而是使用 Unix 套接字和共享内存),因此如果使用 IPC,它不应该比其他形式慢。
答案2
我认为您被 X 对“服务器”的非标准使用误导了。X“服务器”在大多数方面相当于 Windows“视频驱动程序”。它们不一定使用网络,并且通常不会比(比如说)MacOS 的堆栈慢。
答案3
X11 窗口系统被拒绝的主要原因是它庞大而复杂,并且在其提供网络透明性的同时,还使用“服务器”一词来表示视频驱动程序。
一般的辩护理由是 X 性能相当好,并且适合现有的工具链。但事实是,该工具链是围绕 X 开发的,所以当然如此。
一般来说,代码库太大,因此被认为以某种代价超出了它的范围。
我认为人们期望的是只是图形驱动程序抽象层,与 HAL 或 VFS 为这些类型的设备提供的功能非常相似。相反,X 似乎是一个包罗万象的大型软件包,里面有一切,包括拿铁星冰乐搅拌机应用程序。
答案4
有关于 Shuttleworth 决定从 Ubuntu 中删除 X11 的讨论,获得了以下好处:
- 没有网络透明度。
- 没有授权支持。
- 另一层硬件(内核崩溃)问题
- 更大的不兼容性。
您正在考虑 SVGA 控制台或 DirectFB 之类的东西。然而,在 Linux 世界中以硬件为中心意味着每 5-10 分钟就会出现未被检测到的挂起,只是因为没有人愿意调试平台特定的驱动程序,这些驱动程序旨在支持永远不会变得透明、网络就绪且不会支持任何更好的 3D 加速方式的 GUI。
想想 Android,它确实使用 Linux 的帧缓冲区——没有 X。