索引

符号

/etc/conf.modules, 模块如何进入内核?
/etc/modules.conf, 模块如何进入内核?
/proc 文件系统, /proc 文件系统
/proc/interrupts, 中断处理程序
/proc/ksyms, 模块可用的函数, 命名空间, 常见陷阱
/proc/meminfo, /proc 文件系统
/proc/modules, 模块如何进入内核?, /proc 文件系统
2.2 版本变更, 2.0 和 2.2 版本之间的变更
_IO, 与设备文件对话(写入和 IOCTL)}
_IOR, 与设备文件对话(写入和 IOCTL)}
_IOW, 与设备文件对话(写入和 IOCTL)}
_IOWR, 与设备文件对话(写入和 IOCTL)}
_NSIG_WORDS, 2.0 和 2.2 版本之间的变更
__exit, 你好世界(第 3 部分):__init 和 __exit 宏
__init, 你好世界(第 3 部分):__init 和 __exit 宏
__initdata, 你好世界(第 3 部分):__init 和 __exit 宏
__initfunction(), 你好世界(第 3 部分):__init 和 __exit 宏
__NO_VERSION__, 跨多个文件的模块

A

汇编
uaccess.h, 2.0 和 2.2 版本之间的变更
asm/uaccess.h, 2.0 和 2.2 版本之间的变更

B

BH_IMMEDIATE, 中断处理程序
阻塞进程, 阻塞进程
阻塞,如何避免, 替换 printk
下半部, 中断处理程序
忙碌, 替换 printk

C

食肉动物
大型, 常见陷阱
cleanup_module(), 你好,世界(第 1 部分):最简单的模块
关闭, 2.0 和 2.2 版本之间的变更
代码空间, 代码空间
咖啡, 主设备号和次设备号
CPU
多核, 对称多处理
crontab, 调度任务
ctrl-c, 替换 printk
当前任务, 替换 printk

D

DEFAULT_MESSAGE_LOGLEVEL, 介绍 printk()
定义 ioctl, 与设备文件对话(写入和 IOCTL)}
设备文件
字符, 字符设备驱动程序
设备文件
输入到, 与设备文件对话(写入和 IOCTL)}
写入到, 与设备文件对话(写入和 IOCTL)}

E

EAGAIN, 替换 printk
EINTR, 替换 printk
elf_i386, 跨多个文件的模块
ENTRY(系统调用), 系统调用
entry.S, 系统调用

F

文件, 文件结构
文件系统
/proc, /proc 文件系统
注册, 使用 /proc 进行输入
文件系统注册, 使用 /proc 进行输入
file_operations, file_operations 结构
file_operations 结构, 使用 /proc 进行输入
刷新, 2.0 和 2.2 版本之间的变更

G

get_user, 使用 /proc 进行输入, 2.0 和 2.2 版本之间的变更

H

处理程序
中断, 中断处理程序
内务处理, 调度任务
Hurd, 代码空间

I

inb, Intel 架构上的键盘
init_module(), 你好,世界(第 1 部分):最简单的模块
inode, 文件结构, /proc 文件系统
inode_operations 结构, 使用 /proc 进行输入
输入
使用 /proc 进行, 使用 /proc 进行输入
insmod, 编译内核模块, 系统调用
Intel 架构
键盘, Intel 架构上的键盘
中断 0x80, 系统调用
中断处理程序, 中断处理程序
interruptible_sleep_on, 替换 printk
中断, 2.0 和 2.2 版本之间的变更
禁用, 常见陷阱
ioctl, 与设备文件对话(写入和 IOCTL)}
定义, 与设备文件对话(写入和 IOCTL)}
官方分配, 与设备文件对话(写入和 IOCTL)}
irqs, 2.0 和 2.2 版本之间的变更

K

内核
版本, 2.0 和 2.2 版本之间的变更
内核版本, 为多个内核版本编写模块
kerneld, 模块如何进入内核?
kernel\_version, 跨多个文件的模块
KERNEL_VERSION, 为多个内核版本编写模块
键盘, Intel 架构上的键盘
kmod, 模块如何进入内核?

L

ld, 跨多个文件的模块
标准库, 常见陷阱
库函数, 模块可用的函数
LINUX_VERSION_CODE, 为多个内核版本编写模块

M

主设备号, 主设备号和次设备号
动态分配, 注册设备
mark_bh, 中断处理程序
内存段, 使用 /proc 进行输入
微内核, 代码空间
次设备号, 主设备号和次设备号
mknod, 主设备号和次设备号
调制解调器, 与设备文件对话(写入和 IOCTL)}
模块
参数, 2.0 和 2.2 版本之间的变更
模块参数, 2.0 和 2.2 版本之间的变更
module.h, 跨多个文件的模块
modules.conf
别名, 模块如何进入内核?
注释, 模块如何进入内核?
保持, 模块如何进入内核?
选项, 模块如何进入内核?
路径, 模块如何进入内核?
MODULE_AUTHOR(), 你好世界(第 4 部分):许可和模块文档
module_cleanup, 调度任务
MODULE_DESCRIPTION(), 你好世界(第 4 部分):许可和模块文档
module_exit, 你好世界(第 2 部分)
module_init, 你好世界(第 2 部分)
module_interruptible_sleep_on, 替换 printk
MODULE_LICENSE(), 你好世界(第 4 部分):许可和模块文档
MODULE_PARM, 2.0 和 2.2 版本之间的变更
module_permissions, 使用 /proc 进行输入
module_sleep_on, 替换 printk, 调度任务
MODULE_SUPPORTED_DEVICE(), 你好世界(第 4 部分):许可和模块文档
module_wake_up, 替换 printk
MOD_DEC_USE_COUNT, 注销设备
MOD_INC_USE_COUNT, 注销设备, 系统调用
MOD_IN_USE, 注销设备
单内核, 代码空间
多处理, 对称多处理
多任务, 替换 printk
多任务, 替换 printk

N

命名空间污染, 命名空间
Neutrino, 代码空间
非阻塞, 替换 printk

O

官方 ioctl 分配, 与设备文件对话(写入和 IOCTL)}
O_NONBLOCK, 替换 printk

P

权限, 使用 /proc 进行输入
指针
当前, 使用 /proc 进行输入
printk
替换, 替换 printk
printk(), 介绍 printk()
proc
使用 /proc 进行输入, 使用 /proc 进行输入
proc 文件
ksyms, 常见陷阱
进程
阻塞, 阻塞进程
杀死, 替换 printk
唤醒, 替换 printk
处理
多核, 对称多处理
proc_dir_entry, 使用 /proc 进行输入
proc_register, /proc 文件系统, 2.0 和 2.2 版本之间的变更
proc_register_dynamic, /proc 文件系统, 2.0 和 2.2 版本之间的变更
使进程进入睡眠, 替换 printk
put_user, 使用 /proc 进行输入, 2.0 和 2.2 版本之间的变更

Q

queue_task, 调度任务, 中断处理程序, 2.0 和 2.2 版本之间的变更
queue_task_irq, 中断处理程序, 2.0 和 2.2 版本之间的变更

R

读取, 2.0 和 2.2 版本之间的变更
在内核中, 使用 /proc 进行输入
引用计数, 调度任务
退款政策, 常见陷阱
register_chrdev, 注册设备
request_irq(), 中断处理程序
rmmod, 系统调用, 调度任务
防止, 注销设备

S

SA_INTERRUPT, 中断处理程序
SA_SHIRQ, 中断处理程序
调度器, 替换 printk
调度任务, 调度任务
内存, 使用 /proc 进行输入
串口, 与设备文件对话(写入和 IOCTL)}
关机, 系统调用
SIGINT, 替换 printk
信号, 替换 printk
信号, 2.0 和 2.2 版本之间的变更
睡眠
使进程进入, 替换 printk
sleep_on, 替换 printk, 调度任务
SMP, 对称多处理, 2.0 和 2.2 版本之间的变更
源文件
chardev.c, 与设备文件对话(写入和 IOCTL)}
chardev.h, 与设备文件对话(写入和 IOCTL)}
hello-1.c, 你好,世界(第 1 部分):最简单的模块
hello-2.c, 你好世界(第 2 部分)
hello-3.c, 你好世界(第 3 部分):__init 和 __exit 宏
hello-4.c, 你好世界(第 4 部分):许可和模块文档
hello-5.c, 将命令行参数传递给模块
intrpt.c, Intel 架构上的键盘
ioctl.c, 与设备文件对话(写入和 IOCTL)}
print_string.c, 替换 printk
sched.c, 调度任务
sleep.c, 替换 printk
start.c, 跨多个文件的模块
stop.c, 跨多个文件的模块
syscall.c, 系统调用
源文件
多个, 跨多个文件的模块
ssize_t, 2.0 和 2.2 版本之间的变更
标准库, 常见陷阱
strace, 模块可用的函数, 系统调用
结构体
tty, 替换 printk
struct file_operations, 使用 /proc 进行输入
struct inode_operations, 使用 /proc 进行输入
结构
file_operations, 2.0 和 2.2 版本之间的变更
符号表, 命名空间
对称多处理, 对称多处理, 2.0 和 2.2 版本之间的变更
同步, 系统调用
系统调用, 模块可用的函数, 系统调用
打开, 系统调用
系统调用, 系统调用
sys_call_table, 系统调用
sys_open, 系统调用

T

任务, 调度任务
当前, 替换 printk
任务
调度, 调度任务
TASK_INTERRUPTIBLE, 替换 printk
tq_immediate, 中断处理程序
tq_struct, 调度任务
tq_timer, 调度任务
tty_structure, 替换 printk

V

version.h, 跨多个文件的模块

W

唤醒进程, 替换 printk
写入, 2.0 和 2.2 版本之间的变更
在内核中, 使用 /proc 进行输入