Linux内核驱动模块编程指南 (内核版本2.2, 2.4)
Peter Jay Salzman
Ori Pomerantz
版权 © 2001 Peter Jay Salzman
2003-04-04 ver 2.4.0
内容表
前言
1.
声明
2.
注意
3.
译者注
1.
序言
1.1.
什么是内核模块?
1.2.
内核模块是如何进入内核工作的?
2.
Hello World
2.1.
Hello, World (part 1): 最简单的内核模块
2.2.
编译内核模块
2.3.
Hello World (part 2)
2.4.
Hello World (part 3): 关于
__init
and
__exit
宏
2.5.
Hello World (part 4): 内核模块证书和内核模块文档说明
2.6.
从命令行传递参数给内核模块
2.7.
由多个文件构成的内核模块
3.
开始热身
3.1.
内核模块和用户程序的区别
4.
字符设备文件
4.1.
字符设备驱动程序
5.
/proc文件系统
5.1.
/proc文件系统
6.
使用 /proc 输入
6.1.
使用/proc输入
7.
与设备文件对话
7.1.
与设备文件对话 (writes and IOCTLs)}
8.
操作系统调用
8.1.
操作系统调用
9.
阻塞进程
9.1.
阻塞进程
10.
覆盖Printks
10.1.
覆盖
printk
11.
任务调度
11.1.
任务调度
12.
中断处理
12.1.
中断处理
13.
对称多线程处理
13.1.
对称多线程处理
14.
注意
14.1.
注意
A.
从 2.0 到 2.2的变化
A.1.
从 2.0 到 2.2的变化
B.
为什么这样写?
B.1.
为什么这样写?
索引
所用的示例代码的列表
2-1.
hello-1.c
2-2.
最基本的内核模块使用的Makefile
2-3.
hello-2.c
2-4.
两个内核模块使用的Makefile
2-5.
hello-3.c
2-6.
hello-4.c
2-7.
hello-5.c
2-8.
start.c
2-9.
stop.c
2-10.
多个源代码文件构成的内核模块使用的Makefile
4-1.
chardev.c
4-2.
支持多版本内核的宏
5-1.
procfs.c
6-1.
procfs.c
7-1.
chardev.c
7-2.
chardev.h
7-3.
ioctl.c
8-1.
procfs.c
9-1.
sleep.c
10-1.
print_string.c
11-1.
sched.c
12-1.
intrpt.c
继续
序言