分享

内核代码学习==>深入介绍Linux内核(一)

 快乐学习 2006-12-10

深入介绍Linux内核(一)




第一章

我们在这里介绍的Linux内核,可以分为15章,其中Linux的诞生、名称来源和众多的开发者,我都不再重复的介绍了,开始我们讲解的是电脑硬件的基本知识。硬件与Operation systems有着密切的关联。如果想彻底了解Operartion systems的执行全部过程,那首先就要了解它的硬件运作环境,特别的是CPU多工执行机制。在这里我们也详细的来介绍电脑硬件组成、编制Linux內核程序使用的程序语言以及Intel 80x86保护模式下的程序设计原理;这都是对研究内核工作人员有所帮助的;从第8章-第13章是介绍內核代码的主要部分。最后一节,我们是介绍如何使用PC机模拟软件系统Bochs对Linux 0.12內核进行多样式的实验,Bochs是一种开源且高度可移植的IA-32(x86)PC模拟器,用C++写成,能够在大部分常见的平台上运行。它包括了对Intel x86 CPU,通用I/O设备,和定制BIOS的模拟。如果想进一步了解的话,请大家到"http://bochs."网站浏览。


为了便於大家閱读,在本文章的附錄中单独列出了內核中要用到的有关PC硬体方面的资讯。在参考文献中,我们仅列出了在閱读原始码时可供参考的书籍、文章等资讯,我们不想给大家一大堆的繁杂凌乱的文献列表。比如在引用Linux文档专案LDP (Linux Document Project) 中的文件时,我们会列出具体需要参考哪一篇HOWTO文章。


Linus在最初开发Linux作业系统內核时,主要参考了3本书。一本是Maurice J.Bach著的《The Design of the Unix Operating System》,该书描述了UNIX System V內核的工作原理和资料结构,(这本书有中文译本,北大版与机工版。)Linus使用了该书中很多函数的演算法,Linux內核原始码中很多重要函数的名称都取自该书。因此,在閱读本书时,这是一本必不可少的內核工作原理方面的参考书籍。另一本是John H.Crawford, Patrick P.Gelsinger 等编著的《Programming the 80386)》 ,是讲解80x86下保护模式程式设计方法的好书。






另一本就是Andrew S.Tanenbaum和Albert S Woodhull著的《Operating Systems, Design and Implementation》一书。Linus主要是使用了该书中描述的MINIX档案系统1.0 版,而且在早期的Linux內核中也仅支援该档案系统,所以在閱读本书有关档案系统一章內容时,档案系统的工作原理方面的知识完全可以从Tanenbaum的书中获得。







在对每个程式进行解說时,我们初步简单說明程式的主要用途和目的、输入输出参数以及与其他程式的关系,然后列出程式的完整代码並在其中对代码进行详细注释,注释时对原程式码或文字不作任何方面的改动或刪除,因为C语言是一种英语类语言,程式中原有的少量英文注释对常数符号、变数名等也提供了不少有用的资讯。在代码之后是对程式更为深入的解剖,並对代码中出现的一些语言硬体方面的相关知识进行說明。如果在看完这些信息后,再返回浏览一遍程式,能使你会有更深一层的体会。


对於閱读本文章所需要的一些基本概念知识的介绍都散佈在各个章节相应的地方,这樣做主要是为了能夠方便的找到,而且在结合原始码閱读时,对一些基本概念能有更深的理解。

最后要說明的是当你已经完全理解了本文所解說的一切时,並不代表你已经成为一个Linux行家了,你只是刚刚踏上Linux的征途,具有了一定的成为一个Linux內核高手的初步知识。这时你应该去閱读更多的原始码,最好是循序渐进地从1.0版开始直到最新正在开发中编号的版本。编者在编辑这文章时最新的Linux內核是2.6.12版。


注译:

Stack - 堆叠 或者称呼为 堆栈
Segment - 段
Flag - 旗标 或者称呼为 标志
暂存器又称呼为寄存器

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多