为了提高我的技能和知识,我想编写一个操作系统。一个非常简单的OS。我的首选语言是java。如果有语言要做,我可以用c / c ++编写。我不太关心效率,因为我只想了解内核和其他东西是如何工作的。
是否有从头开始教这个的好教程。我知道OS设计,网络,线程等。
我应该如何开始?
编辑:请不要在理论上告诉书籍解释所有概念。
答案 0 :(得分:2)
答案 1 :(得分:1)
请务必查看osdever社区。 p>
可能重复吗?无论如何,这里有充足的资源:
Resources to develop an operating system
Developing an operating system
https://stackoverflow.com/questions/2154013/how-to-make-an-operating-system
How to program an Operating System?
编辑:我忘了提及的另一个好的在线资源BrokenThorn OS Tutorials。
答案 2 :(得分:1)
我建议,在Linux上构建一个像操作系统一样的操作系统。这将有助于最初的简单开发,并逐渐转向硬件,如实际的硬件访问,分页等。
一旦我的意思是样本,假设linux作为硬件本身,那么你将代码端口访问通过代码的存根调用实际的linux i / o端口访问例程。
稍后将用'inb''out'等的汇编代码替换
另一个例子是内存管理,为内存分配一个大池,尝试重新实现slab分配器等。
我只是暗示了可以做些什么。这里的优点是您可以使用C ++并调用Linux子例程。
为此,您可能必须加载自定义模块以进行实际的硬件访问。
此过程在技术上称为Hypervisor Guest。所以Linux是管理程序。您的操作系统是来宾。