Module简介 module的编写方法
模块(module)是在内核空间运行的程序,实际上是一种目标对象文件,没有链接,不能独立运行,但是可以装载到系统中作为内核的一部分运行,从而可以动态扩充内核的功能。模块最主要的用处就是用来实现设备驱动程序。使用模块的优点: 1,将来修改内核时,不必全部重新编译整个内核,可节省不少时间 ;2,系统中如果需要使用新模块,不必重新编译内核,只要插入相应的模块即可。这两点对于内核开发尤为有用,那么下面我们就简单学习以下module的编写方法。以一个完整的“Hello word”模块为例。
首先实现的是具体的代码部分:
这个模块中定义了两个函数,其中hello_init在模块装载到内核时调用,而hello_exit在模块被移除时调用。module_init与module_exit使用了内核特殊宏来表示上述两个函数说扮演的角色。而MODULE_LICENSE用来告诉内核该模块所采用的自由许可证。
【资料图】
有了代码后我们还需要将其编译成模块,这个时候就需要用到Makefile,Makefile的具体内容如下:
Makefile中内容的含下次学习,将两个文件放到同一个目录下,执行make命令,执行完后就会生成一个ko文件,这个ko文件就是我们需的module。
有了这个ko,我们就可以将其加载到Linux内核中了,不过需要注意的是,加载与卸载内核模块都需要使用root权限。
加载内核使用的是insmod命令:
一般情况下,没异常打印就表示加载成功了,但为了确认我们可以使用lsmod命令查看内核中已加载的module:
通过这个命令我们果断看到了我们所希望的helloModule这个模块。此时我们就可以通过modinfo这个命令查看到这个module的信息了:
那如果此时我们不再需要这个模块了我们则可以通过rmmod这个命令将其从内核中卸载:
但我们发现无论加载还是卸载模块,我们都没有看到printk中的打印,这主要是printk会根据日志打印级别来决定时候把消息打印到当前控制台上,决定的因素是日志级别时候小于console_loglevel值,那我们是不是就无法看到这个打印了吗,当然不是,我们可以通过dmesg查看到:
这里由于我实上次,所以我们看到了上次打印。
标签:
相关推荐:
最新新闻:
- 环球快资讯丨为什么黑茶有茶梗?关于茶梗你知道多少?
- 如何判断一个函数是奇函数还是偶函数?判断技巧|当前速看
- 2021庆阳一中高考成绩查询 2020年庆阳市多所中学高考喜报
- Win7安装IE10或IE11怎么操作?离线安装注意问题 全球热点评
- 分布式光纤测温系统 性能指标优势
- Oracle database 10g官方版性能拓展_世界观焦点
- QGIS|构建选址模型 模型需求分析:天天消息
- 视频在html不能播放器怎么办?网页播放器打不开的解决方法
- 2021年临颖一高高考成绩查询 河南漯河名列前茅的4所高中 热头条
- Module简介 module的编写方法
- 今日热议:RCLAMP0524P超低电容TVS二极管阵列 DFN-10L封装教程
- sin函数对照表怎么看?三角函数值对照表
- QT部署YOLOV5 pyqt5搭建YOLOV5的检测平台
- 微速讯:Makefile宏控是什么?宏控与systemProperty取名对应
- 什么是封建社会?封建社会详情介绍
- 【天天时快讯】华为云发布鲲鹏云服务 开启云上多元算力新赛道
- 【世界速看料】一个没有四肢的人 却给了无数人的力量
- Android应用Preference相关及源码浅析 Preference相关基础概念
- 色度抽样怎么弄?抽樣作用的解釋
- 如何关闭电脑右下角游戏广告弹窗?电脑右下角游戏广告弹窗关闭方法
- 怎么批量删除电脑桌面文件图标?批量删除电脑桌面文件图标操作步骤
- diskgenius怎么恢复数据和分区?diskgeniu恢复数据和分区方法
- win7如何安装HP打印机?win7安装HP打印机步骤
- 如何清除win10系统所有搜索历史记录?win10系统所有搜索历史记录操作步骤
- 无线路由器可连接网络的距离是多少?无线路由器可连接网络的距离介绍
- 如何找到电脑中的本地连接?电脑中的本地连接查找方法
- ctfmon.exe是什么进程?ctfmon.exe是否可以下载替换?
- 怎么将swf格式文件转为mp3格式?swf格式文件转为mp3格式方法
- 打开EXCEL时无法找到startup.xls文件怎么解决?打开EXCEL时无法找到startup.xls文件的解决方法
- 音频拨号和脉冲拨号的区别是什么?音频拨号和脉冲拨号的区别介绍
- 怎么更改鼠标指针图案?鼠标指针图案更改方法
- 笔记本电脑键盘输入错乱怎么办?笔记本电脑键盘输入错乱解决方法
- TeamViewer怎么使用?TeamViewer使用方法教程
- 电脑主板供电接口有什么不同?电脑主板供电接口介绍
- 硬盘如何安装系统?硬盘安装系统教程
- 笔记本电脑怎么外接直流电源?笔记本电脑外接直流电源连接方法
- 怎么打开nh文件?nh文件是什么?
- 暴风转码怎么用?暴风转码使用方法
- 蓝屏提示错误代码0x000000c2怎么办?Win10蓝屏提示错误代码0x000000c2的解决方法
- 韩厂压力山大:显示屏看中国的时代来了 当前通讯
- “强监管、一刀切”!香港期货业恐“变天”,经纪商:可操作性不强......影响几何? 环球热推荐
- 观焦点:P社宣布 将计划对部分地区的游戏售价进行调整
- 《刺客信条:英灵殿》联动《怪物猎人:世界》 惨爪龙风飘龙装备皮肤正式上线_最新消息
- 《星球大战绝地:幸存者》将拥有5种光剑形态 用以针对不同敌人
- 联想小新预热 2023 年新品:将有 14、16、Air 14、Pro 14、Pro 16 五款新机-观察
- 最新快讯!《战神4》Mod搞笑视频 姆巴佩和梅西一决高下
- 世界看热讯:Acer推出新技术 显示器和笔记本可实现裸眼立体3D效果
- 菲尔·斯宾塞分享自己的2022年游戏报告 《吸血鬼幸存者》游玩时长最多
- 谨慎升级!苹果停止签署iOS 16.1.2
- 处理器/系统百分百中国自主 国产PC新标杆 内嵌8核处理器
- 货币如何“类财政”? 天天关注
- 布洛芬供应提速有限:从400吨原料药到4亿片药片,至少要40天|焦点热讯
- 微软发现macOS漏洞 可绕过安全审查植入恶意软件 环球速递
- 天天新资讯:《海贼王:时光旅诗》13分钟实机演示 女角身材很棒
- 【世界播资讯】Xbox:《High On Life》是2022年XGP首发最成功游戏
- 当前观点:强森确认:DC初期规划不含《黑亚当》电影
- 热头条丨性能爆炸!英特尔将在笔记本中塞入5.6Ghz 24核处理器
- 关闭这两个功能 在Win11系统下玩游戏竟可提升游戏帧数
- Win11炫酷小技巧盘点 第三个你肯定不知道-天天动态
- 微软发现苹果macOS漏洞 苹果已经修复|焦点滚动
- 天天看点:IE浏览器要被永久禁用了 只剩下2个月的时间
- 光大证券首席经济学家:2023年消费值得看重,投资仍会是重要抓手
- 俄罗斯镍巨头Nornickel考虑2023年减产10%,伦镍盘中涨超7%-世界快报
- 足球才是世界第一:世界杯决赛谷歌迎来史上最高流量_独家焦点
- 【环球时快讯】谨慎更新!微软承认Win10新版本可能导致系统蓝屏
- 144Hz高刷+1ms响应 23.8寸电竞显示器到手666元 新资讯
- 焦点热讯:Intel第二代独立显卡定了:1年后见 性能赶超RTX 4070!
- 纯净无广告!全新国产自研系统发布:免费使用1年-环球今日报
- 初代加强复刻版《雨中冒险回归》明年登陆PC和NS-每日聚焦
- 焦点短讯!双人合作游戏《少女魔净》明年2月全平台发售
- 天天快资讯丨像素风动作益智新作《企鹅拳击》登陆Switch
- 操作壁虎自由攀爬《壁虎之神》明年登陆PC和NS
- 《塞尔达传说:旷野之息》罗莎塔MOD演示
- 保时捷大幅度提升Taycan充电速度:花钱解锁
- 【爆料】英伟达 RTX 4070Ti 跑分曝光:部分性能比 RTX 3070Ti 提升 45.8%-当前看点
- 企业数字化转型应该重点关注什么技术领域?不妨看看戴尔CTO的建议
- i9-13900KS基准性能测试成绩曝光 超13900K单核性能5% 环球热讯
- 全球滚动:满血PCIe 5.0固态硬盘来了,容量8TB读写都达到14GB/s
- 爱不释手!梅西卡塔尔夺冠后喝茶睡觉都抱着大力神杯:天天速看
- 环球即时:《审判》系列PC版更新DLSS SteamDeck初始设置更改
- Epic喜加一:《德军总部:新秩序》免费领取|今日热议
- 《星球大战绝地:幸存者》将包含五种光剑形态|全球热闻
- PSVR2头显确认将亮相CES2023索尼发布会
- 索尼分享新视频介绍PS5新Edge手柄设计过程-全球微动态
- 动视暴雪首席运营官将入职Yuga Labs 担任同职位