一个 2024 年才启动的个人内核项目,现在已经能在多款真实 x86_64 机器上启动,还能跑 Wayland/X11 桌面环境。
这比“又一个 Rust 内核”有意思。
过去很多独立内核项目,走到能打印日志、跑 shell、在模拟器里自洽,就差不多耗尽热情。Zinnia 的看点不在口号,而在它已经开始碰现实世界:UEFI、initrd、驱动模块、POSIX syscall、桌面协议。
这些东西不漂亮,但决定一个内核是不是只活在 README 里。
Zinnia 到哪一步了
把事实压成一张表,更容易看清它现在的位置:
| 维度 | Zinnia 当前状态 | 该怎么理解 |
|---|---|---|
| 项目定位 | 2024 年启动的 64 位类 Unix 内核,起点是作者学习系统编程 | 不应按商业 OS 或 Linux 替代品来评估 |
| 语言 | 几乎 100% Rust,尽量避免 unsafe | 不是“完全无 unsafe”,而是把风险压小、压清楚 |
| 系统接口 | 实现大量 POSIX syscall,并提供 epoll、timerfd 等 Linux/BSD 常见扩展 | 目标不是孤岛,而是接近现有 Unix 软件生态 |
| 驱动方式 | 多数驱动是 Rust ELF 动态模块,启动时从 initrd 加载并链接 | 模块化思路接近 Linux,方便拆分和扩展 |
| 启动方式 | 可通过 Limine 在 UEFI 系统启动 | 真机启动门槛低,不只是在模拟器里跑 |
| 架构重点 | 当前重点是 x86_64;aarch64、riscv64 有计划但非优先 | 路线克制,没有过早摊大 |
| 桌面能力 | 可运行较现代的 Wayland/X11 桌面环境 | 不是完整桌面发行版体验,但已经碰到应用入口 |
最容易误读的是两点。
一是把“几乎全 Rust”理解成“完全内存安全”。不能这么说。内核开发很难完全绕开 unsafe,Zinnia 的价值是尽量减少 unsafe,并让它更集中、更可审计。
二是把能跑 Wayland/X11 理解成“普通用户可以换系统了”。也不能这么说。能跑桌面环境,说明系统能力跨过了一个重要测试点;但离稳定、好装、硬件兼容广,还有很远。
对系统编程和 Rust 开发者来说,这类项目的实际意义很明确:可以围观它怎么处理 syscall、驱动模块、启动链和用户态兼容。想贡献的人,也更适合从修 bug、补驱动、补兼容层开始,而不是把它当日常主力系统迁移。
普通用户基本可以观望。现在不需要下载来替代 Linux,也不该期待发行版级体验。
它有价值,不是因为 Rust,而是因为愿意兼容旧世界
Rust 是亮点,但不是答案。
内核项目最难的部分,从来不只是“写出一个内核”。调度器、内存管理、文件系统、syscall,这些都难。但更难的是让它接住已有软件、已有工具和已有用户习惯。
Zinnia 做 POSIX syscall,又补 epoll、timerfd 这类 Linux/BSD 常见扩展,这个选择很关键。它没有假装自己能重新发明一个干净世界,而是承认现实:新系统想活下去,得让旧软件少改一点。
“天下熙熙,皆为利来。”放到开发者这里,利不是玄学,是少迁移、少改代码、少踩坑。
这也是我更看重 Wayland/X11 的原因。
一个内核能在真机启动,只说明它从实验台下来了。能把图形桌面跑起来,才说明它开始接近应用生态的入口。桌面不是炫技,它会逼出一堆脏问题:进程、内存、文件、设备、图形栈、输入输出、兼容行为。
这些问题没法靠语言标签遮过去。
所以 Zinnia 的真正价值,是它把“独立内核项目”的评判标准往前推了一格。过去看能不能 boot。现在要看能不能跑真实用户态,能不能接近 Unix 生态,能不能在真实机器上暴露问题。
这对开源基础设施关注者也有启发:Rust 不是魔法,模块化也不是护身符。它们只是让小团队有机会把复杂系统拆得更清楚。能不能长期成立,还要看维护能力。
分水岭不在启动成功,而在几年后还修不修
Zinnia 目前最该被肯定的,是选题没有逃避难处。
它碰真机,碰 UEFI,碰动态驱动模块,碰 POSIX,碰桌面环境。这些方向都不轻松,但都贴近一个内核能否走向可用的核心问题。
我对它的判断是谨慎乐观。
乐观在于,它已经不只是一个“打印 Hello World 的内核”。它开始和现实硬件、现实协议、现实软件生态对接。这一步很贵,也很有信息量。
谨慎在于,内核项目的硬仗通常不在开头。
写出来,是入场券。长期可用,要靠驱动覆盖。要靠崩溃后有人修。要靠兼容行为越补越细。要靠硬件列表慢慢扩。还要靠社区留下来,而不是作者兴趣耗尽后项目停在半山腰。
创造阶段靠热情,维护阶段靠制度。很多开源基础设施都死在这条沟里。
接下来最该观察的,不是它会不会“挑战 Linux”。这个问题太早,也太省事。
更实际的观察点只有几个:
- x86_64 真机支持能不能继续扩大;
- Rust ELF 驱动模块能不能稳定增加;
- POSIX 与 Linux/BSD 扩展兼容能不能经住真实软件测试;
- Wayland/X11 能不能从“可运行”走向“更稳定”;
- 项目是否能形成持续补丁和维护节奏。
如果这些点慢慢补上,Zinnia 就不只是一个有趣项目,而是个人/小团队内核逼近可用边界的样本。
如果补不上,它也仍然有学习价值,但会停在“漂亮实验”的层级。
这不是贬低。操作系统是老战场,门槛从来不在口号上。能把一个学习项目推到真机和桌面边缘,已经不容易。
但城门之外还有城墙。Zinnia 已经摸到门了,后面看的不是标题里的 Rust,而是补丁、驱动、崩溃日志,以及几年后仓库还热不热。
