Linux内核模块编程指南
Peter Jay Salzman
Michael Burian
Ori Pomerantz
版权
© 2001 Peter Jay Salzman
2007-05-18 ver 2.6.4
目录
前言
1.
作者
2.
版本和说明
3.
致谢
1.
简介
1.1.
什么是内核模块?
1.2.
模块如何进入内核?
2.
你好,世界
2.1.
你好,世界(第一部分):最简单的模块
2.2.
编译内核模块
2.3.
你好,世界(第二部分)
2.4.
你好,世界(第三部分):
__init
和
__exit
宏
2.5.
你好,世界(第四部分):许可和模块文档
2.6.
向模块传递命令行参数
2.7.
跨越多个文件的模块
2.8.
为预编译内核构建模块
3.
预备知识
3.1.
模块与程序
4.
字符设备文件
4.1.
字符设备驱动程序
5.
/proc 文件系统
5.1.
/proc 文件系统
5.2.
读取和写入 /proc 文件
5.3.
使用标准文件系统管理 /proc 文件
5.4.
使用 seq_file 管理 /proc 文件
6.
使用 /proc 进行输入
6.1.
TODO:编写关于 sysfs 的章节
7.
与设备文件对话
7.1.
与设备文件对话(写入和 IOCTL)
8.
系统调用
8.1.
系统调用
9.
阻塞进程
9.1.
阻塞进程
10.
替换 printk
10.1.
替换
printk
10.2.
闪烁键盘 LED
11.
调度任务
11.1.
调度任务
12.
中断处理程序
12.1.
中断处理程序
13.
对称多处理
13.1.
对称多处理
14.
常见陷阱
14.1.
常见陷阱
A.
变更:2.0 到 2.2
A.1.
2.4 和 2.6 之间的变更
B.
后续步骤
B.1.
后续步骤?
索引
图表目录
5-1.
seq_file 的工作原理
示例目录
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
5-1.
procfs1.c
5-2.
procfs2.c
5-3.
procfs3.c
5-4.
procfs4.c
7-1.
chardev.c
7-2.
chardev.h
7-3.
ioctl.c
8-1.
syscall.c
9-1.
sleep.c
9-2.
cat_noblock.c
10-1.
print_string.c
10-2.
kbleds.c
11-1.
sched.c
12-1.
intrpt.c
下一页
前言