一: 内核介绍
1. linux子系统结构
结构依赖代码:指用于CPU、MMU以及机载(on board)状态的低级(low-level)驱动程序。代码位于arch目录下。
设备驱动程序:linux内核一半以上的代码是设备驱动程序代码,linux通常最先封装最新设备。代码位于drivers目录下。
进程管理:代码位于kernel目录下。
内存管理:内存管理子系统负责内存分配、释放及共享,及其相关代码位于mm目录下。
虚拟文件系统: 将系统多种文件系统抽象化,从而提供共通的接口。代码位于fs目录下。
网络子系统: 通过一致的方法使用多种网络装置。代码位于net目录下。
系统调用接口: 提供接口,以在用户空间级调用已在内核中实现的特定功能,相关代码位于linux/kernel或linux/arch目录下。
单内核——所有内核服务均在内核地址空间中存在并运行。直接调出内核服务。
微内核——内核服务中一部分位于用户空间。利用消息传送方式调用内核服务。
2.内核2.6与3.2之间的差异
随着版本的升级,变更大的部分事项只是添加或改善了新的设备驱动程序、对结构的支持、文件系统等,或删除不必要的部分。
二. 构建分析环境
1. 下载源码
从www.kernel,org下载源码,使用vim+ctags+cscope看源码。ctags+cscope的使用见我另一篇博文:http://blog.csdn.net/wugsh15/article/details/50463997