纸上得来终觉浅,绝知此事须躬行_Linux内核完全剖析书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 科技 > Linux内核完全剖析 > 纸上得来终觉浅,绝知此事须躬行
平凡的老鱼 Linux内核完全剖析 的书评 发表时间:2012-10-28 16:10:06

纸上得来终觉浅,绝知此事须躬行

是从10年7 8月份的时候开始读这本书,之前读过于渊的那本自已动手写操作系统,然后觉得0.11内核或许是一个比较适合自已水平的选择,然后就开始动手了,本来预计大抵应该是半年的,没想到一下子花了差不多两年时间,中间由于工作的缘故,断断续续的,去年因为头疼也中断了大半年,工作以后,学习甚为不易,如果有机会的话,在学校里面会更珍惜时间的。关于工作和学习,题外太多,收住。

以下是个人的学习过程和心得:
这本书主要分成三部分,第一部分是1-5章,第二部分是6章以后是源代码,第三部分实验环境设置。

第一部分是理论基础,第3章说是编程的事情,第4章关于保护模式,第5章关于内核结构的,全书最难的部分
由于之前对保护模式有一定了解,所以前面几部分上手还行,第5章当时看的时候是一扫而过的,后来不断的回来翻,才发现有些内容,当你懂以后你就能够看懂,不懂的时候,死活也看不懂。。

第二部分开始,我个人是从bootsect.s开始,采用增量的方法,一点点的照着书的代码开始往里面加,从最开始在屏幕上显示loading...到最后shell实行起来,中间是由无数次的make和debug实现的。中间碰到了无数的问题,如开始的时候没有printf函数,自已参照别的书,在setup.s里面加了一个disp_str函数,后来实现printf时候,直接在里面裹了disp_str,然后自已忘记了,结果在move_to_user_mode以后,由于栈的问题一调用就出错退出,自已找了好久才发现,此类种种问题,有苦亦有乐。

第三部分是环境的搭建,如果不需要自已动手实现的话,可以不用看。我个人说说我自已的经验,我整个环境是用vmware里面装的redhat 9来作为编译环境的,然后代码是在windows下面用souceInsight看的,然后辅以editplus和ultraedit。secureCRT登到虚拟机上面编译,vim有时候用用,因为不怎么熟悉。
最关键的工具是调试工具,开始的时候用的是bochs自带的调试,因为最开始的boot部分是汇编写得,所以很适合,到了main函数以后因为代码基本上C代码了,所以感觉很费劲。进度慢了很多,碰到问题有时候要找很久,后来用了gdb 以后,确实很爽,非常推荐。
每天做的时候,都大概写一下工作日志,说明当天主要解决了什么问题,下一步还有难题。然后代码是用svn存得,最后总结的工作日志不到2万字,svn里面的版本号是100多个。

个人觉得书里面最难理解的是关于进程切换的TSS切换部分,当时有很多概念,书上看的时候模模糊糊,但实际上根本没有懂,然后通过调试一步步看寄存器和内存的变化,才慢慢的理解一些,所以说纸上得来终觉浅,自已试试还是有好处的。关于内存管理和文件系统,算法什么的其它操作系统书得很详细,都可以参考。


个人看得时候用的一些参考书目,供参考:

Linux内核设计的艺术
UNIX操作系统设计
Linux内核设计与实现 (LKD)
自已动手写操作系统(第二版叫Orange's,从策划上来说远不第一位版本的名字好)
现代操作系统
当然,这个论坛帮助也很大:http://www.oldlinux.org/oldlinux/

That's all.

展开全文
有用 49 无用 1

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“纸上得来终觉浅,绝知此事须躬行”的回应

阳广林 2013-03-18 21:55:31

赞.. 有时候也有这种感觉... 喜欢那种自己猜想被实验confirmed感觉..
BTW, 感觉这种细节很容易忘啊~

Will 2012-11-05 10:42:06

觉知此事要多行

草木灰 2012-11-05 10:23:08

看了一遍,没什么感觉,看来要实践一番,动手动手。。

杜若 2012-11-03 20:06:57

纸上得来终觉浅,始知此事须躬行

平凡的老鱼 2012-11-03 17:49:45

那两章部分的内容,单独看的话,有很多东西不好理解,真正理解还得从代码里面去看。

Kevin 2012-11-02 23:50:09

本来是弄了本0.12的,后来发现第四章第五章压力太大(也许直接从第六章的代码看起,不过还是觉得先看0.11的会好点),只能弄这本···希望看得下去···

啊麦 2012-10-28 23:24:17

这本书放了很久,硬是没有读完。