我打算编写一个操作系统,我对操作系统知之甚少 . 是否有任何好的资源或书籍可供我学习?你有什么建议?
除了书籍,还有许多学习OS开发的网站BrokenThorn Entertainment在本网站上,从基础学习OS开发
我们在我就读的大学里使用了Andrew Tannenbaum的Modern Operating Systems . 我强烈推荐它's clear explanations of the tradeoffs inherent in many of the design decisions that you' ll跑起来反对 . 这本书比Minix书更多"fair and balanced" .
alt text http://ecx.images-amazon.com/images/I/51DptFJH9NL.SL500_AA240.jpg
我也推荐这本书,因为尽管他的书中有很少的偏见 . 此外,他是一位非常体面的作家,这本书实际上很有趣 .
Operating Systems Implementation Prentice Software
alt text http://ecx.images-amazon.com/images/I/3125C47MR4L.SL500_AA180.jpg
本书由Tanenbaum编写,Tanenbaum是Minix背后的主要人物,这是Linux的基础 . 它为内存管理,文件系统,进程等基本操作系统概念提供了很好的概述 . 本书中的概念与Minix操作系统的示例密切相关,这是一件好事 .
我认为你应该从这样的事情开始 .
这个网站上的类似主题:
OS Development
Building a new operating system
How to get started in operating system development
如果您想开始编写自己的操作系统,Os dev网站有丰富的信息,
Operating System Concepts是我们在大学使用的那本书 . 它很丑陋但内部信息很好解释(从基本内存管理,到如何操作系统决定执行什么或如何避免死锁) . 很宽 .
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
虽然陈旧,但这些书非常好:
Operating System Design with 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
Operating System Design-Internetworking With XINU, Vol. II
alt text http://ecx.images-amazon.com/images/I/51MTVNE1PHL.SL500_AA240.jpg
3:http://Operating系统设计 - 网络与XINU,Vol . II
看一下HelenOS,这是一个基于微内核的操作系统,旨在成为一个完全现代化的操作系统 . 免责声明,我是从头开始研究它的shell .
HelenOS已被移植到ia32 / 64,SPARC,ARM等,其设计精良且易于阅读 . 它仍然处于起步阶段,但展示了一种可能的设计,它真正利用了微内核设计并解决了微内核实现中的许多问题(例如IPC) .
它还包括自动设置交叉编译所需的适当工具链的脚本 . 它在大多数模拟器(即QEMU)或裸机中非常容易构建和运行 .
我还将研究L4,Minix3和GNU HURD(基于Mach),后者是试图利用微内核时设计陷阱的例证 .
如果你想走整体路线,那就去学习Linux吧 .
我强烈建议你看一下MIT Operating Systems class . 它必须是麻省理工学院的学生才能完成它们 .
textbook http://ecx.images-amazon.com/images/I/411E3CQQYZL.SS500.jpg
我在大学期间使用了操作系统和中间件:支持受控交互 . 它可能是关于这个主题的最好的教科书之一 .
Operating Systems Design and Implementation
The design and implementation of the FreeBSD OS
就在我的头顶 .
Richard A. Burgess开发自己的32位操作系统 . 详细了解了引导加载程序,设置了那些奇怪的内存和进程管理寄存器等等 . 这是1996年的一次很好的回读,当时我认为我会从头开始编写一个简单的操作系统,但可能会过时现在,只处理奔腾级CPU的前几代 .
如果我没记错的话,Powerup to Bash Prompt HOWTO包含了很多看起来对它有用的信息 . 旧版本的Linux From Scratch HOWTO也是如此,但最近的版本已被删除 .
您还可以在Understanding the Linux Kernel中找到很多有用的信息 .
您应该查看MINIX 3.这是一个操作系统,我相信,写入的行数少于10,000行 . 借助Tanenbaum的书籍之一,您可以很好地了解操作系统的工作原理,并了解MINIX 3的工作原理 . 您可以直接使用Linux,但我认为这是一项非常有用的任务,可以帮助您了解如何构建一个有效的操作系统并不需要那么多行 .
http://www.minix3.org/
我建议查看嵌入式操作系统并构建嵌入式操作系统 . 它将处理核心概念,而不需要现代桌面CPU的开销 .
我去年 Spring 天作为最终项目编写了一个多任务嵌入式操作系统,它比你想象的要容易 .
15 回答
除了书籍,还有许多学习OS开发的网站
BrokenThorn Entertainment在本网站上,从基础学习OS开发
我们在我就读的大学里使用了Andrew Tannenbaum的Modern Operating Systems . 我强烈推荐它's clear explanations of the tradeoffs inherent in many of the design decisions that you' ll跑起来反对 . 这本书比Minix书更多"fair and balanced" .
alt text http://ecx.images-amazon.com/images/I/51DptFJH9NL.SL500_AA240.jpg
我也推荐这本书,因为尽管他的书中有很少的偏见 . 此外,他是一位非常体面的作家,这本书实际上很有趣 .
Operating Systems Implementation Prentice Software
alt text http://ecx.images-amazon.com/images/I/3125C47MR4L.SL500_AA180.jpg
本书由Tanenbaum编写,Tanenbaum是Minix背后的主要人物,这是Linux的基础 . 它为内存管理,文件系统,进程等基本操作系统概念提供了很好的概述 . 本书中的概念与Minix操作系统的示例密切相关,这是一件好事 .
我认为你应该从这样的事情开始 .
这个网站上的类似主题:
OS Development
Building a new operating system
How to get started in operating system development
如果您想开始编写自己的操作系统,Os dev网站有丰富的信息,
Operating System Concepts是我们在大学使用的那本书 . 它很丑陋但内部信息很好解释(从基本内存管理,到如何操作系统决定执行什么或如何避免死锁) . 很宽 .
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
虽然陈旧,但这些书非常好:
Operating System Design with 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
Operating System Design-Internetworking With XINU, Vol. II
alt text http://ecx.images-amazon.com/images/I/51MTVNE1PHL.SL500_AA240.jpg
3:http://Operating系统设计 - 网络与XINU,Vol . II
看一下HelenOS,这是一个基于微内核的操作系统,旨在成为一个完全现代化的操作系统 . 免责声明,我是从头开始研究它的shell .
HelenOS已被移植到ia32 / 64,SPARC,ARM等,其设计精良且易于阅读 . 它仍然处于起步阶段,但展示了一种可能的设计,它真正利用了微内核设计并解决了微内核实现中的许多问题(例如IPC) .
它还包括自动设置交叉编译所需的适当工具链的脚本 . 它在大多数模拟器(即QEMU)或裸机中非常容易构建和运行 .
我还将研究L4,Minix3和GNU HURD(基于Mach),后者是试图利用微内核时设计陷阱的例证 .
如果你想走整体路线,那就去学习Linux吧 .
我强烈建议你看一下MIT Operating Systems class . 它必须是麻省理工学院的学生才能完成它们 .
textbook http://ecx.images-amazon.com/images/I/411E3CQQYZL.SS500.jpg
我在大学期间使用了操作系统和中间件:支持受控交互 . 它可能是关于这个主题的最好的教科书之一 .
Operating Systems Design and Implementation
The design and implementation of the FreeBSD OS
就在我的头顶 .
Richard A. Burgess开发自己的32位操作系统 . 详细了解了引导加载程序,设置了那些奇怪的内存和进程管理寄存器等等 . 这是1996年的一次很好的回读,当时我认为我会从头开始编写一个简单的操作系统,但可能会过时现在,只处理奔腾级CPU的前几代 .
如果我没记错的话,Powerup to Bash Prompt HOWTO包含了很多看起来对它有用的信息 . 旧版本的Linux From Scratch HOWTO也是如此,但最近的版本已被删除 .
您还可以在Understanding the Linux Kernel中找到很多有用的信息 .
您应该查看MINIX 3.这是一个操作系统,我相信,写入的行数少于10,000行 . 借助Tanenbaum的书籍之一,您可以很好地了解操作系统的工作原理,并了解MINIX 3的工作原理 . 您可以直接使用Linux,但我认为这是一项非常有用的任务,可以帮助您了解如何构建一个有效的操作系统并不需要那么多行 .
http://www.minix3.org/
我建议查看嵌入式操作系统并构建嵌入式操作系统 . 它将处理核心概念,而不需要现代桌面CPU的开销 .
我去年 Spring 天作为最终项目编写了一个多任务嵌入式操作系统,它比你想象的要容易 .