linux进阶:内核模块

来源:2023-08-08 12:38:20    时间:博客园

现代内核派系

宏内核

关键功能(基本功能,不可裁剪、扩展)和服务功能(如文件系统、设备驱动、网络服务等,可裁剪、扩展)均在内核空间提供。运行效率高。扩展性较差。system call(系统调用)能够先入内核态来使用内核提供的服务。

微内核


(相关资料图)

内核空间只提供关键功能,服务功能在用户空间提供。运行效率较低。安全性、扩展性较高。

内核模块

为解决linux内核可扩展性和可维护性相对较差的缺陷。

内核模块头文件

1 #include       /*包含module_init()和module_exit()函数的声明*/2 #include     /*包含内核模块信息声明的相关函数*/3 #include     /*包含内核提供的各种函数,如printk*/

内核模块加载与卸载

加载内核模块:insmod

卸载内核模块:rmmod

内核模块出入口

module_init():加载模块时该函数自动执行,进行初始化操作module_exit():卸载模块时该函数自动执行,进行清理操作

内核模块信息声明

MODULE_LICENSE():表示模块代码接受的软件许可协议,Linux内核遵循GPL V2开源协议,内核模块与linux内核保持一致即可。MODULE_AUTHOR():描述模块的作者信息。MODULE_DESCRIPTION():对模块的简单介绍。MODULE_ALIAS():给模块设置一个别名。

实验环境(野火为例)

开发板烧录好Debian镜像。启动开发板,搭建好nfs客户端,挂载共享文件夹。获取Debian镜像的内核源码并编译。(选择4.19.71版本内核,内核模块的功能需要依赖内核提供的各种底层接口。)

注:cat /etc/issue查看镜像日期。新版内核是4.19.35版本(22年之后),看驱动文档的“驱动章节实验环境搭建”。

关键词:

文章推荐

  • linux进阶:内核模块

    现代内核派系宏内核关键功能(基本功能,不可裁剪、扩展)和服务功能(

    博客园 2023-08-08
  • 蛇盘社区义诊:健康共享,关怀随行

    2023年8月8日,南京市栖霞区马群街道蛇盘社区新时代文明实践站在圆梦居

    供稿 2023-08-08
  • 7岁孩子累到睡觉频繁打呼噜?专家:小心腺样体肥大、扁桃体肿大

    7岁孩子累到睡觉频繁打呼噜?专家:小心腺样体肥大、扁桃体肿大- "滕主

    扬子晚报 2023-08-08
  • 开能转债涨30%,盘中临停(08-08)

    开能转债涨30%,盘中临停。根据相关规定,深交所将于14时57分00秒对其

  • 中国移动4g套餐最低是多少?

    究竟中国移动的4g套餐最低是多少?1、移动手机号最低消费套餐为8元 每月

    互联网 2023-08-08
  • X 关闭

  • 众测
  • more+

    京张高铁每日开行17对冬奥列车

      京张高铁每日开行17对冬奥列车  预计冬奥服务保障期运送运动员、技术官员、持票观众等20万人次  2月6日,2022北京新闻中心举行“北

    北京冬奥会开幕式上 小学生朱德恩深情演绎《我和我的祖国》

      北京冬奥会开幕式上 小学生朱德恩深情演绎《我和我的祖国》  9岁小号手苦练悬臂吹响颂歌  2月4日晚,在北京冬奥会开幕式上,9岁的

    2022北京冬奥会开幕式这19首乐曲串烧不简单

      多名指挥家列曲目单 再由作曲家重新编曲 本报专访冬奥开幕式音乐总监赵麟  开幕式这19首乐曲串烧不简单  “二十四节气”倒计时、

    “一墩难求” 冰墩墩引爆购买潮

    设计师:没想到冰墩墩成爆款一墩难求冰墩墩引爆购买潮 北京冬奥组委:会源源不断供货北京冬奥会吉祥物冰墩墩近日引爆购买潮,导致一墩难求