Linux设备驱动 | 构造和运行内核模块
1. 将模块链接到内核 内核具有非常小的栈,可能和一个4096字节大小的页那样小。在内核API中,函数名称中(__)通常表示接口底层组件,谨慎使用。内核代码不能实现浮点数运算,如果打开浮点支持,在某些架构上,需要在进入和退出内核空间时保存和恢复浮点处理器的状态。这种额外的开销没有任何价值,内核代码中也不需要浮点运算。2. 装载和卸载模块insmod:将模块的代码和数据装入内核,然后使用内
1. 将模块链接到内核 内核具有非常小的栈,可能和一个4096字节大小的页那样小。在内核API中,函数名称中(__)通常表示接口底层组件,谨慎使用。内核代码不能实现浮点数运算,如果打开浮点支持,在某些架构上,需要在进入和退出内核空间时保存和恢复浮点处理器的状态。这种额外的开销没有任何价值,内核代码中也不需要浮点运算。2. 装载和卸载模块insmod:将模块的代码和数据装入内核,然后使用内
1. 内核功能模块 2. 设备和模块的分类字符设备:可通过字节流(类似文件)进行访问的设备,字符设备驱动程序通常至少要实现open、close、read和write系统调用。块设备:进行IO操作,可进行传输若干个完整的块的设备。网络接口:任何网络事务都经过一个网络接口形成,网络接口由内核中的网络子系统驱动,负责发送和接收数据包,不需要了解数据包结构和具体的映射。3. 内核模块和应用程序