资源名称:Linux内核编程指南(第三版)

内容简介:

本书面向希望深入学习这种操作系统的读者,全面介绍了Linux操作系统的技术原理。全书共分10章,内容分别涉及Linux内核简介、内存管理、进程间通信、Linux文件系统、设备驱动程序、网络实现方式、模块和调试,以及多重处理等Linux内核原理和开发技术。

资源目录:

第1章 Linux操作系统简介

1.1 主要特点

1.2 Linux产品

第2章 编译内核

2.1 所有的东西在哪里

2.2 编译过程

2.3 额外的配置工具

第3章 内核入门

3.1 重要的数据结构

3.1.1 任务结构

3.1.2 进度表

3.1.3 文件和节点

3.1.4 动态内存管理

3.1.5 队列和信号标志

3.1.6 系统时间和定时期

3.2 主要算法

3.2.1 信号

3.2.2 硬件中断

3.2.3 软件中断

3.2.4 启动系统

3.2.5 定时期中断

3.2.6 调度程序

3.3 系统调用的实现

3.3.1 系统调用的实际工作原理

3.3.2 简单系统调用的例子

3.3.3 更复杂的系统条用的例子

第4章 内存管理

4.1 内存管理

4.1.1 独立系统结构的内存模型

4.1.2 虚拟地址空间

4.1.3 转换线性地址

4.1.4 页面目录

4.1.5 页面表

4.2 进程的虚拟地址空间

4.2.1 用户段

4.2.2 虚拟内存区域

4.2.3 系统调用brk

4.2.4 映射函数

4.2.5 内核段

4.2.6 引导过程中内核段中的内存分配

4.2.7 内核段中的动态内存管理

4.3 块设备告诉缓存

4.3.1 快缓存

4.3.2 bdflush和kupdate

4.3.3 用语缓冲存储器的列表结构

4.3.4 使用缓冲存储器

4.4 Linux系统下的分页技术

4.4.1 内存管理和高速缓冲存储器

4.4.2 预定一个内存页面

4.4.3 通过内核线程优化内存页面管理

4.4.4 页面错误和重新载入页面

第5章 进程间的通信

5.1 内核中的同步

5.2 通过文件通信

5.2.1 锁定整个文件

5.2.2 锁定文件区域

5.3 管道

5.4 使用ptrace调试

5.5 System V中的进程间通信(IPC)

5.5.1 访问权限、号码和关键字

5.5.2 信号标志

5.5.3 消息队列

5.6 使用套接字的IPC

5.6.1 一个简单的例子

5.6.2 UNIX城套接字的实现

第6章 Linux文件系统

6.1 基本原理

6.2 内核中文件系统的表示

6.2.1 装载

6.2.2 超代码块

6.2.3 超代码块操作

6.2.4 目录缓冲器

6.2.5 Denty操作

6.2.6 i节点

6.2.7 i节点操作

6.2.8 文件结构

6.2.9 文件操作

6.2.10 打开文件

6.3 Ext2文件系统

6.3.1 Ext2文件系统的结构

6.3.2 Ext2文件系统中的的目录

6.3.3 Ext2文件系统中代码块的分配

6.3.4 Ext2文件系统的扩充

6.4 Proc文件系统的结构

6.4.1 Proc文件系统的结构

6.4.2 Proc文件系统的实现

第7章 Linux下的设备驱动程序

7.1 字符设备和代码块设备

7.2 硬件

7.2.1 端口I/O

7.2.2 ISA即插即用

7.2.3 恐龙–ISA总线

7.2.4 ISA即插即用

7.3 查询、中断和等待队列

7.3.1 查询

7.3.2 中断模式

7.3.3 中断共享

7.3.4 软件中断

7.3.5 下半部–较低的中断一半

7.3.6 任务队列

7.3.7 计时器

7.4 实现驱动程序

7.4.1 PC扬声器驱动程序

7.4.2 一个简单的驱动程序

7.4.3 setup函数

7.4.4 init

7.4.5 打开和释放

7.4.6 读取和写入

7.4.7 IOCTL

7.4.8 poll

7.4.9 Llsee

7.4.10 Mmsp

7.4.11 Fasync

7.4.12 Readdir及Fsync

7.5 动态驱动程序和静态驱动程序

第8章 网络实现方式

8.1 导言和概述

8.1.1 网络实现方式的层模型

8.1.2 将A中的数据转移到B

8.2 一些重要的结构

8.2.1 套接字结构

8.2.2 sk_buff结构–网络中的缓冲区管理

8.2.3 INET套接字–套接字的一个特殊部分

8.2.4 proto结构中的协议操作

8.2.5 套接字地址的一般结构

8.3 Linuc下的网络设备

8.3.1 以太网

8.3.2 SLIP和PLIP

8.3.3 回送设备

8.3.4 哑设备

8.3.5 示例设备

第9章 模块和调试

9.1 什么是模块

9.2 内核中的实现

9.3 模块和内核的对象片断的含义

9.4 参量的传输和示例

9.5 模块能实现什么

9.6 内核守护程序

9.7 模块之间的简单交换

9.8 示例模块

9.9 调试

9.9.1 更改是末尾的开始

9.9.2 最好的调试器–prentk()

9.9.3 使用gdb进行测试

第10章 多重处理

10.1 英特尔多重处理规范

10.2 多重处理器系统存在的问题

10.3 内核的改动

10.3.1 内核初始化

10.3.2 调度

10.3.3 中断处理

10.4 原子操作

10.4.1 原子数据类型

10.4.2 访问原子数据类型

10.4.3 改变和检测原子变量

10.5 旋转锁定

10.5.1 访问函数

10.5.2 读写旋转锁定

附录A 系统调用

附录B 内核的相关命令

附录C PROC文件系统

附录D 引导进程

附录E 有用的内核函数

资源截图:

Linux内核编程指南(第三版)