Linux内核模块编程指南
Peter Jay Salzman
Ori Pomerantz
版权所有
© 2001 Peter Jay Salzman
2003-04-04 版本 2.4.0
目录
前言
1.
致谢
2.
作者与版权
3.
敬请注意
1.
简介
1.1.
什么是内核模块?
1.2.
模块如何进入内核?
2.
Hello World
2.1.
Hello, World (第一部分): 最简单的模块
2.2.
编译内核模块
2.3.
Hello World (第二部分)
2.4.
Hello World (第三部分):
__init
和
__exit
宏
2.5.
Hello World (第四部分): 许可和模块文档
2.6.
向模块传递命令行参数
2.7.
跨越多个文件的模块
3.
预备知识
3.1.
模块与程序
4.
字符设备文件
4.1.
字符设备驱动程序
5.
/proc 文件系统
5.1.
/proc 文件系统
6.
使用 /proc 进行输入
6.1.
使用 /proc 进行输入
7.
与设备文件通信
7.1.
与设备文件通信 (写入和 IOCTL)}
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.
syscall.c
9-1.
sleep.c
10-1.
print_string.c
11-1.
sched.c
12-1.
intrpt.c
下一页
前言