← LeisureLinux 文章索引
LeisureLinux · 微信公众号文章

当 Rust 开始吃掉整个 Linux 底层:X11、内核、编译器一起锈化

AI/Agent 阅读原文(微信)↗

读完本文,你会搞懂:为什么古老如 X11 这种协议,也有人从零开始用 Rust 重写;在 Linux 内核、桌面显示、编译器工具链三个维度上,Rust 的渗透已经走到哪一步了。

━━━ ━━━ ━━━

一个不服输的项目:yserver

2026 年初,开发者 Jos Dehaes 在 GitHub 上开源了一个名为 yserver 的项目——一个从零开始用 Rust 写的 X11 服务器。版本号已经标到了 1.0。

这不是给博物馆观赏用的。yserver 已经能跑起完整的 MATE、Xfce、Cinnamon 桌面环境,支持 FVWM3、e16、Window Maker 等窗口管理器。支持的 X11 扩展列表一长串:RandR、DRI3、GLX、Composite、MIT-SHM......几乎涵盖了现代桌面所需的核心能力。

!yserver 运行截图

它的实现思路很\"锋利\":

  • 不兼容旧包袱:直接砍掉非 TrueColor 视觉模式、间接 GLX、DDX 驱动 ABI——这些都是 X.Org 三十年累积下来几乎没人用的历史残骸。
  • 直接硬件加速:通过 DRM/KMS + Vulkan 渲染,不走中间层。
  • 无 Root 特权:使用 libseat 做 seat 管理,安全模型干净。
  • 配合 AI 编码:这个项目的开发大量依赖 Claude Code 辅助——这也是项目快速成型的关键因素。

(仓库地址:,MIT 许可证)

但必须诚实地说,yserver 不是 X.Org 的 drop-in 替代品。它的安全模型还不完整——当前版本不会阻止客户端读取其他客户端的窗口内容。但方向清晰:先跑起来,再修安全。

X.Org 的困境

X.Org 是 Linux 桌面的\"看门人\"协议(X11 的实际参考实现),但它的处境相当尴尬。

  • 代码库始建于 1980 年代,主显示服务器来自 2004 年 fork 的 XFree86 4.4 RC2
  • 超过 60 万行 C 代码,维护者极度稀缺
  • 内存安全性差:一个 X11 客户端可以通过恶意请求触发服务端任意内存读取
  • 大量遗留协议逻辑(非 TrueColor、X 键盘扩展的老版本......)占着代码面积,实际零使用

业界其实早就知道 X.Org 是个\"火坑\"。Wayland 的出现就是对这个事实的回应——不修了,干脆重来。但 Wayland 本身也不是完美解决方案:远程桌面协议支持不完整、xwayland 还需要跑一个 X 服务、NVIDIA 专有驱动的兼容性问题持续存在。

所以,回到原点重写一个现代的 X11 服务器,这个想法并不荒谬。

不止是显示器:Rust 在 Linux 内核的\"正式化\"

yserver 不是一个孤立事件。往前看一个更大的趋势:Rust 在 Linux 底层基础设施的渗透正在加速,而且是全栈的。

2025 年 12 月,东京的 Kernel Maintainers Summit 上,维护者 Steven Rostedt 宣布:Rust 成为内核正式的第二种编程语言——全场零反对。Greg Kroah-Hartman 在 Rust Week 2026 上说得更直接:

\"Rust is no longer an experiment.\"

\"Rust is becoming an official standard.\"

到 2026 年,内核中 Rust 代码约 25,000 行——相对于 C 语言的 3400 万行确实微不足道。但关键不在于量,而在于正在被 Rust 接管的子系统清单

子系统 说明
PHY 驱动 网络物理层驱动,最先受益
Null Block 驱动 块设备层样板
Android Binder 驱动 Android 用户态/内核 IPC
Apple AGX GPU 驱动 Asahi Linux 项目,M1/M2 GPU
Nova GPU 驱动 NVIDIA Turing 架构的开源驱动,分 nova-corenova-drm 两个 crate

这些子系统的共同特征是什么?与不受信任的外部输入打交道,或者涉及复杂硬件状态的 C 语言\"漏洞沼泽\"。用 Rust 写驱动,直接消除了 NULL 指针解引用、use-after-free、缓冲区溢出这几类在 C 驱动中长期居高不下的漏洞来源。

Greg Kroah-Hartman 在 Rust Week 的演讲中特别提到:每天报告的漏洞大多来自 C 代码中的人为错误。Rust 的编译期安全保证,恰好能堵住这些系统性的缺陷。

工具链的\"第三只脚\":gccrs

说了这么多 Rust 在内核的好处,但有一个实际瓶颈:Linux 内核的构建系统深度依赖 GCC。Rust 官方编译器 rustc 背后是 LLVM,这意味着:

  1. 交叉编译到 GCC 独占的架构(比如某些嵌入式平台)存在障碍
  2. 内核的 GCC 插件生态(如 GCC Plugin 安全检测)无法覆盖 Rust 代码
  3. 只能用\"双工具链\"模式:C 用 GCC,Rust 用 LLVM/rustc

gccrs 项目的目标就是打破这个局面——在 GCC 中实现一个 Rust 前端,让 GCC 也能编译 Rust 代码。

2026 年的 gccrs 进展很快:

  • 已经可以编译 core crate 上的嵌入式 Rust 程序
  • 2025 年 7 月实现了 SipHash(来自 core 库)的\"真实代码\"编译
  • 正在推进 alloc crate 和 Rust-for-Linux crates 的支持,目标是用 GCC 编整个内核
  • offset_of!() 宏——一个 Rust-for-Linux 特有的基础设施——已实现完成
  • RustConf 2026 上有一场题为 \"用 gccrs 编译 Linux 内核\" 的演讲被接受

需要注意的是,gccrs 还没有完整的借用检查器。项目计划集成 Polonius(Rust 官方的下一代借用检查器),这是关键的最后一个大拼图。

2026 年有望交付的可用版本,意味着什么?意味着未来编译内核不再需要分两套工具链。C 和 Rust 在同一个 GCC 命令行、同一套 Makefile 规则、同一种 .o 输出中完成。

Rust 2026 版本,为内核量身定制

Rust 本身也在回应内核的需求。Rust 2026 edition 的几个旗舰特性——Field Projections、In-place Initialization——直接来自于 Linux 内核社区的诉求。

  • Field Projections:解决 Rust 所有权模型下内核常见的内存布局需求
  • In-place Initialization:让 Rust 可以在栈上零开销初始化结构体——对内核这种有严格栈大小的场景是关键
  • Supertrait auto impl:让 trait 的派生更加自然,减少手写样板代码

此外,Polonius(下一代借用检查器)正在走向稳定化。C++ 互操作性、扩展的 async trait 支持也在推进。

有意思的是,Rust 和 C 的内核开发者正在双向奔赴:C 一侧有 Coccinelle 等静态分析工具做安全扫描,Rust 一侧在向 GCC 工具链靠拢。两种语言不是替代关系,而是互补——未来内核里 C 负责存量,Rust 负责增量和新接入。

小结:从 X11 到内核,逻辑是一样的

回到 yserver 这个项目,它的核心逻辑和内核用 Rust 写驱动一模一样:

C 语言的\"历史包袱\"太重了。对新项目来说,与其在旧代码上修修补补,不如用 Rust 重新定义基础设施的「安全上限」。

当然,yserver 距离\"能用\"和\"好用\"还有很长距离。安全模型要补,Wayland 兼容性要考虑,还有整个 Linux 发行版生态习惯的改变。

但它像一面镜子,反映出开源社区的一个微妙情绪:我们受够了。

受够了 X.Org 的老旧安全、受够了 C 驱动的 NULL 指针、受够了双工具链的割裂。而 Rust——无论你喜不喜欢它——提供了一个现成的、经过工业验证的出路。

最有趣的时代从来不是某样东西完全被替代,而是新老共存的过渡期。我们现在就在这个过渡期里。

━━━ ━━━ ━━━

后记: yserver 曾因大量使用 Claude Code 辅助编码而引发讨论。有人认为这是 AI 写代码的正面样本,有人担心人类可维护性。我的看法是:工具从来不做决定,决定权在写那些代码的人手里。 yserver 能跑起 Xfce 就是最好的证明——任何有效的路线都值得讨论,而不是因为\"AI 写的\"就打标签。

━━━ ━━━ ━━━

*本文参考来源:*

  1. *GitHub - joske/yserver: https://github.com/joske/yserver, MIT License*
  2. *ItsFOSS, \"New X11 Server Written in Rust\", 2026*
  3. *Linuxiac, \"yserver: A Modern X11 Server From Scratch in Rust\", 2026*
  4. *RustConf 2026 Accepted Talks - \"Compiling the Linux Kernel with gccrs\"*
  5. *gccrs 项目状态报告, https://github.com/Rust-GCC/gccrs*
  6. *Greg Kroah-Hartman, Rust Week 2026 主题演讲*
  7. *Kernel Maintainers Summit 2025 (Tokyo): Rust approved as kernel language*
  8. *Rust 2026 Edition Roadmap, https://rust-lang.org*
  9. *Linux 内核 Rust 子系统进展, dev.to & medium.com 专题报道, 2026*

*本文完。欢迎关注 LeisureLinux,获取更多深度技术解读。*

用 Rust 重写的 Bash: Brush v0.4的重大更新

Rust Coreutils 0.7 发布:性能大跃进与架构深层优化

10款比传统 Linux 工具更快的 Rust 替代品深度解读

一个号称比 homebrew 快20倍的 zerobrew ,由 rust 语言编写

内核纪元新篇章:Linux 7.0 深度技术解析与架构演进

常见问题(FAQ)

Q1:这篇文章主要讲什么? 2026 年初,开发者 Jos Dehaes 在 GitHub 上开源了一个名为 yserver 的项目——一个从零开始用 Rust 写的 X11 服务器。版本号已经标到了 1.0。 Q2:还有哪些关键事实? 支持的 X11 扩展列表一长串:RandR、DRI3、GLX、Composite、MIT-SHM......几乎涵盖了现代桌面所需的核心能力。 Q3:有哪些值得注意的细节? 但关键不在于量,而在于正在被 Rust 接管的子系统清单: 子系统 说明————PHY 驱动 网络物理层驱动,最先受益 Null Block 驱动 块设备层样板 Andr… Q4:核心结论是什么? ()` 宏——一个 Rust-for-Linux 特有的基础设施——已实现完成 - RustConf 2026 上有一场题为 \"用 gccrs 编译 Linux 内核\" 的演讲被接受 需要注意的是,gccrs 还没有完整的借用检查器

本文整理自微信公众号 LeisureLinux 的原创内容(Linux / AI / 安全 硬核技术)。

· 阅读原文(微信公众号)

· 关注公众号 LeisureLinux,第一时间获取技术深度内容。

LeisureLinux 公众号二维码(微信扫一扫关注)