一个人写操作系统,一周出了初版
过去一周,我用 Rust 从零写了一个操作系统内核的初版。
不是课程作业,不是玩具,目标很明确:在 256MB 的边缘设备上,用 32MB 内核常驻内存跑起多容器服务。
为什么自己写?因为 Linux 在 256MB 设备上太吃力——空闲内存 50~80MB,跑两三个容器就超 200MB。RTOS 又没有 MMU,跑不了容器。两头都够不着。
那就自己写一个。
砍掉什么?
99% 的驱动(只留 UART、Timer、virtio)、glibc 兼容层(只支持 musl 静态链接)、图形/音频/USB 全栈。
留下什么?
完整 TCP/IP 网络栈 + epoll、Namespace + Cgroup、OverlayFS、NAT + conntrack、OTA 升级回滚。
为什么用 Rust?
内核里一个 UAF 就能让设备挂掉。Rust 的所有权模型在编译期杜绝这类问题。我一个人写,没有 Linus 级别的 Code Review 团队,这个代价必须付。
进度怎么样?
一周时间,M0-M3 已跑通——从 Bootloader 到内核入口,到内存管理,到多任务调度,再到用户态 shell。当前内核常驻约 18MB,已经比裁剪版 Linux 的 50~80MB 轻很多。
代码已开源:https://gitee.com/geng_qiankun/shanshui-guanxin/
一个人做操作系统这种事,放在几年前想都不敢想。但 Rust 的生态和 AI 辅助编程让这件事变得可能——AI 帮我做架构建议、处理生命周期难题、生成测试用例,我把精力集中在“做什么”而不是“怎么写”上。
如果你也对边缘计算、操作系统内核、或者“一个人搞点大项目”感兴趣,欢迎来聊聊。
项目名:山水观心操作系统
山水观心操作系统,聚焦嵌入式领域
浙公网安备 33010602011771号