开发操作系统资源

我打算编写一个操作系统,而我对操作系统的了解不多。 有什么好的资源或书籍可供我学习? 你有什么build议?

在我参加的大学里,我们使用了Andrew Tannenbaum的现代操作系统 。 我强烈推荐它,因为它很清楚地解释了许多devise决策中固有的折衷。 这本书比Minix书更加“公平和平衡”。

替代文字http://ecx.images-amazon.comhttp://img.dovov.comI/51DptFJH9NL._SL500_AA240_.jpg

我也推荐这本书,因为尽pipe他和林纳斯·托沃兹 ( Linus Torvalds)的networking着名的火焰战争 ,但是他的偏见几乎没有出现在书中。 而且,他是一个相当好的作家,这本书其实是有趣的。

操作系统实施Prentice软件

替代文字http://ecx.images-amazon.comhttp://img.dovov.comI/3125C47MR4L._SL500_AA180_.jpg

本书由Minix背后的主要人物Tanenbaum撰写,这是Linux的基础。 它为基本操作系统概念提供了很好的概述,如内存pipe理,文件系统,进程等。本书中的概念与Minix OS的例子密切相关,这是一件好事。

我想你应该从这样的事情开始。

在这个网站上类似的线程:

  • OS开发
  • build立一个新的操作系统
  • 如何开始操作系统开发

如果你想开始编写你自己的操作系统,

操作系统概念是我们在大学使用的书。 这是相当丑陋的,但内部的信息很好地解释了(从基本的内存pipe理,到如何决定执行什么或如何避免死锁)。 很宽。

替代文字http://ecx.images-amazon.comhttp://img.dovov.comI/51TJXR8CV3L._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU01_.jpg

虽然老,这些书是非常好的:

辛努操作系统devise

替代文字http://ecx.images-amazon.comhttp://img.dovov.comI/51AVJFBS3EL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU01_.jpg

操作系统devise – networking与XINU,卷。 II

替代文字http://ecx.images-amazon.comhttp://img.dovov.comI/51MTVNE1PHL._SL500_AA240_.jpg

3 : http://操作系统devise – networking与XINU,卷。 II

看看HelenOS ,这是一个从头开始的基于微内核的操作系统,旨在成为一个完全现代化的操作系统。 Disclamer,我是贡献者,我从头开始研究它的shell。

HelenOS已经移植到ia32 / 64,SPARC,ARM等等,它的devise非常好,易于阅读。 它仍然处于起步阶段,但是展示了一种真正利用微内核devise的可能devise,并且解决了微内核实现(例如IPC)中的许多问题。

它还包括自动设置交叉编译所需的适当工具链的脚本。 在大多数模拟器(例如QEMU)或裸机上构build和运行非常容易。

我也会研究L4,Minix3和GNU HURD(基于Mach),后者是试图利用微内核时的devise缺陷的一个例证。

如果你想走整体路线,只要学习Linux。

我强烈build议看看麻省理工学院操作系统课 。 它有很多有用的参考资料,还有一些你可以玩的实验练习(包括自动评分脚本,所以你不必是麻省理工学院的学生)。

教科书http://ecx.images-amazon.comhttp://img.dovov.comI/411E3CQQYZL._SS500_.jpg

我在上大学时使用了操作系统和中间件:支持可控交互 。 这可能是关于这个问题的最好的教科书之一。

  • 操作系统devise和实现
  • FreeBSD操作系统的devise和实现

就在我头顶。

由Richard A. Burgess开发自己的32位操作系统。 关于引导加载程序,设置了那些奇怪的内存和进程pipe理寄存器等等的细节。这是1996年的一个很好的回顾,当时我想我会从头开始编写一个简单的操作系统,但可能会过时现在只处理前几代的奔腾级CPU。

如果我没有记错的话, Bash Prompt HOWTO的Powerup包含了大量的信息,看起来像是有用的。 旧版本的Linux From Scratch HOWTO也是如此,但在最近的版本中已经被删除了。

在“ 了解Linux内核”中也可以find很多有用的信息。

你应该看看MINIX 3.这是一个写入操作系统,我相信,不到10,000行。 您可以通过Tanenbaum的一本书了解一个操作系统是如何工作的,并了解MINIX 3如何工作。 你可以直接进入Linux,但我认为这是一个有用的任务,真的可以帮助你看到它真的没有多less线build立一个工作的操作系统。

http://www.minix3.org/

我会build议看看embedded式操作系统和build立一个embedded式操作系统。 它将处理核心概念,而不需要现代桌面CPU的开销。

我去年spring写了一个多任务embedded式操作系统作为最终的项目,比你想象的要容易。

除书籍外,还有很多学习操作系统开发的网站
BrokenThorn娱乐是基于这个网站学习操作系统开发