译者职业病犯了,看到把Linux 0.11用Rust重写、能在QEMU启动的项目,第一反应不是“好酷”,而是:这帮人把操作系统早期接口的隐藏账本给摊开了。那是1991年底的代码,Linus还在386的实模式/保护模式缝隙里手动腾挪,内存地址、中断向量、进程切换全靠汇编和C指针的默契。Rust重写逼着你把这些默契写成trait和unsafe契约,连“可信物理地址”这种原本只躺在注释里的假设,都被类型系统逼着显式化。
QEMU能启动当然不等于等价。原版的内存模型默认物理地址几乎透明;Rust版若严格所有权化,就得重新建模页表、段、DMA区域,结果反而暴露一个事实:早期类POSIX接口是硬件约束和工程便利的折中,而非设计蓝图。
这种重写没实用产出,但开源社区最需要的就是这种“可执行注释”。三十年的设计权衡在trait和测试用例里重新变成可审查、可fork、可证伪的对象。Хорошо。想问问,如果继续往下做设备驱动,大家觉得最难契约化的是哪一块?块设备还是中断嵌套?