我真的很想了解操作系统是如何在幕后工作的。然而,我认为大多数开放源码开放源码软件的内核对于学习目的来说太复杂了,甚至对于全职程序员来说也是如此。是否有“简单”的开放源码软件只为学习目的而制作?
发布于 2011-11-04 22:57:16
Andrew的Minix (参见操作系统的设计与实现)正是为了这种目的。另一种可能(尽管很过时)是通读狮子书,它涵盖了Unix V6 (完整的Unix,但它的老版本,它仍然足够简单,以便进行相当容易的研究)。后者的明显缺点是它使用的C是相当过时的,因此即使是经验丰富的C程序员也可能会发现部分读起来有些困难,并且您无法计划一个现代的编译器来消化这些代码。
发布于 2011-11-04 23:15:43
你应该考虑在麻省理工学院的OS课程中使用一种类似Unix的现代Xv6 6操作系统,。它似乎也有一些与之相关的课程材料。
它在Bochs和Qemu x86模拟器中运行。那部分是我做的。这很有趣。
发布于 2012-09-04 03:40:10
Minix是一个很好的选择,在其他回复中也有描述。
还可以考虑到,鑫-鑫不是Unix。
Is也是UNIX向后拼写的。
有一本道格拉斯·科默的书,我认为它写得很好,插图很好,范围也很好。
有一个嵌入式的新华网和一个关于Xinu教学的网站。
http://xinu.mscs.mu.edu/Teaching_使用_西努
另一个小的操作系统,得到了很多的爱,这些天是FreeRTOS。它几乎适用于所有的东西。如果您来自火星,并且有一个处理器或未运行的标准板,您可以阅读大约10页的文档,修改大约五个与中断、计时器和UART相关的文件,并且您将运行。
http://www.freertos.org/
他们声称它支持31个体系结构和18个工具链。我在2009年底的经历很好,而且我听说从那以后我的经历有了很大的改善。
关于可能对您有帮助的类似问题,请参阅以下内容:
https://stackoverflow.com/questions/254149/how-do-you-write-a-basic-operating-system
Linux和许多其他操作系统的设计都受到UNIX的影响,所以这个视频中的原始设计者(Kernigan、Ric一点儿和Thompson等)既能提供信息,又能从源代码中获得设计思想。
http://techchannel.att.com/play-video.cfm/2012/2/22/AT&T-Archives-The-UNIX-System
有一本经典但经常修订的操作系统教科书:
Silberschatz,加尔文,加涅:操作系统概念,第7版
也可能有较新的版本。我很少通过图书销售商链接到一本书,但是预览是非常慷慨的,所以要了解更多关于操作系统的信息,请查看:
http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720
https://softwareengineering.stackexchange.com/questions/117973
复制相似问题