开发操作系统的资源

时间:2008-10-31 16:39:46

标签: operating-system osdev

我打算编写一个操作系统,我对操作系统知之甚少。是否有任何好的资源或书籍可供我学习?你有什么建议?

15 个答案:

答案 0 :(得分:44)

我们在我就读的大学里使用了Andrew Tannenbaum的Modern Operating Systems。我强烈推荐它,因为它清楚地解释了许多你将遇到的设计决策所固有的权衡。这本书比Minix书更“公平和平衡”。

alt text

我也推荐这本书,因为尽管他net-famous flame war with Linus Torvalds,但他在书中很少有偏见。此外,他是一位非常体面的作家,这本书实际上很有趣。

答案 1 :(得分:14)

Operating Systems Implementation Prentice Software

alt text

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

我认为你应该从那样开始。

答案 2 :(得分:10)

答案 3 :(得分:9)

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

Os dev网站也会提供丰富的信息,

答案 4 :(得分:9)

Operating System Concepts是我们在大学使用的那本书。它很丑陋但内部信息很好解释(从基本内存管理,到如何操作系统决定执行什么或如何避免死锁)。很宽。

alt text

答案 5 :(得分:7)

答案 6 :(得分:4)

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

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

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

我还会研究L4,Minix3和GNU HURD(基于Mach),后者是试图利用微内核时设计陷阱的例证。

如果你想走整体路线,那就去学习Linux吧。

答案 7 :(得分:3)

我强烈建议您查看MIT Operating Systems class。它有很多有用的参考资料,还有一些你可以玩的实验练习(包括自动评分脚本,所以你不必是麻省理工学院的学生就可以了)。

答案 8 :(得分:3)

textbook http://ecx.images-amazon.com/images/I/411E3CQQYZL._SS500_.jpg

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

答案 9 :(得分:2)

答案 10 :(得分:2)

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

答案 11 :(得分:1)

如果我没记错的话,Powerup to Bash Prompt HOWTO包含了很多看似对它有用的信息。旧版本的Linux From Scratch HOWTO也是如此,但最新版本已被删除。

您还可以在Understanding the Linux Kernel中找到很多有用的信息。

答案 12 :(得分:1)

你应该研究MINIX 3.这是一个用来写的操作系统,我认为不到10,000行。借助Tanenbaum的书籍之一,您可以很好地了解操作系统的工作原理,并了解MINIX 3的工作原理。您可以直接使用Linux,但我认为这是一项非常有用的任务,可以帮助您了解如何构建一个可用的操作系统并不需要那么多行。

http://www.minix3.org/

答案 13 :(得分:0)

我建议您查看嵌入式操作系统并构建嵌入式操作系统。它将处理核心概念,而不需要现代桌面CPU的开销。

我去年春天作为最终项目编写了一个多任务嵌入式操作系统,它比你想象的要容易。

答案 14 :(得分:0)

除书籍外,还有许多学习OS开发的网站  BrokenThorn Entertainment在本网站上,从基础

学习OS开发