前言:在程序员成长过程中,相对于硬技能的提升,软技能往往被忽略,但要往更高处走,软技能启着至关重要的作用。作为从业十多年的大龄程序中的角度,解读那些有利于个人成长的点,连点成线,连线成面,伴你向上生长。
Linux内核代码的庞大令不少人“望而却步”,究其原因可以总结为以下几点:
1、认为内核源码“高不可攀”。其实内核源码分析的难度不在于源码本身,而在于如何使用更合适的分析代码的方式和手段。内核的庞大致使我们不能按照分析一般的demo程序那样从主函数开始按部就班的分析,我们需要一种从中间介入的手段对内核源码“各个击破”。
2、需要丰富的理论基础。内核的地位的特殊性决定着内核的执行效率必须足够高才可以响应目前计算机应用的实时性要求,为此Linux内核使用C语言和汇编的混合编程。
如何正确的阅读源码呢?
首先我们来说一下操作系统。百度百科说它是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统。在Linux中则被称为“内核”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。
所以