注:这是当初学习《linux设备驱动程序》时记录的学习笔记,只有提纲挈领的作用,有不足之处还请大家多多指点。
可装载模块
我们可以使用insmod程序将模块连接到正在运行的内核,也可以使用rmmod程序移除连接。
设备和模块的分类
Linux系统将设备分为三种类型:字符设备,块设备,网络接口。
字符设备和块设备
相同点:都可以通过文件系统节点来访问,比如/dev/tty1和/dev/lp0,一般情况下都实现open、close、read和write操作。它们与普通文件之间的区别:普通文件的访问可以前后移动访问位置,而大多数字符设备是一个只能顺序访问的数据通道。
不同点:两者区别仅仅在于内核内部管理数据的方式的不同。字符设备通常以字符为单位访问,而块设备通常以块为单位访问,一个块通常是512字节(或者是2的更高次幂)。
网络接口:内核和网络设备驱动程序之间的通信靠调用一套和数据包传输相关的函数而不是read、write等。