linux 内核源代码情景分析

linux 内核源代码情景分析

ID:14904539

大小:12.42 MB

页数:1481页

时间:2018-07-30

linux 内核源代码情景分析_第1页
linux 内核源代码情景分析_第2页
linux 内核源代码情景分析_第3页
linux 内核源代码情景分析_第4页
linux 内核源代码情景分析_第5页
资源描述:

《linux 内核源代码情景分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、前言本书着重于对Linux系统最新版本(2.4.0)内核源代码进行情景描述和情景分析。什么是情景描述?什么是情景分析?不妨以英语的教学为例。大家都知道,有一种很有效的方法是通过“情景会话”学习英语。例如,去剧院问路要说些什么,去图书馆借书要说些什么,去餐馆吃饭遇上了熟人又说些什么,等等。每一个这样的“情景”都是一个常见或常用的会话过程。以这样的一些情景为线索,沿着这些线索讲解“这是被动时态”、“那是习惯用法”,就容易引起学习人的兴趣从而印象深刻,并且每学了这样一个情景就能够实际运用。另外,由于来自现实生活的情景在语法、语义等方面不是单一的,在学

2、习一个情景的时候通常都会涉及到该语言种种不同的方面,通过一系列精心安排的情景会话的学习,就能对英语逐步地建立比较全面的认识。事实上,就英语的学习而言,纯粹的系统化学习方法几乎是不现实的。事实上,很少有人通过读字典来学单词,而都是结合课文来学,每篇课文实际上也是一个情景。当然,系统化的学习还是要的,学了情景对话以后还要再系统地学习语法。但是无可否认的是,从情景对话入手学习英语比从语法入手要有效得多。相信读者会有这方面的体会和经历。现在来看Linux内核的学习。如果以若干经过精心安排的情景为线索,例如,打开一个文件的全过程,执行一个可执行程序的全过

3、程,从一个进程发送一个报文到另一个进程的过程等等,结合内核源代码逐个加以讲解,并且在讲解过程中有针对性地介绍所涉及的数据结构和算法,读者就能得到对整个内核的生动而深刻的理解。本书的宗旨之一就在于引导读者走过许多这样的“情景”,从而建立起对Linux内核的全面的认识。至于情景的安排,仍旧按照操作系统的原理分成若干章,例如存储管理、进程管理、文件系统等等。在每一章中,除了必要的叙述以外,都挑选了若干重要的情景,结合源代码逐个加以讲解。本书使用的源代码,刚开始编写初稿时取自当时最新的Linux内核2.3.38版,后来经历2.3.98和2.4.0测试版

4、,最后依据2.4.0正式版重新修改定稿。读者可以在相关的网站上自行下载该版本的全部源代码。可以肯定,当读者看到本书时,甚至本书付印时,最新的版本已不再是2.4.0了。但不管怎样我们总得要锁定一个版本,这就是2.4.0。一般情况下,分析操作系统源代码的专著和教材习惯上都是这样安排的:以主要数据结构的定义为核心,以数据结构之间的联系为线索,内容则以对文件、模块和函数的功能描述为主,辅以若干函数中的代码片段作为实例,以达到介绍、分析各种特定机制的目的。这种思路和安排基本上类似于先讲语法规则后举一些例句的外语教学方法,它比较适合于只要求对内核和它的原理

5、有粗略了解的读者,但对需要深入理解内核或实际从事这方面工作的读者就未必合适。其实,这种安排对于初学者也未必是最好的。不错,要理解一个操作系统的内在机制及其实现机理,当然需要理解主要数据结构的组成,了解数据结构之间的联系,了解整个内核代码的模块划分、文件划分和功能分解,了解主要函数对有关数据结构操作的大致逻辑流程。问题在于,怎样才能使读者和学生达到这些要求。根据我们多年来的切身体会,我们决定从具体、鲜活的源代码入手作情景分析,在分析过程中逐步引入相关的数据结构和互相间的联系,介绍具体函数的逻辑流程及其物理背景乃至代码作者的某些高超技巧,让读者和作

6、者一起完成必要的抽象过程,通过读者的思索,最后达到深入而全面的理解。对于从事系统设计或实现的读者,源代码的阅读和理解是一项重要的基本功。写小说的人大多是读了许多名著和文学评论以后,而不是读了“小说概论”以后才学到写作技巧,进而写出受读者喜爱的作品。写程序的人又何尝不是如此。本书的目的之一就是为读者提供一些类似于文学评论的材料。另一方面,源代码的阅读和理解也是必要的。在某种意义上,源代码本身既是最准确的说明书也是最权威的教科书,因为由它所构成的系统切切实实在运行。我们自己就有这样的经历:学了一些原理和抽象的流程就自以为懂了,可是拿到源代码一看却怎

7、么也对不上号。于是下决心钻进去,花了九牛二虎之力才搞懂。Linux内核源代码还为计算机行业的工作人员树立了一个参照物。我们在工作中常常看到,人们(包括我们自己)在碰到问题的时候往往会先想一想:这在Linux(以前是Unix)里面是怎样实现的?或者在Linux环境中能否实现?再查看一下有关的源代码,便有了主张。有时甚至就在源代码中找几个文件加以裁减、修改,问题很快就解决了(但须遵守GPL中的有关规定)。诚然,Linux内核源代码的阅读和理解是个艰苦的过程,最好能有些指导,有些帮助,而这正是我们写这本书的目的。希望读者在每读完一章后能做两个小结。一

8、个是关于数据结构组成和数据结构之间联系的小结,另一个是关于执行过程以及函数调用关系的小结。读者为了完成这两个小结,可能不得不回过头去再读一遍甚至几遍前

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。