Linux 内核2.4版源代码分析大全
[绝版]基本信息
- 作者: 李善平 刘文峰 李程远 王焕龙 王伟波
- 丛书名: Linux与自由软件资源丛书
- 出版社:机械工业出版社
- ISBN:7111093445
- 上架时间:2001-12-11
- 出版日期:2002 年1月
- 页码:856
- 版次:1-1
- 所属分类:
计算机 > 操作系统 > Linux
推荐阅读
内容简介回到顶部↑
本书对Linux 2.4内核源代码进行了详细的介绍,它有效地解决了Linux操作系统长期以来“抽象”的现象,将Linux操作系统的概念、算法、原理等与实际操作统一起来。书中源代码与注释相对应,是大专院校师生与Linux操作系统管理人员及编程人员不可缺少的参考书。
目录回到顶部↑
第1章 linux进程管理
1.1 进程和进程控制块
1.1.1 调度数据成员
1.1.2 信号处理
1.1.3 进程队列指针
1.1.4 进程标识
1.1.5 时间数据成员
1.1.6 信号量数据成员
1.1.7 文件系统数据成员
1. 1.8 内存数据成员
1.1.9 页面管理
1.1.10 支持对称多处理器方式时的数据
成员
1.1.11 其他数据成员
1.1.12 进程队列的全局变量
1.2 进程状态和进程标志
1.3 list_head链表
1.4 进程调度
1.5 等待队列及其操作
前言回到顶部↑
笔者自1994年起一直承担计算机系“操作系统”课程的教学,感觉学习该课程有两大难处。其一是抽象。很难将书本中学到的操作系统概念、算法、原理等,与实际的操作系统加以印证。操作系统本来是所有软件中使用最广泛的,每台计算机必须安装操作系统,有的甚至不止一套。但它们只不过是一只只“黑匣子”,因为读不到,或读不懂操作系统的源代码。绝大多数用户只了解它们的外部功能和性能,却不知道如何实现这样的功能和达到这样的性能。其二是脱离实际。计算机专业课非常强调上机实习,而学习“操作系统”却难以实习。一方面因为操作系统是所有软件中最复杂的,编制这样的系统牵涉到方方面面;编程者既要有扎实的软件基础,又要了解将操作的硬件,难度可想而知。另一方面,由于种种原因,并不是大多数软件工程师都拥有参与编制实际操作系统的经历或机会。
因此,为了教好、学好“操作系统”和“操作系统实验”课程,实验平台的选择就变得至关重要。通过检索国内外、网内外资料,并在对UNIX、Microsoft Windows、MINIX、XINU、Naches等知名系统进行比较的基础上,我们选择了Linux。因为Linux兼具如下三大优点:
·Linux不同于WindowsNT、UNIX等,它的源代码是公开的。只要你有兴趣,可以仔细读、分析、探究它是 怎样实现现代操作系统常规功能且达到如此优良性能的,还可以与其他有关操作系统原理书中介绍的方 法逐一比较。
·Linux不同于MINIX,它实现了虚拟存储管理,当然也支持进程、多处理器、多文件系统等现代操作系统 的特征。
·Linux不同于Naches等实验型操作系统,它是一个具有极强生命力的实用操作系统。成千上万种应用软件 都可以在Linux平台上运行。Linux版本升级非常快,编写此教程时,最新版本号是2.4.0,然而截止 2001年4月28日,已升至2.4.4版本。
正是在“操作系统”课程教学的过程中,使我们逐步深入了解了Linux。正是在学习过程中,令我们以及浙江大学计算机系绝大多数上过“操作系统”、“高级操作系统”课的研究生和大学生(包括第二学位的计算机业本科生)对Linux爱不释手。可以说,编写此教程,也是希望读者分享我们的乐趣。
在本书之前,承蒙机械工业出版社华章公司的支持,我曾与同行合作编写过《Linux操作系统及实验教程。该教程分三大部分,分别是关于Linux的使用及维护,Linux内核2.0.35版本源代码的系统分析,Linux的实验。限于时间,Linux源码中绝大多数函数的注释,以及有些重要模块还来不及编入,实验内容也比较简单。而另一方面,Linux的常识性内容与目前出版的大多数参考书重复。因此,编写本书时,我们放弃了第一、第三部分,突出Linux内核2.4版本的源代码分析。而且,这里只讨论Linux系统的单个Intel CPU版本(其实Linux本身支持多种CPU体系结构,且支持SMP)。顺便提一下,如果你同时读Linux内核2.0.35版和2.4.0版,你肯定发现,这两个版本之间,差异已经非常明显。为方便读者在阅读本书过程中分析Linux源代码,本书随时给出所讨论主题在源代码中的位置。给出的路径均相对于/usr/src/linux。例如,进程的PCB由文件include/linux/sched.h定义,也就是说,该文件的路径是/usr/src/linux/in-clude/linux/sched.h。
本书主要内容包括Linux进程管理、Linux存储管理、Linux文件系统管理、Linux设备管理、Linux系统初始化、Linux网络实现、Linux的模块、Linux内核源码的调试等内容,由我和我的学生刘文峰、李程远、王焕龙、王伟波合作完成。其中,李程远、李善平编写第1章、第3章、第5章,王焕龙、李善平编写第2章,王伟波、李善平编写第4章,刘文峰编写第6章、第7章、第8章。李善平审校了全书。由于作者水平有限,书中难免存在各种问题,敬请读者指正。笔者的邮箱地址为:Lishanping2001@yahoo.com.cn.
还有一点有必要强调一下,本书内容在浙江大学计算机系96级、97级、98级、99级、2000级研究生,以及96级、97级、98级本科生累计约2000位同学的使用过程中得到了不断的补充和完善。本书能在今天与大家见面,也有他们的贡献。当然,本书中一切编写或理解方面的错误与他们无关。
李善平
写于浙江大学104年校庆之际
2001年3月27日


点击看大图






加载中...

