zinnia: 一个用Rust编写的模块化64位类Unix内核
摘要
Zinnia 是一个用Rust编写的模块化64位类Unix内核,旨在在UEFI系统上启动并运行带有Wayland或X11的现代桌面。它实现了POSIX API和常见的Linux/BSD扩展。
<p><a href="https://lobste.rs/s/0ichrt/zinnia_modular_64_bit_unix_like_kernel">评论</a></p>
查看缓存全文
缓存时间: 2026/06/15 00:47
# zinnia
来源:https://zinnia-os.org/
zinnia## 一个用 Rust 编写的模块化 64 位类 Unix 内核
### 关于
该内核几乎完全用 Rust 编写,并尽可能避免使用不安全代码。它在系统调用中实现了一系列 POSIX API,同时也暴露了 Linux 和 BSD 中的常见扩展,例如 epoll 和 timerfd。这使得它能够通过 Wayland 和 X11 会话运行较为现代的桌面环境。
大多数驱动程序以模块形式实现。这些是 Rust ELF 动态库,在启动时从 initrd 加载并链接,类似于 Linux 系统。借助 Limine 引导加载程序,Zinnia 可以从任何基于 UEFI 的系统启动。
我于 2024 年启动了这个项目,以学习更多系统编程知识,但随着时间的推移,它开始拥有越来越多的功能。如今,该内核已能在许多真实的 x86_64 机器上启动。aarch64 和 riscv64 的支持已在计划中,但目前并非优先事项。欢迎提交修复!
## 链接
zinnia (https://github.com/zinnia-os/zinnia) \- 点个星吧 :D
## 截图
Weston 在 QEMU 中运行
zinnia qemu 中运行 westonXFCE 在 QEMU 中运行
zinnia qemu 中运行 xfceXFCE 在 ThinkPad E14 G7 上运行
zinnia 在真机上运行
相似文章
用地道 Rust 重写的 Linux 0.11,可在 QEMU 中启动
一个用现代 Rust 重写的 Linux 0.11 内核,可在 i386 上的 QEMU 中启动,包含完整的用户空间(shell 和 coreutils),支持一键构建镜像和 devcontainer 环境。
Zerostack – 一个受Unix启发的纯Rust编写的编码助手
Zerostack 是一个完全用 Rust 构建的受 Unix 启发的编码助手,旨在帮助开发人员进行代码生成和自动化。
宣布推出Rust版Zstandard
Trifecta Tech Foundation 宣布首次发布 libzstd-rs-sys,这是一个纯 Rust 实现的 Zstandard 压缩格式,可作为 C 参考实现的直接替代品,在轻微性能损失下提供更好的可移植性和内存安全性。
Lanzaboote – NixOS 安全启动
本文介绍了 Lanzaboote,这是一个用 Rust 编写的 UEFI UKI 存根,可为 NixOS 提供安全启动支持。它将签名检查推迟到 UEFI 阶段执行,同时保持内核和 initrd 与 UKI 二进制文件分离,从而解决了 NixOS 特有的启动挑战。
maestro: 轻量级、兼容Linux的内核,使用Rust编写
Maestro 是一个用 Rust 编写的轻量级类 Unix 内核,旨在实现安全性和 Linux 兼容性。目前支持 x86 和 x86_64 架构,功能丰富,但仍处于早期开发阶段。