读《linux0.11 内核完全解析》的一点感受

为了看懂《Linux内核完全剖析》决定动手写一个操作系统。从7月开始写,到今天才完成了从启动代码到main函数,以及中断处理。已经enable了时钟中断了键盘中断,可以在屏幕上打字母。接下里还要写文件系统,内存管理和进程管理。直到写出一个shell程序。这期间参考了《x86汇编-从实模式到保护模式》和《自己动手写操作系统》的代码,有些直接拿来抄了,在此对李忠等及于渊几位作者表示感谢。

今天想跟记录的仅仅是怎么读《Linux内核完全剖析》这本书。6月刚买这本书的时候计划一个月看完。书的头几章都是些介绍x86硬件体系,可以进行地比较快。直到看到代码我的速度一下子慢下来,几个月没动一章。主要是不熟悉汇编。一直不能明白内核boot的代码。为了搞懂内核决定另辟蹊径自己写,于是就开始找书写内核。上面提到的那两本书真的是从零写内核不可多得的好书。尤其是《x86汇编》讲的通俗易懂,想要弄懂系统是怎么从BIOS进入Bootloader,以及从实模式到保护模式的原理,非常推荐读一下,只是没有把内核完整写下来。《自己动手写操作系统》这本书虽然写的也很通俗,但是相对稍微难理解一些。跟着这几本书的指引,经过自己不断的摸索调试,终于写出一个小的loader,内核虽然还没写出了,汇编却熟悉了,返回去看完全解析竟容易些了。但是看书上的讲解总是觉得像雾里看花。把书抛开,直接看代码反而觉得容易理解的多,也快的多。有不太清楚的再去看书,这样效率会提高很多。

之所以能较快的看懂内核各个模块的代码,一部分原因是已经看过Linux内核基础的入门书籍,对Linux内核有一定的认识,只是缺乏实际的有机的认识。从源码看起,可以对操作系统有一个实质性的理解。这也是完全解析的作者写书的初衷。

所以说了这么多其实就是,要对Linux内核整体有大概的了解,有c语言和汇编基础,再去看源码,有不理解的地方可以在书中找答案。

接下来还要继续写内核,直到能写出一个可以交互的shell。内核放在https://github.com/jianyongwu/horos。有兴趣的可以一起写。

猜你喜欢

转载自blog.csdn.net/wujianyongw4/article/details/83352090
今日推荐