Linux 2.6 源码学习-概述

linux 2.6 是当前比较主流的操作系统内核,一直想花时间系统的学习一遍。回顾之前研究的内核源码经历,ucos作为一个嵌入式操作系统,其版本2的总代码不超过5K,如果一个有研发经验、操作系统基础的工程师2,3周就可以深入的过一遍。linux 0.11版本就要复杂的多,虽然代码行也不超过15K,并且单个文件也没有超过1K(映像是大的也就7,800),但由于保护模式、设备驱动、文件系统、段页式内存管理以及大量汇编代码的加入,其理解的难度相比较于ucos,我认为差不多要花费5倍的时间。这还多亏可以参考赵炯博士的完全分析一书,真心敬佩这样一丝不苟的技术大拿。

我原本以为在分析了ucos和linux 0.11后在2.6版本中会轻松不少,但真正打开代码后还是倒吸一口凉气。且不说总代码量以数十万计,光一个reschedule.c文件就蹦着10K去了,其代码实现(应该是考虑多CPU支持、多核的缘故)也复杂的多。对于这个版本的源码,即使去掉CPU结构、各类驱动、网络协议、各类文件系统,其工作量也不可能像linux 0.11 那样达到完全学习,因此今年计划目标如下:

  1. 参考深入理解内核、情景分析、内核分析及编程三本书,针对版本为2.6.11;
  2. 对linux的主干内容进行代码走读,并输出博文,走读内容分类如下图;
  3. kvm虚拟化部分作为重点学习对象(该部分2.6.11版本尚未支持,参考2.6.43版本),争取做到源码完全分析;

posted @ 2013-06-02 10:44  Fredric_2013  阅读(634)  评论(0编辑  收藏  举报