在 Linux 桌面生态逐渐转向 Wayland 的当下,开发者 Geir Isene 推出了一个非常反潮流的新项目:Frame。
Frame 是一个全新的 Linux X11 服务器,完全使用 x86-64 汇编语言编写。它不是基于 X.Org 修改而来,而是从零开始实现 X11 协议的一部分,目标是打造一个极简、低依赖、直接面向 Linux 内核接口的图形服务器。
按照项目说明,Frame 直接使用 Linux 系统调用,并通过 DRM/KMS 负责显示输出,通过 evdev 处理输入设备,再通过 X11 协议与应用程序通信。它不依赖 libc、Mesa、Xlib、FreeType 等常见库,最终生成的是一个静态链接的可执行文件,没有运行时依赖。

这也是 Frame 最特别的地方。大多数现代图形栈都依赖大量库、协议层和组件,而 Frame 试图用非常少的软件层完成基本桌面图形环境。
Geir Isene 表示,Frame 目前大约由 2 万行汇编代码组成。虽然项目尚未完成,但他已经将其作为自己的日常桌面环境使用,并称它能够运行 Firefox、GIMP 等常见应用。
目前,Frame 实现的是 X11 协议的一个不断扩展的子集,包括窗口创建、属性、像素图、选择、键盘和指针输入、软件合成等功能。同时,它也在支持 RANDR、SHAPE、XInput2、MIT-SHM 等 X11 扩展。
不过,这并不意味着 Frame 已经完整兼容 X.Org。X11 协议历史悠久,细节复杂,很多应用程序和工具都依赖各种扩展行为。Frame 现在仍处于实验阶段,距离成为通用替代方案还有明显距离。
Frame 还与另一个项目 CHasm 紧密相关。CHasm 是一套同样使用 x86-64 汇编语言编写的 Linux 工具集合,其中包括 Tile 窗口管理器、Glass 终端模拟器、Bare Shell、Strip 状态栏和 Bolt 屏幕锁定器。
这些组件组合起来,构成了 Geir Isene 自己使用的完整图形会话。开发者表示,整个 CHasm 工具集大约包含 10 万行汇编代码,用来替代他之前使用的 GDM、X.Org、i3、Conky、WezTerm 和 Zsh 等组件。
Frame 的目标之一,是在没有任务需要处理时尽可能保持空闲。Geir Isene 曾进行过一项非正式测试,结果显示 Frame 与 X.Org 的总空闲功耗接近,但 X.Org 的 CPU 使用时间明显更高。
不过,这类数据来自项目开发者本人,并不是独立基准测试,因此更适合作为项目设计方向的参考,而不能直接当作严谨性能结论。
从技术角度看,Frame 的意义不只是“又一个 X11 服务器”。它更像是一场极端系统编程实验:在现代 Linux 桌面环境中,究竟能不能用纯汇编、极少依赖和直接系统调用,构建一个能运行真实应用的图形服务器?
目前答案是:可以做到一部分,而且已经相当有趣。
但从实用角度看,Frame 还不适合普通用户尝试替换 X.Org。它目前仅支持 x86-64 Linux,主要依赖软件渲染,X11 协议实现不完整,也没有被主流 Linux 发行版打包或集成。
换句话说,Frame 不是面向大众桌面用户的成熟产品,而是一个高度实验性的技术项目。它适合对 X11、Linux 图形栈、汇编语言和极简系统设计感兴趣的用户研究,而不是直接用于生产环境。
在 Wayland 成为 Linux 桌面主流方向的背景下,Frame 的出现显得很特别。它没有追逐新的图形协议,而是回到 X11,并且用几乎最底层的方式重新实现一套图形服务器。
这让 Frame 更像是一个带有黑客精神的项目:不一定要成为主流,但它证明了 Linux 图形栈仍然可以被重新思考、重新拆解,甚至用非常极端的方式重新构建。


