Linux 内核对象模型源码试读(前言)

一、为什么要阅读源码

        说真的,阅读源码是为了满足自己的好奇心。小的时候,我非常渴望了解电脑怎样工作的,只要通上电,按一个按钮,这堆冷冰冰的铁家伙立即变得生龙活虎、无所不能。于是我毫不犹豫的报了计算机科学与技术,在大学里,我知道了一部分真像——所有冰冷的硬件都是由看得见摸不着的软件控制着工作的,是由一个叫操作系统的东西来统一管理的。所以我想知道,操作系统到底是如何工作的,当然一切的秘密就存在于那一包神秘的代码中。经过大学四年的准备我现在已经具备了揭开他们神秘面纱的基本能力,于是我尝试去做这件事情,这也是标题叫做“试读”的原因。可以肯定一次并不能成功,但我可以在这个过程中积累源码阅读的能力和方法。

        我知道这是一件很难做的事,所以记于网上,每每翻看自己写过的点点滴滴,就会给予我坚持下去的力量。更重要的如果我的理解有误,可以得到很多人给我指正。微笑

二、这不是重复造轮子吗

        软件工程中有一条大忌——重复造轮子,毫无疑问我正在做这件傻事。网上已经有大量的人写了Linux源码分析,有的还写得非常好,思路十分清晰,每次我看了他们写的文章之后都能对某个知识点有个大概的认识,但是不久就会忘记。究其原因,一是不同的人养成的信息记忆方式不一样,就像不同的文件系统一样,组织呀查询呀都有不一样的算法。所以我还得用我自己的方式去做这一件事。二是在真正的工程中重复造轮子与我正在做的这件事有的明显的不同,不要重复造轮子是为了节约开发成本和时间,为企业产品上市抢占先机,而我是在自己的业余时间重复造轮子,试图通过这种方法来获知制造轮子的细节,有可能的时候制造出更好的轮子(呵呵)。

        网上的优秀文章肯定会成为我理解时重要的参考,在这里先给这些辛勤写作、无私共享的工程师们表示感谢,同时也共享出我自己的笔记,能对希望深入了解内核的人们有帮助。

三、打算如何来做

        既然已经决定要做,就要认真的做。

        从内容上讲,我没有选择从内核初始化开始,我想以系统中的各种模块为单位,针对用不同的模块用不同的方法来理解。像设备驱动模型这个模块就特别适合用面向对象的思想来理解。

        笔记格式要严格要求,严格的格式非常重要,就和统一的编码风格一样重要,对快速理解要表达的东西有很大的帮助。虽然我现在不能确实什么样的格式最适合用来做这件事情,但相信慢慢的就会形成一套规则。目前能确实的就是:

  • 每篇试记要有标题,标题能反映出主要内容。
  • 先写题纲后作文。这句小学老师教给我的法宝,现在正是其显示威力的时候。在源码阅读的时候最困扰人的问题是:读着读着就找不到方向了,不知不觉偏离了航道,甚至有时关了电脑之后才想起,今天看了一整天,我原来打算解决的问题根本没有找到答案,题纲可以帮助我明确目标。
  • 用疑问式的句子组成一级标题,一看就知道这一段要解决什么问题。
  • 代码一定要用相应的格式呈现,不要看起来乱七八糟的,本来看代码就心烦了,呵呵。
  • 重要的地方要用特别的标记标明。
  • 中英文混合的句子中,中文与英文之间要用一个半角空格分隔。
  • 语言要精炼,能充分表其意。但是做到这些很难,只能说是尽量。

四、总结

        前言,就像打仗时的动员大会和战略指导方针,对一件需要毅力才能完成的事,是很重要的。

        既然已经完成宣誓,那就开始行动吧。因为学习了四年的 Java,我熟悉面向对象的思想,所以选择内核中的一个软柿子——内核对象模型作为第一个战略目标,这一部分也是相对熟悉的。【注】本来打算先阅读设备驱动模型的,但内核对象模型是其基础,所以临时调整了一下顺序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值