我想更好地了解操作系统内部.流程管理,内存管理等等.
我想通过了解linux或BSD内核来学习.
哪一个内核更适合学习目的?
什么是最好的起点?
你能推荐一本好书吗?
在大学里,我有一个操作系统课,我们用Tanenbaum的一本书.在课堂上,我们在Minix操作系统中实现了一个设备驱动程序.这很有趣,我们学到了很多东西.
有一点需要注意,如果你选择Minix,它是专为学习而设计的.它是一个微内核,而Linux和BSD是一个单片内核,所以你学到的东西可能不是100%可以转换为能够使用Linux或BSD,但你仍然可以从中获得很多,而不必处理相当尽可能多的信息.
作为旁注,如果你读过Just for Fun,Linus在写Linux之前实际上是在玩Minix,但这对他的目的来说还不够.
作为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,等等.准备好在这个过程中花费很多时间.
Linux设备驱动程序
Linux核心内容评论
操作系统设计和实现
我以前为了同样的目的买了这些书,但我从来没有自己研究过,所以只把它们作为二手的建议.