有没有足够简单的操作系统可供学习?[关闭]


19

我真的很想了解操作系统在幕后的工作方式。但是,我认为大多数开源OS的内核对于学习目的来说过于复杂,即使是专职程序员也无法学习。是否有仅用于学习目的的“简单”操作系统?




我在搜索中找到了这个,从未尝试过。pdos.csail.mit.edu/6.828/2012/xv6.html显然是为了代替Unix v6而编写的,它是一种学习工具。
ctrl-alt-delor 2014年

Answers:


28

Andrew Tanenbaum的Minix(请参阅操作系统设计和实现)正是出于这种目的。另一种(尽管已经过时)的可能性是通读Lion's Book,它涵盖了Unix V6(完整的Unix,但是版本足够老,它仍然足够简单,可以很容易地学习)。后者的明显缺点是,它使用C是相当陈旧,因此即使相当有经验的C程序员可能会发现部分有些难以阅读,你不能在一个现代编译消化代码计划。


7
MINIX 3 不是教学工具,而MINIX 3微内核绝对不容易理解。据Tanenbaum所说,只有MINIX 1是教学工具。
sakisk 2012年


7

Minix是一个不错的选择,其他答复之一对此进行了描述。

西努

还要考虑XINU-XINU不是Unix。

也是UNIX向后拼写。

道格拉斯·科默(Douglas Comer)有一本书,我认为它写得很好,插图丰富,范围广。

有一个嵌入式的Xinu和一个有关使用Xinu进行教学的网站。

http://xinu.mscs.mu.edu/Teaching_With_Xinu

FreeRTOS

如今,另一个备受喜爱的小型操作系统是FreeRTOS。它几乎可以运行在所有内容上。如果您来自火星,并且有未运行的处理器或评估板,则可以阅读约10页的文档,修改与中断,计时器和UART相关的五个文件,然后您就可以运行。

http://www.freertos.org/

他们声称它支持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


3

在我的大学里,我们学习了NachOS。这是一个很棒的学习开源操作系统。您还可以在NachOS上找到许多大学练习来学习。

Nachos是用于教授本科和潜在的研究生级操作系统课程的教学软件。Nachos发行版随附:

  • 概述文件
  • 适用于操作系统的简单基准代码
  • 通用个人计算机/工作站样本分配的模拟器
  • C ++入门书(Nachos是用易于学习的C ++子集编写的,该入门书有助于教C程序员我们的子集)

作业说明并探索了现代操作系统的所有领域,包括线程和并发,多程序,系统调用,虚拟内存,软件加载的TLB,文件系统,网络协议,远程过程调用和分布式系统。


0

看一下KOS(儿童OD)和SOS(简单OS)。两者都是旨在教授操作系统内部知识的操作系统。KOS是SOS的“父亲”,它是根据从KOS获得的经验构建的。

这些项目是《 Linux Magazine France》上许多教育文章的基础。

在KOS网站上,您还可以找到一个页面,您可以在其中下载其他简单OS的源。



0

人们可以理解所有CP / M和早期的DOS版本。此后,事情变得一发不可收拾,没有人知道一切。它们并不是为学习操作系统的工作原理而设计的,但是许多人确实是从这些OS中学到的。


1
考虑添加一些参考资料或其他轶事证据来备份您的答案。或添加一些其他详细信息以指示为什么X版本比Y版本更容易理解。

-1

去读一本关于汇编程序编程的书。您不必精通它,但是它将教会您很多计算机的内部工作原理。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.