MesaOS

从零用 Rust 编写的 x86_64 原生操作系统

AI编程开发 部分免费

MesaOS - 从零用 Rust 编写的 x86_64 原生操作系统

项目简介

MesaOS 是一个完全从零开始、用 Rust 语言编写的 64 位操作系统,由一位署名 crackanimador(ESO 在读学生)主导开发,于 2026 年 9 月 3 日通过 Show HN 发布并获得 3 票。该项目的显著特点在于:所有源代码均通过大语言模型(AI)辅助生成,而架构设计、调试、硬件测试和系统集成则完全由人工完成。这是一个操作系统课程级别的架构实验,展示了 AI 辅助编程在底层系统开发中的实际边界。

MesaOS 不是 Linux 的衍生品,也不是 BSD 的修改版本,而是一个具有原创架构的混合内核(hybrid kernel),在 Ring 0 特权级别运行,同时通过 Linux 兼容层(Linux Shim)导出 400+ 内核符号,可在不解码的情况下直接加载 Linux 驱动。

核心功能

1. 原创混合内核架构

MesaOS 采用混合内核设计,将微内核的进程隔离理念与宏内核的高效性能结合。内核运行在 Ring 0,用户空间在 Ring 3,兼顾安全性和兼容性。

2. Linux 驱动兼容层(Shim)

MesaOS 导出 kmalloc、printk、pci*、dma* 等 400+ Linux 内核符号,通过 Linux Shim 机制可直接加载真实 Linux 驱动而无需修改驱动源码。这是 MesaOS 区别于其他从零构建操作系统的核心差异化特性。

3. 抢占式多任务调度

内核实现 Round-robin 调度算法,支持 5 种任务状态(运行、就绪、阻塞、睡眠、僵尸),sleep queue 和僵尸进程回收机制完整实现。

4. 完整网络协议栈

内置 ARP、IPv4、ICMP(ping)、DHCP 客户端、DNS 解析器的完整网络协议栈,支持 virtio-net(QEMU 虚拟化场景)和 RTL8139 真实网卡驱动,TCP 和 UDP 协议解析尚在开发中。

5. HD 音频流处理

通过 HDA(High Definition Audio)接口实现 48kHz/16-bit/立体声 WAV 音频流,实时重采样,音频缓冲区 chunk 大小为 512KB,支持主流音频编解码。

6. Initrd 持久化机制

注入 ISO 的文件在重启后仍然存在,实现无需磁盘的持久化存储。这一特性对无盘环境和教学演示场景尤为有用。

7. 交互式 Shell

内置 82 条命令,支持管道(pipe)、输入输出重定向、命令历史记录、自动补全和行内文本编辑器,是系统调试和用户交互的主要入口。

8. 部分 Linux 二进制兼容

通过 ~350 条 Linux syscall 支持和 /proc、/sys 文件系统模拟,实现与 Linux 二进制的一定兼容范围,支持 epoll、signalfd、eventfd、timerfd 等现代系统调用接口。

9. 安全机制

实现了 ASLR(地址空间布局随机化)、Stack Canary(栈保护)和 rate-limiting(速率限制),密码哈希机制已集成到用户认证流程中。

10. 丰富硬件驱动支持

已实现或部分实现的驱动包括:HDA Audio、Virtio-Net、RTL8139 网卡、PS/2 键盘、RTC(CMOS 时钟)、电池管理(ACPI)、PC Speaker、Framebuffer 控制台、UEFI NVRAM 读写、xHCI(USB 3.0)。NVMe 和 ATA/IDE 驱动代码已完成但出于安全考虑默认禁用。

技术实现

MesaOS 的技术栈选择反映了 AI 辅助编程在底层系统工程中的实际应用路径:开发者负责架构设计和边界条件调试,AI 负责具体代码实现。这种分工在 Rust 语言特性的辅助下尤为高效——Rust 的类型系统和所有权模型在操作系统开发中可以有效防止内存安全问题,减少人工 Code Review 的负担。

系统启动流程为:UEFI 固件 → 内核初始化(内存管理、中断控制器)→ ACPI 解析(通过 aml crate)→ 驱动探测 → VFS 初始化 → Shell 启动。网络协议栈在 virtio-net 或 RTL8139 驱动成功加载后自动激活,DHCP 客户端在网络就绪后自动获取 IP 地址。

快速上手

第一步:获取源码。

git clone https://github.com/crackanimad0r/MesaOS
cd MesaOS

第二步:构建系统(需要 Rust 工具链)。

cargo build --release

第三步:在 QEMU 中运行。

# 使用 virtio-net 网络
qemu-system-x86_64 -cdrom target/x86_64-unknownmesaos/debug/mkiso.iso 
    -netdev virtio-net-pci,id=net0 
    -device virtio-net-pci,netdev=net0 
    -m 512M

第四步:连接串口或显示器。 系统启动后在 Shell 中可执行内建命令:

help     # 查看所有可用命令
ps       # 查看进程列表
netstat  # 查看网络连接状态
ls /proc # 浏览 proc 文件系统

适用人群

MesaOS 主要面向以下群体:对操作系统内核开发有兴趣的学习者和研究者,通过阅读真实系统代码了解内核调度、内存管理和设备驱动的工作原理;计算机科学课程助教和讲师,寻找 AI 辅助编程在系统底层教学中的实践案例;以及 Rust 语言进阶学习者,Rust 的内存安全保证在 OS 开发场景中可以显著减少传统 C 语言开发中的未定义行为问题。

GitHub 地址:https://github.com/crackanimad0r/MesaOS

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论