Linux内核学习计划

  这些天,复习完linux心里有看Linux内核的想法,但听好多朋友说他们都没看过linux内核,觉得这东西一定不简单,然后网上收集了下信息,看看都需要什么基础,大概是下面罗列的这些。 

  学习Linux内核的前戏:


    1, 关于操作系统理论的最初级的知识。不需要通读并理解《操作系统概念》《现代操作系统》等巨著,但总要知道分时(time-shared)和实时(real-time)的区别是什么,进程是个什么东西,文件系统是什么东西,CPU和系统总线、内存的关系(很粗略即可),等等。 

    2, 关于C语言。不需要已经很精通C语言,只要能熟练编写C程序,能看懂链表、散列表等数据结构的C实现,用过gcc编译器,就可以了。当然,如果已经精通C语言显然是大占便宜的。 

    3, 关于CPU的知识。这块儿可以在学习内核过程中补,但这样的话你就需要看讲解很详细的书,比方后面将会提到的《情景分析》。你是否熟悉Intel 80386 CPU?尝试着回答这几个问题来判断一下:1)说出80386的中断门和陷阱门的区别;2)说出保护模式与实模式的区别;3)多处理器机器上,普通的读--写回一块内存这样的动作,为什么需要特殊的手段来保护。等等。讲解基于其它CPULinux内核的书,目前好象只有一本《IA64Linux内核:设计与实现》──也还是Intel的,其它都是讲解基于IA32的。 

    4.以上算是知识方面吧,如果还要再补充一条,我想就是:动手编译过内核。


    鉴于以上几点自己学得都还不够好,基础不够扎实,打算先把《c语言》学精通,然后配合着考研好好学习《操作系统》,深入理解其中的概念、机制、框架,有了这些基础等到考研结束后就可以开始看Linux内核。在开始的时候,先学习赵炯的《Linux设计与实现》。然后有了基础之后再作计划。


本文ZeroClock原创,但可以转载,因为我们是兄弟。

你可能感兴趣的:(Linux内核学习计划)