我打算编写一个操作系统,我对操作系统知之甚少。是否有任何好的资源或书籍可供我学习?你有什么建议?
答案 0 :(得分:44)
我们在我就读的大学里使用了Andrew Tannenbaum的Modern Operating Systems。我强烈推荐它,因为它清楚地解释了许多你将遇到的设计决策所固有的权衡。这本书比Minix书更“公平和平衡”。
我也推荐这本书,因为尽管他net-famous flame war with Linus Torvalds,但他在书中很少有偏见。此外,他是一位非常体面的作家,这本书实际上很有趣。
答案 1 :(得分:14)
Operating Systems Implementation Prentice Software
本书由Tanenbaum编写,Tanenbaum是Minix背后的主要人物,这是Linux的基础。它为内存管理,文件系统,进程等基本操作系统概念提供了很好的概述。本书中的概念与Minix OS的示例密切相关,这是一件好事。
我认为你应该从那样开始。
答案 2 :(得分:10)
此网站上的类似主题:
答案 3 :(得分:9)
Os dev网站也会提供丰富的信息,
答案 4 :(得分:9)
Operating System Concepts是我们在大学使用的那本书。它很丑陋但内部信息很好解释(从基本内存管理,到如何操作系统决定执行什么或如何避免死锁)。很宽。
答案 5 :(得分:7)
虽然陈旧,但这些书非常好:
Operating System Design with Xinu
Operating System Design-Internetworking With XINU, Vol. II
3:http://Operating系统设计 - 网络互联与XINU,Vol。 II
答案 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,但我认为这是一项非常有用的任务,可以帮助您了解如何构建一个可用的操作系统并不需要那么多行。
答案 13 :(得分:0)
我建议您查看嵌入式操作系统并构建嵌入式操作系统。它将处理核心概念,而不需要现代桌面CPU的开销。
我去年春天作为最终项目编写了一个多任务嵌入式操作系统,它比你想象的要容易。
答案 14 :(得分:0)
除书籍外,还有许多学习OS开发的网站 BrokenThorn Entertainment在本网站上,从基础
学习OS开发