Mic*_*ski 21 linux bsd operating-system kernel osdev
我想更好地了解操作系统内部.流程管理,内存管理等等.
我想通过了解linux或BSD内核来学习.
哪一个内核更适合学习目的?
什么是最好的起点?
你能推荐一本好书吗?
Mik*_*one 12
在大学里,我有一个操作系统课,我们用Tanenbaum的一本书.在课堂上,我们在Minix操作系统中实现了一个设备驱动程序.这很有趣,我们学到了很多东西.
有一点需要注意,如果你选择Minix,它是专为学习而设计的.它是一个微内核,而Linux和BSD是一个单片内核,所以你学到的东西可能不是100%可以转换为能够使用Linux或BSD,但你仍然可以从中获得很多,而不必处理相当尽可能多的信息.
作为旁注,如果你读过Just for Fun,Linus在写Linux之前实际上是在玩Minix,但这对他的目的来说还不够.
小智 7
作为Linux用户,我认为Linux有一个很好的社区供人们学习内核.http://kernelnewbies.org是一个开始提问和了解内核如何工作的好地方.我无法做出书籍推荐,但是一旦你阅读了关于kernelnewbies的起始材料,就会有很好的文档来源.
除了已经提到的好书(操作系统设计和实现特别好)之外,获取1.x版本的Linux内核,将其加载到VMWare或VirtualBox中并从那里开始播放.
您需要花费大量时间浏览源代码.为此,请查看http://lxr.linux.no/这是源的可浏览链接版本,让生活更轻松.对于Linux的第一个版本(0.01),请查看http://lxr.linux.no/linux-old+v0.01/.乐趣从http://lxr.linux.no/linux-old+v0.01/boot/boot.s开始.当您从版本升级到版本时,请查看ChangeLog并深入了解已更改的部分,以便您再次重新阅读整个内容.
一旦你掌握了概念,看看2.0,然后是2.2,等等.准备好在这个过程中花费很多时间.
注意到这里缺乏 BSD,我想我应该补充一下:
我自己没有参加任何课程,但我在其他场合听过 Marshall Kirk McKusick 的演讲,他真的很擅长他所做的事情。
当然还有 BSD 手册页,它们是极好的资源,因为它们的维护程度比一般的 Linux 手册页要大得多。以uvm(9)手册页为例,它描述了 OpenBSD 中的虚拟内存接口。
不太相关,但我还会推荐视频History of the Berkeley Software Distributions,因为它很好地介绍了 UNIX 历史和文化的 BSD 部分,以及当时的大量搞笑轶事。
| 归档时间: |
|
| 查看次数: |
4931 次 |
| 最近记录: |