深入理解内核模块的实现与管理
1. 模块实现
模块以 ELF 对象文件的形式存储在文件系统中,可通过执行insmod程序将其链接到内核。对于每个模块,内核会分配一块内存区域,包含以下数据:
- 模块对象
- 表示模块名称的以空字符结尾的字符串(所有模块名称必须唯一)
- 实现模块功能的代码
1.1 模块对象
模块对象用于描述一个模块,其字段如下表所示:
| 类型 | 名称 | 描述 |
|---|---|---|
enum module_state | state | 模块的内部状态 |
struct list_head | list | 模块列表的指针 |
char [60] | name | 模块名称 |
struct module_kobject | mkobj</ |