Frame: 一个用汇编语言编写的极简 Linux X Server
Frame: 一个用汇编语言编写的极简 Linux X Server
Frame 通过极简的汇编实现来减少 X server 的开销
Frame 是一个用汇编语言编写的定制 Linux X server,旨在取代庞大的 X11 代码库。虽然 X11 包含大约 400 万行代码,但 Frame 仅用大约 20,000 行代码就实现了功能完备的桌面环境。这种复杂性的降低使得系统在空闲状态下的 CPU 使用率显著低于 Xorg,从而直接有助于延长电池寿命并降低发热量。
CHasm 汇编技术栈
Frame 是一个名为 CHasm 的更广泛的汇编工具生态系统的基础图形引擎。该技术栈旨在实现完全的软件所有权和极高的效率,旨在取代 GDM、i3 和 zsh 等传统组件。
完整技术栈包括:
- Linux Kernel: 基础层。
- Frame: X server(图形引擎)。
- Tile: 窗口管理器,带有一个名为 Strip 的信息栏。
- Glass: 在 Tile 中运行的终端模拟器。
- Bare: 在 Glass 中运行的 shell。
- Bolt: 一个登录界面(原为屏幕锁定程序)。
CHasm 技术栈总计约 100,000 行代码,作者估计这比它所取代的技术栈(GDM、X11、i3、conky、wezterm 和 zsh)要小五十多倍。
性能与资源利用率
测量系统效率的结果显示,在空闲状态下 CPU 利用率存在显著差异。虽然 Frame 和 Xorg 在空闲时的功耗相似——这主要是因为显示面板和 Wi-Fi 硬件占据了主要的功耗——但 Xorg 消耗的 CPU 资源几乎是 Frame 维持空闲状态所需资源的近三倍。此外,窗口管理器 (Tile) 和终端 (Glass) 在三分钟的测量周期内记录到的 CPU 使用率为零毫秒,这意味着在用户进行交互之前,桌面环境会保持完全静默状态。
开发方法论与 AI 集成
Frame 是使用 Claude (一个 LLM) 作为生成代码和学习硬件级概念的主要工具开发的。作者通过描述特定的需求和“痛点”来使用 AI,利用 LLM 将高层逻辑转换为汇编语言。这种方法使作者能够深入了解光标绘制、GPU 移交、事件监听器和硬件层,而无需手动编写每一行样板代码。
社区对 AI 生成汇编代码的看法
使用 LLM 生成原始汇编代码在观察者中引发了技术辩论:
- 关于代码结构: 一些批评者认为生成的代码过于冗长。一位观察者指出,人类程序员通常会使用宏汇编器(如 NASM)来封装函数序言和结语的样板代码,从而使源代码比 AI 生成的原始输出更紧凑、更具可读性。
- 关于编译器的角色: 一些评论者质疑使用 LLM 作为“编译器”将高层操作转换为汇编,而不是使用带有
-s标志的标准 C 编译器来生成汇编的实用性。 - 关于“氛围编程” (Vibe Coding): 该项目被一些人视为“氛围编程”的一个例子,即开发者引导 AI 的意图,而不是手动实现逻辑,这引发了关于这是否代表了软件优化新时代或传统编程技能稀释的讨论。
- 关于定制化: 支持者认为 LLM 能够实现“为自己打造完美工具”的目标,允许个人构建高度专业化、无依赖的软件,专门针对特定用户的需求而非面向大众。
当前能力与局限性
Frame 目前已足够稳定,可以进行日常使用,并能运行 Firefox 和 GIMP 等主要 GUI 应用程序。然而,它并不是 X 协议的完整实现;作者指出,仍有大量协议功能尚待实现。