当前位置: 华文问答 > 数码

写一个操作系统内核有多难?大概的内容、步骤是什么?

2014-01-06数码

写一个 Demo 级别的不是太难,关键还是需要兴趣和耐心,

如果你真的想刨根问底,没什么能挡住你。


最基本的有几个部分:
1 bootloader, 你是用个现成的grub还是自己写,很多人就倒在这一步了。
2 内存管理
3 进程管理
4 中断和系统调用
5 文件系统

当然可以折腾的很多,但最好还是先把这些弄出来,才可称之为一个操作系统。
资料都有,你可以参考:
Expanded Main Page JamesM's kernel development tutorials

xv6的代码也不错,文档齐全,Xv6, a simple Unix-like teaching operating system

Orange'S:一个操作系统的实现 (豆瓣) 可以参考,只是有很多部分其实可以不用汇编写了。
James的那个教程还是入门最好的。

在Github无数个人在折腾自己的Hobby OS:Open Source Operating Systems

SamyPesse/How-to-Make-a-Computer-Operating-System。

比如我当年的小项目: chenyukang/Panda,

有的完成度还是比较高的,比如klange/toaruos总共花了六年时间才做出一个基本可用的有图形界面和网络的 OS。redox-os/redox是一个 Rust 写的微内核的 OS。

你要做的就是准备好时间,做,看,做,看...

我的建议是可以自己花些时间做一个简单的 OS,哪怕是拼凑出来也好,就是为了体会一下编程的石器时代,而后还是选择自己感兴趣的模块,看看成熟的操作系统是如何做的,毕竟人的精力和时间是有限的。