Linux实践:模块
标签(空格分隔): 20135321余佳源
一、实践原理
- Linux模块是一些可以作为独立程序来编译的函数和数据类型的集合。之所以提供模块机制,是因为Linux本身是一个单内核。单内核由于所有内容都集成在一起,效率很高,但可扩展性和可维护性相对较差,模块机制可弥补这一缺陷。
- Linux模块可以通过静态或动态的方法加载到内核空间,静态加载是指在内核启动过程中加载;动态加载是指在内核运行的过程中随时加载。
- 一个模块被加载到内核中时,就成为内核代码的一部分。模块加载入系统时,系统修改内核中的符号表,将新加载的模块提供的资源和符号添加到内核符号表中,以便模块间的通信。
二、实践过程
1.编写模块代码
2.编写makefile
在此之前先确定本机具有什么内核型号
然后使用uname指令查看本机的内核是什么型号
然后根据刚才写的c文件和内核号编写makefile
3、加载、测试、卸载模块
使用insmod指令加载模块并使用lsmod指令来查看当前已经加载了的模块
使用dmesg来查看测试模块的状态
最后使用rmmod来删除模块