Read The Fucking Source Code

       本想在2012年暑假阅读linux早期版本的源码,由于各种原因(玩、实习,主要还是没有计划、缺乏耐心、朝秦暮楚)直到2013年到来还只是停留在目录部分。(总结下:一定要有明确的计划,定一个方向,坚持往下走;想法多是好事,但是如果朝三暮四,必定一事无成。就像一个软件项目,如果需求不明确,时不时地更改,那这个项目注定是个失败的项目。)在这重新给自己粗略定个计划:利用放假前的空闲时间以及部分寒假时间阅读linux内核0.11版本源码,伴随阅读TCP/IP详解卷一,并适当写读书笔记。

阅读源码的重要性和必要性:

       要理解一个软件系统的真正运行机制,就要阅读它的源代码。虽然可以通过一些使用手册或者命令全集让你熟练使用一个操作系统,但你只停留在会使用的地步,而不能高效地使用,因为你对操作系统的真正组成和内部关系实现的理解仍然很不清晰。举个简单的例子:编程的本质在于对内存的操作,如果你不清楚系统的内存管理机制,你就很难写出高效的代码,你甚至不清楚乘法和除法哪个操作时间相对较短。另外系统本身是一个完整的整体,具有很多看似不重要的细节,但是忽略这些细节,就会对整个系统的理解带来困难,并且不能真正了解一个实际系统的实现方法和手段。只有在阅读了系统的完整源代码之后,才会对系统有一种豁然开朗的感觉,对整个系统的运作有深刻的理解,当运行一个程序时,你看到的不只是一个结果,还有计算机按照你的意思对地址的各种运算,对数据的各种存储和操作,这一切都将暴露在你眼前,而不再是个黑匣子。

选择linux以及0.11版内核的原因:

        谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行。linux强大的内存管理功能以及高可靠性和高稳定性让它在作为服务器方面有着巨大的发展前景。本人现在看直播节目甚至是线下电影都要在ubuntu下观看,因为windows下不一会就因内存使用率过高而卡了。

       目前的linux源代码量都在几百万行的数量上,我没有那信心能够坚持看下去。而0.11版本的内核源码非常短小,不超过两万行代码量。麻雀虽小,五脏俱全,该版本几乎就是现有版本的精简版,它包括了几乎所有的基本功能原理的内容(以上信息来自广大网友的评论)。这对于想在短时间内理解linux的基本工作原理的我是一个理想的选择。

这里先列出0.11版本的目录:

第一章:概述

第二章:linux内核体系结构

第三章:引导启动程序(BOOT)

第四章:初始化程序

第五章:内核代码

第六章:块设备驱动程序(BLOCK DRIVER)

第七章:字符设备驱动程序(CHAR DRIVER)

第八章:数学协处理器(MATH)

第九章:文件系统

第十章:内存管理(MM)

第十一章:头文件(INCLUDE)

第十二章:库文件(LIB)

第十三章:建造工具(TOOLS)

第十四章:实验环境设置与使用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值