sysfs: 用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。
kobject: 使所有设备在底层具有统一的接口,提供基本的对象管理,每个在内核中注册的kobject对象,对应sysfs中的一个目录。
kset: 相同类型kobject的集合。kobject通过kset组织成层次化结构。
Linux设备驱动模型相关数据结构定义于 <kernel source tree>/include/linux/device.h 包括:
- 设备结构: devices
- 驱动结构:drivers
- 总线结构:buses
- 设备类结构:classes
任一设备由device对象描述
任一驱动程序由device_driver对象描述
非静态全局变量及函数,需要显式EXPORT_SYMBOL才能输出到内核空间。
cat /proc/kallsyms #可用于查看内核模块输出到内核空间的内核符号。
网友评论