开发操作系统的资源

时间:2020-12-25 03:16:49

I'm planning to write an operating system and I don't know very much about operating systems. Are there any good resources or books to read in order for me to learn? What are your recommendations?

我打算编写一个操作系统,我不太了解操作系统。是否有任何好的资源或书籍可供我学习?你有什么建议?

15 个解决方案

#1


44  

We used Andrew Tannenbaum's Modern Operating Systems at the university I attended. I highly recommend it for it's clear explanations of the tradeoffs inherent in many of the design decisions that you'll run up against. This book is a little bit more "fair and balanced" than the Minix book.

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

alt text http://ecx.images-amazon.com/images/I/51DptFJH9NL._SL500_AA240_.jpg

替代文字http://ecx.images-amazon.com/images/I/51DptFJH9NL._SL500_AA240_.jpg

I also recommend this book because, despite his net-famous flame war with Linus Torvalds, few of his biases come through in the book. Also, he's a pretty decent writer, and the book is actually entertaining.

我也推荐这本书,因为尽管他与Linus Torvalds发生了网络着名的火焰战争,但他的一些偏见仍未出现在书中。此外,他是一位非常体面的作家,这本书实际上很有趣。

#2


14  

Operating Systems Implementation Prentice Software

操作系统实现Prentice软件

alt text http://ecx.images-amazon.com/images/I/3125C47MR4L._SL500_AA180_.jpg

替代文字http://ecx.images-amazon.com/images/I/3125C47MR4L._SL500_AA180_.jpg

This book is written by Tanenbaum, the main guy behind Minix, which is what Linux was based on. It provides good overviews for basic OS concepts like memory management, file systems, processes, etc. The concepts in this book book are intimately tied to examples of the Minix OS, which is a good thing.

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

I think you should start by something like that.

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

#3


10  

Similar threads on this very site:

这个网站上的类似主题:

#4


9  

Os dev website is rich in information if you want to start coding your own OS too,

如果您想开始编写自己的操作系统,Os dev网站提供丰富的信息,

#5


9  

Operating System Concepts is the book we used at University. It's quite ugly BUT the information inside are well explain (from basic memory management, to how to OS decide what to execute or how to avoid deadlock). Pretty wide.

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

alt text http://ecx.images-amazon.com/images/I/51TJXR8CV3L._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU01_.jpg

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

#6


7  

While old, these books are very good:

虽然陈旧,但这些书非常好:

Operating System Design with Xinu

与Xinu的操作系统设计

alt text http://ecx.images-amazon.com/images/I/51AVJFBS3EL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU01_.jpg

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

Operating System Design-Internetworking With XINU, Vol. II

操作系统设计 - 网络互联与XINU,Vol。 II

alt text http://ecx.images-amazon.com/images/I/51MTVNE1PHL._SL500_AA240_.jpg

替代文字http://ecx.images-amazon.com/images/I/51MTVNE1PHL._SL500_AA240_.jpg

3: http://Operating System Design-Internetworking With XINU, Vol. II

3:http://操作系统设计 - 网络互联使用XINU,Vol。 II

#7


4  

Take a look at HelenOS, which is a from scratch microkernel based OS that aims to be a fully modern OS. Disclamer, I'm a contributor, I'm working on its shell from scratch.

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

HelenOS has been ported to ia32/64, SPARC, ARM and more, its very well designed and easy to read. Its still in its infancy but shows one possible design that really takes advantage of the microkernel design and solves many issues in a microkernel implementation (such as IPC).

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

It also includes scripts that automatically set up a proper tool chain needed for cross compiling. Its very easy to build and runs very well in most simulators (i.e. QEMU) or bare metal.

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

I would also study L4, Minix3 and the GNU HURD (based on Mach), the latter being an illustration of design pitfalls when trying to leverage a microkernel.

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

If you want to go the monolithic route, just study Linux.

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

#8


3  

I'd highly recommend taking a look at the MIT Operating Systems class. It's got lots of useful references, and a bunch of lab exercises which you can play around with (including automated grading scripts, so you don't have to be an MIT student to do them).

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

#9


3  

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

I used Operating Systems and Middleware: Supporting Controlled Interaction when I was in college. It is probably one of the best textbooks on the subject.

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

#10


2  

Just off the top of my head.

就在我的头顶。

#11


2  

Developing Your Own 32-Bit Operating System by Richard A. Burgess. Went into great details about boot loaders, setting up those strange memory and process management registers, etc. It was a great read back in 1996 when i thought i'd take a crack at writing a simple OS from scratch, but may be dated by now, dealing only with the first few generations of Pentium-class CPUs.

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

#12


1  

If I remember correctly, the Powerup to Bash Prompt HOWTO contained a lot of information that looked like it would be useful for this. So did older versions of the Linux From Scratch HOWTO, but in recent versions that has been removed.

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

You'll also find a lot of good information in Understanding the Linux Kernel.

您还可以在了解Linux内核中找到很多有用的信息。

#13


1  

You should look into MINIX 3. This is an operating system that was written in, I believe, less than 10,000 lines. You can get a very good idea of how an OS works with the aid of one of Tanenbaum's books and understanding how MINIX 3 works. You could go straight to Linux, but I think this is a useful task and really helps you see how it really doesn't take that many lines to build a working OS.

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

http://www.minix3.org/

#14


0  

I would recommend looking at embedded operating systems and building an embedded OS. It will deal with the core concepts without the overhead of a modern desktop CPU.

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

I wrote a multitasking embedded OS last spring as a final project, it's easier than you might think.

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

#15


0  

Apart from books, there are many sites that learn OS Development
BrokenThorn Entertainment is on of this website that learn OS dev from base

除了书籍之外,还有许多学习OS开发的网站BrokenThorn Entertainment在这个网站上学习OS开发基础

#1


44  

We used Andrew Tannenbaum's Modern Operating Systems at the university I attended. I highly recommend it for it's clear explanations of the tradeoffs inherent in many of the design decisions that you'll run up against. This book is a little bit more "fair and balanced" than the Minix book.

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

alt text http://ecx.images-amazon.com/images/I/51DptFJH9NL._SL500_AA240_.jpg

替代文字http://ecx.images-amazon.com/images/I/51DptFJH9NL._SL500_AA240_.jpg

I also recommend this book because, despite his net-famous flame war with Linus Torvalds, few of his biases come through in the book. Also, he's a pretty decent writer, and the book is actually entertaining.

我也推荐这本书,因为尽管他与Linus Torvalds发生了网络着名的火焰战争,但他的一些偏见仍未出现在书中。此外,他是一位非常体面的作家,这本书实际上很有趣。

#2


14  

Operating Systems Implementation Prentice Software

操作系统实现Prentice软件

alt text http://ecx.images-amazon.com/images/I/3125C47MR4L._SL500_AA180_.jpg

替代文字http://ecx.images-amazon.com/images/I/3125C47MR4L._SL500_AA180_.jpg

This book is written by Tanenbaum, the main guy behind Minix, which is what Linux was based on. It provides good overviews for basic OS concepts like memory management, file systems, processes, etc. The concepts in this book book are intimately tied to examples of the Minix OS, which is a good thing.

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

I think you should start by something like that.

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

#3


10  

Similar threads on this very site:

这个网站上的类似主题:

#4


9  

Os dev website is rich in information if you want to start coding your own OS too,

如果您想开始编写自己的操作系统,Os dev网站提供丰富的信息,

#5


9  

Operating System Concepts is the book we used at University. It's quite ugly BUT the information inside are well explain (from basic memory management, to how to OS decide what to execute or how to avoid deadlock). Pretty wide.

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

alt text http://ecx.images-amazon.com/images/I/51TJXR8CV3L._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU01_.jpg

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

#6


7  

While old, these books are very good:

虽然陈旧,但这些书非常好:

Operating System Design with Xinu

与Xinu的操作系统设计

alt text http://ecx.images-amazon.com/images/I/51AVJFBS3EL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU01_.jpg

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

Operating System Design-Internetworking With XINU, Vol. II

操作系统设计 - 网络互联与XINU,Vol。 II

alt text http://ecx.images-amazon.com/images/I/51MTVNE1PHL._SL500_AA240_.jpg

替代文字http://ecx.images-amazon.com/images/I/51MTVNE1PHL._SL500_AA240_.jpg

3: http://Operating System Design-Internetworking With XINU, Vol. II

3:http://操作系统设计 - 网络互联使用XINU,Vol。 II

#7


4  

Take a look at HelenOS, which is a from scratch microkernel based OS that aims to be a fully modern OS. Disclamer, I'm a contributor, I'm working on its shell from scratch.

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

HelenOS has been ported to ia32/64, SPARC, ARM and more, its very well designed and easy to read. Its still in its infancy but shows one possible design that really takes advantage of the microkernel design and solves many issues in a microkernel implementation (such as IPC).

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

It also includes scripts that automatically set up a proper tool chain needed for cross compiling. Its very easy to build and runs very well in most simulators (i.e. QEMU) or bare metal.

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

I would also study L4, Minix3 and the GNU HURD (based on Mach), the latter being an illustration of design pitfalls when trying to leverage a microkernel.

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

If you want to go the monolithic route, just study Linux.

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

#8


3  

I'd highly recommend taking a look at the MIT Operating Systems class. It's got lots of useful references, and a bunch of lab exercises which you can play around with (including automated grading scripts, so you don't have to be an MIT student to do them).

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

#9


3  

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

I used Operating Systems and Middleware: Supporting Controlled Interaction when I was in college. It is probably one of the best textbooks on the subject.

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

#10


2  

Just off the top of my head.

就在我的头顶。

#11


2  

Developing Your Own 32-Bit Operating System by Richard A. Burgess. Went into great details about boot loaders, setting up those strange memory and process management registers, etc. It was a great read back in 1996 when i thought i'd take a crack at writing a simple OS from scratch, but may be dated by now, dealing only with the first few generations of Pentium-class CPUs.

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

#12


1  

If I remember correctly, the Powerup to Bash Prompt HOWTO contained a lot of information that looked like it would be useful for this. So did older versions of the Linux From Scratch HOWTO, but in recent versions that has been removed.

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

You'll also find a lot of good information in Understanding the Linux Kernel.

您还可以在了解Linux内核中找到很多有用的信息。

#13


1  

You should look into MINIX 3. This is an operating system that was written in, I believe, less than 10,000 lines. You can get a very good idea of how an OS works with the aid of one of Tanenbaum's books and understanding how MINIX 3 works. You could go straight to Linux, but I think this is a useful task and really helps you see how it really doesn't take that many lines to build a working OS.

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

http://www.minix3.org/

#14


0  

I would recommend looking at embedded operating systems and building an embedded OS. It will deal with the core concepts without the overhead of a modern desktop CPU.

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

I wrote a multitasking embedded OS last spring as a final project, it's easier than you might think.

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

#15


0  

Apart from books, there are many sites that learn OS Development
BrokenThorn Entertainment is on of this website that learn OS dev from base

除了书籍之外,还有许多学习OS开发的网站BrokenThorn Entertainment在这个网站上学习OS开发基础