2.2内核模块编译
2016-06-14 18:35
295 查看
内核模块编译
20135206 于佳心
基础知识了解:
模块构造函数:
执行insmod或modprobe指令加载内核模块时会调用的初始化函数。函数原型必须是module_init(),括号内是函数指针
模块析构函数:
执行rmmod指令卸载模块时调用的函数。函数原型是module_exit()
模块许可声明:
函数原型是MODULE_LICENSE(),告诉内核该程序使用的许可证,不然在加载时它会提示该模块污染内核。一般会写GPL。
先写一个简单的代码
写Makefile
通过make来执行
Make之后出现了好多文件
加载模块
sudo insmod printname.ko
测试模块
dmesg看内核信息
卸载模块
sudo rmmod printname
接下来编写更复杂的代码,实现输出当前进程信息的功能以及实现读取进程链表的功能,这里只展示输出进程列表的截图
20135206 于佳心
基础知识了解:
模块构造函数:
执行insmod或modprobe指令加载内核模块时会调用的初始化函数。函数原型必须是module_init(),括号内是函数指针
模块析构函数:
执行rmmod指令卸载模块时调用的函数。函数原型是module_exit()
模块许可声明:
函数原型是MODULE_LICENSE(),告诉内核该程序使用的许可证,不然在加载时它会提示该模块污染内核。一般会写GPL。
先写一个简单的代码
写Makefile
通过make来执行
Make之后出现了好多文件
加载模块
sudo insmod printname.ko
测试模块
dmesg看内核信息
卸载模块
sudo rmmod printname
接下来编写更复杂的代码,实现输出当前进程信息的功能以及实现读取进程链表的功能,这里只展示输出进程列表的截图
相关文章推荐
- C Tricks(十三)—— trim 的实现
- firewalld对指定IP开放指定端口的配置
- CentOS 7 下MySQL 5.7.12主从复制架构配置记录(亲自验证可行)
- java堆分析工具jmap
- Cocoa过滤器NSPredicate的完全用法
- chrome插件开发
- 数据分析师8步法
- solr 自定义QueryParser 用户查询解析方案
- EntityFramework的多种记录日志方式,记录错误并分析执行时间过长原因(系列4)
- log4j使用总结
- perf 移植
- Android典型界面设计——FragmentTabHost+Fragment实现底部tab切换
- 【SpringMVC】<context:include-filter>和<context:exclude-filter>使用时要注意的地方
- Javascript笔记——String对象的常用方法
- SpringMvc 使用poi导入导出Excel
- 天气预报的实现分析
- WebView的用法
- Android 常用数据适配器SimpleAdapter
- 数学公式再次试验
- 守护进程设计