内容简介
目录
丛书序言
专家指导委员会
前言
第一部分 基础知识
第1章 Linux操作系统简介
1.1 Linux的故事
1.2 Linux简介
1.3 阅读Linux内核源码
1.4 小结
第2章 Linux的进程管理
2.1 进程与进程描述符
2.2 进程状态及切换时机
2.2.1 Linux的进程状态
2.2.2 进程的切换时机
2.3 进程的调度算法
2.4 进程的创建与消亡
2.4.1 进程的创建
2.4.2 进程的销毁
第3章 Linux的存储管理
3.1 物理内存的管理
3.1.1 页帧与区域
3.1.2 伙伴算法
3.1.3 slab分配器
3.1.4 换出页面
3.2 进程空间的管理
3.2.1 页表机制
3.2.2 vm_area_struct结构
3.2.3 进程空间的相关系统调用
3.2.4 页面异常的处理
4.1 VFS
第4章 Linux的文件系统
4.1.1 进程对文件系统的支持
4.1.2 VFS的文件模型
4.1.3 文件系统的注册与安装
4.1.4 各种对象的操作接口
4.1.5 目录的缓存机制
4.2 EXT2文件系统
4.2.1 EXT2文件系统在磁盘上的物理布局
4.2.2 主要数据结构及基本操作
4.2.3 磁盘块的分配和释放
4.3 有关的系统调用及处理流程
4.3.1 文件的open操作
4.3.2 文件的read操作
5.2.1 设备的注册和注销
5.2 相关数据结构
5.1 设备文件的概念
第5章 Linux的设备管理
5.2.2 缓冲区管理
5.2.3 设备请求队列
5.3 块设备文件的open和read操作
5.3.1 open()函数的实现
5.3.2 read()函数的实现
第6章 中断、异常及系统调用
6.1 中断和异常的基本知识
6.2 异常处理函数
6.3 系统调用
6.4 中断的处理
6.4.1 中断控制器
6.4.2 管理中断的数据结构
6.5 软中断
6.4.3 中断的处理过程
第7章 SYS V进程间通信
7.1 共同特性
7.2 信号量
7.3 消息队列
7.4 共享内存
第二部分 实验
实验一 观察Linux的行为
Linux下的proc文件系统简介
实验内容
解决方案
实验二 进程间通信
Linux进程间通信简介
本机内进程通信
网络间进程通信
实验内容
解决方案
实验三 理解和增加Linux系统调用
内核及系统调用原理
实验内容
解决方案
实验四 内核模块
Linux内核模块简介
模块的组织结构
模块的加载和卸载
内核模块的编写实例
实验内容
解决方案
用户空间和内核空间
进程
概述
实验五 proc文件系统编程
proc文件系统编程简介
函数接口
基本的例子
实验内容
解决方案
实验六 同步机制
同步机制简介
阻塞任务
等待队列
使用等待队列
实验内容
解决方案
Linux下设备驱动程序的基本结构
编写设备驱动程序
实验七 设备驱动程序
编写Linux设备驱动程序的基本方法
radimo:一个块设备驱动程序的例子
实验内容
解决方案
USB设备简述
Linux下的USB设备驱动程序简介
设备驱动程序的调试方法
第三部分 附录
附录A 安装Red Hat Linux
附录B 编译Linux内核
附录C Linux常用命令
附录D Linux常用函数
附录E 常用内核函数