首页 > 系统相关 >linux进阶:内核模块

linux进阶:内核模块

时间:2023-08-08 12:11:08浏览次数:39  
标签:进阶 module MODULE 内核 模块 linux 内核模块

现代内核派系

宏内核

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

微内核

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

 

内核模块

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

内核模块头文件

1 #include <linux/init.h>      /*包含module_init()和module_exit()函数的声明*/
2 #include <linux/module.h>    /*包含内核模块信息声明的相关函数*/
3 #include <linux/kernel.h>    /*包含内核提供的各种函数,如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年之后),看驱动文档的“驱动章节实验环境搭建”。

 

标签:进阶,module,MODULE,内核,模块,linux,内核模块
From: https://www.cnblogs.com/couvrir/p/17613829.html

相关文章

  • linux积累(一)---查看压缩文件的最后一行
    有时候我们需要处理大的压缩文件,查看其中的内容,但是先解压再查看解压的过程会花比较多的时间。一般可以使用zcat123.gz的方式查看压缩文件的内容。也可以使用less123.gzmore123.gzless123.gz|greprs123或者tail-n123.gz等命令去查看压缩文件的内容。......
  • RocketMQ Linux单机测试:简易快速部署指南及Dashboard控制台部署
    目录简介开始下载增加环境变量修改启动文件jvm大小修改rocketmq配置文件启动快速测试关闭Dashboard下载Dashboard已编译jar包网盘下载启动命令可能遇到的问题写在最后简介请注意,本博客仅供初期测试时快速部署之用,以节省时间避免不必要的问题。如需在生产环境部署,请参考其他可靠......
  • 银河麒麟等 Linux系统 安装 .net 5,net 6及更高版本的方法
    最近项目上用到银河麒麟的操作系统,需要搭建.net跨平台方案。一开始使用各种命令都安装不上,很多提示命令找不到,或者下载包时候网络无法下载。网上教程很多,但没有一个是成功的,多数使用apt-get等命令,都报错,提示命令未找到。于是开始手动安装。最终发现还是在Windows官网给出......
  • hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化
    Hadoop空间不足,hive首先就会没法跑了,进度始终是0%。将HDFS备份数降低将默认的备份数3设置为2。步骤:CDH–>HDFS–>配置–>搜索dfs.replication–>设置为2删除无用HDFS数据和Hbase表格主要使用命令hadoopfs-du,hadoopfs-ls,hadoopfs-rm空间不足根本的解决办法自然是清理空......
  • Linux使用rsync备份到Synology NAS
    将数据从Linux设备备份到SynologyNAS将数据从Linux设备备份到SynologyNAS的最常见方法是使用rsync来制作镜像文件夹。您可能需要使用事先装载的CIFS或NFS将SynologyNAS上的文件夹装载到Linux设备。此命令为: [root@www~]#rsync-av[source_folder][destination_folder]......
  • linux 如何创建php文件
    首先,需要先安装PHP。在Linux中,你可以通过使用命令行工具来安装PHP。具体方法如下: sudoapt-getupdatesudoapt-getinstallphp以上命令会自动安装PHP并将其设置为默认选项。一旦你安装好了PHP,你就可以开始创建PHP文件了。在Linux中,你可以使用任何文本编辑器来创建PHP文件......
  • linux应用进程优先级配置
    linux应用进程优先级配置example:#include<sched.h>intset_process_priority(void){ intpri; structsched_paramparam; pri=sched_get_priority_min(SCHED_RR); if(pri==-1){ printf("sched_get_priority_max()failed\n"); return-1; }......
  • 【动画进阶】神奇的 3D 磨砂玻璃透视效果
    最近,群友分享了一个很有意思的效果:原效果的网址:frosted-glass。该效果的几个核心点:毛玻璃磨砂效果卡片的3D旋转跟随效果整体透明度和磨砂感、以及卡片的3D形态会随着用户移动鼠标而进行动态变化原效果实现的较为复杂,并且实际体验卡顿感较强。本文,我们就将尝试一步一步......
  • linux备份系统到NAS共享
    以Centos为例首先安装支持组件:yum-yinstallcifs-utils创建挂载目录mkdir/osbak挂载共享目录到osbak目录mount-tcifs-ousername="pt",password="xxxxxx",vers=2.0//192.168.1.6/backup/osbak不报错就表示挂载完成可以cd/osbak进去看看,挂载完成后使用ta......
  • Linux之YUM
    目录一、YUM仓库服务1.1软件仓库的提供方式二、NFS共享存储服务一、YUM仓库服务1.1软件仓库的提供方式http内网yum仓库搭建在服务器端安装http服务(可以是httpd也可以是nginx)yuminstallhttpd-y(安装网页软件,提供文件共享服务)mount/dev/sr0/var/www/html(提供......