我真的很想了解操作系统在幕后的工作方式。但是,我认为大多数开源OS的内核对于学习目的来说过于复杂,即使是专职程序员也无法学习。是否有仅用于学习目的的“简单”操作系统?
我真的很想了解操作系统在幕后的工作方式。但是,我认为大多数开源OS的内核对于学习目的来说过于复杂,即使是专职程序员也无法学习。是否有仅用于学习目的的“简单”操作系统?
Answers:
Andrew Tanenbaum的Minix(请参阅操作系统设计和实现)正是出于这种目的。另一种(尽管已经过时)的可能性是通读Lion's Book,它涵盖了Unix V6(完整的Unix,但是版本足够老,它仍然足够简单,可以很容易地学习)。后者的明显缺点是,它使用C是相当陈旧,因此即使相当有经验的C程序员可能会发现部分有些难以阅读,你不能在一个现代编译消化代码计划。
您应该考虑在MIT的OS课程中使用的类似Unix的现代Xv6操作系统。它似乎也有一些与之相关的课程材料。
它可以在Bochs和Qemu x86仿真器中运行。我做了那部分。好玩。
Minix是一个不错的选择,其他答复之一对此进行了描述。
西努
还要考虑XINU-XINU不是Unix。
也是UNIX向后拼写。
道格拉斯·科默(Douglas Comer)有一本书,我认为它写得很好,插图丰富,范围广。
有一个嵌入式的Xinu和一个有关使用Xinu进行教学的网站。
http://xinu.mscs.mu.edu/Teaching_With_Xinu
FreeRTOS
如今,另一个备受喜爱的小型操作系统是FreeRTOS。它几乎可以运行在所有内容上。如果您来自火星,并且有未运行的处理器或评估板,则可以阅读约10页的文档,修改与中断,计时器和UART相关的五个文件,然后您就可以运行。
他们声称它支持31种架构和18条工具链。我在2009年下半年的经历非常好,自那以后我听到了很多进步。
其他连结
与此类似的问题可能对您有帮助。
/programming/254149/how-do-you-write-a-basic-operating-system
Linux和许多其他操作系统的设计都受到UNIX的影响,因此该视频中的原始设计师(Kernigan,Richie和Thompson等人)既能提供信息,又能从源头获得正确的设计思想。
http://techchannel.att.com/play-video.cfm/2012/2/22/AT&T-Archives-The-UNIX-System
有经典的但经常修订的操作系统教科书:
Silberschatz,Galvin,Gagne:操作系统概念,第7版
可能还会有更新的版本。我很少通过书店链接到书,但是预览非常慷慨,因此,要了解有关操作系统的更多信息,请查看:
http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720
如果您喜欢.NET技术系列,可以查看Singularity。自2008年以来未进行过更新,但可以从CodePlex 此处以源代码和ISO格式下载。