正文:
- sysfs表示系统设备树的一个文件系统。
- 块设备是以块为单位寻址的,块大小随设备不同而不同,它通常支持重定位操作,即对数据的随机访问(块为单位)。
- 应用程序通过直接访问设备节点与字符设备交互。
- 网络设备打破了unix的所有东西都是文件的设计原则,它得通过套接字API来访问。
- Linux是单块内核的操作系统,整个系统内核都运行于一个单独的保护域中。内核是模块化组成的,允许内核运行时动态插入和删除代码。
- 模块被载入后,会被动态地链接到内核,与用户空间中的动态链接库类似,只有当被显式导出后的外部函数才可以被动态库调用。导出内核函数可以用:export_symbol()和export_symbol_gpl().
- 导出的内核函数可以被模块调用。
- 具有相同的ktype的kobject可以被分组到不同的kset.
- sysfs文件系统是一个处于内存中的虚拟文件系统,为我们提供了kobject对象层次结构的试图,帮助用户能以一个简单的文件系统的方式来观察系统中各种设备的拓扑结构。
- 内核事件层实现了内核到用户空间的消息通知系统,它建立在kobject基础上,借助kobject和sysfs来实现。内核事件层把事件模拟为信号,从明确的kobject对象发出,所以每个事件源都是一个systs路径。内核事件由内核空间传递到用户空间需要经过netlink(netlink用于传递网络信息的多点传送套接字)。