- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
12内核模块设计解读
数组参数的定义: static int array[5] = {1,2,3,4,5}; static int len; module_param_array(test,int,len,0); MODULE_PARM_DESC(array, test array); 宏MODULE_PARM_DESC() 用来注解该模块可以接收的参数。该宏两个参数:变量名和一个对该变量的描述 参数数组的加载方式: insmod test.ko array=6,7,8,9,10 模块参数 管理内核模块的命令 lsmod 列出已经挂载的内核模块 lsmod 是列出目前系统中已加载的模块的名称及大小等 效果跟通过less /proc/modules查看模块一样。 modinfo 查看模块信息 modinfo 可以查看模块的信息,通过查看模块信息来判定这个模块的用途。 modinfo 模块名 管理内核模块的命令 modprobe 挂载新模块以及新模块相依赖的模块 modprobe 模块名,在挂载该内核模块的同时,这个模块所依赖的模块也被同时挂载。 modprobe还有其他用法,问他的“man” 。例如:modprobe -l 是列出内核中所有的模块,包括已挂载和未挂载的,读取的模块列表就位于 /lib/modules/‘uname -r’ 目录中。 管理内核模块的命令 rmmod 移除已挂载模块 用法:rmmod 模块名(不带后缀) 等同于:modprobe -r 模块名 insmod 挂载模块 insmod 需要给出模块所在目录的绝对路径,以及要带有模块文件名后缀(.o 或.ko) 功能上没有modprobe 强。 管理内核模块的命令 depmod 创建模块依赖关系的列表 目前的的Linux 发行版所用的内核是4.x版本,是自动解决依赖关系。 depmod -a为所有列在/etc/modprobe.conf 或/etc/modules.conf 中的所有模块创建依赖关系,并且写入到modules.dep文件 depmod –e 列出已挂载但不可用的模块 课堂小结 内核模块是如何开始和结束的? 内核模块怎样编译? 内核中的宏__init、__exit标识什么意思? 模块管理命令有那些? 预习内容 预习 《Linux 设备驱动 Edition 3》的第三章,字符驱动。 其中包括系统的设备的驱动程序。一个linux内核要支持这个世界上所有的的外部设备,内核就要包含他们的设备驱动程序。内核就会变得臃肿庞大。如何解决这个问题? 想想共享库的使用 在C语言编程中,static的一个作用是信息屏蔽!比方说,你自己定义了一个文件?--?该文件中有一系列的函数以及变量的声明和定义!你希望该文件中的一些函数和变量只能被该文件中的函数使用,那么,你可以在该函数、变量的前面加上static,代表他们只能被当前文件中的函数使用! 宏__initdata同__init 类似,只不过对变量有效。 这很容易理解。编译进内核的模块 是没有清理收尾工作的, 而动态加载的却需要自己完成这些工作。 modprobe命令从它的配置文件(/etc/modprobe.conf)读取参数的值. modprobe命令从它的配置文件(/etc/modprobe.conf)读取参数的值. 内核模块 教学回顾 根文件系统的制作过程 教学内容 内核模块概述 内核模块代码结构 内核模块编译 模块参数 管理内核模块的命令 教学要求 了解内核模块机制的优缺点; 掌握内核模块程序的格式框架; 掌握内核模块入口、出口函数编写的格式; 掌握内核模块管理命令的使用; 内核模块概述 Linux内核是整体式结构,各个子系统联系紧密,作为一个大程序在内核空间运行。 内核模块概述 太多的设备驱动和内核功能集成在内核中,内核过于庞大。如何解决? Linux内核引入内核模块机制。通过动态加载内核模块,使得在运行过程中扩展内核的功能。不需要的时候,卸载该内核模块。 内核模块概述 什么是内核模块? 内核模块是一种没有经过链接,不能独立运行的目标文件,是在内核空间中运行的程序。经过链接装载到内核里面成为内核的一部分,可以访问内核的公用符号(函数和变量)。 内核模块可以让操作系统内核在需要时载入和执 行,在不需要时由操作系统卸载。它们扩展了操作系统内核的功能却不需要重新启动系统。 如果没有内核模块,我们不得不一次又一次重新编译生成单内核操作系统的内核镜 像来加入新的功能。这还意味着一个臃肿的内核。 内核模块概述 模块机制的优点: 减小内核映像尺寸,增加系统灵活性; 节省开发时间;修改内核,不必重新编译整个内核。 模块的目标代码一旦被链入内核,作用和静态链接的内核目标代码完全等价。
您可能关注的文档
最近下载
- 管材安装合同范本(12篇).docx VIP
- 滇人版 七年级 第九册 第10课 文件合并与超链接课件.pptx VIP
- 古镇商业运营与旅游开发思路.pptx VIP
- 02S515排水检查井图集.pdf VIP
- 标准图集-23S519-小型排水构筑物.pdf VIP
- 形考作业(五)配置DNS服务实训.docx VIP
- 高钾血症应急演练脚本.docx VIP
- xx河防洪治理工程施工组织设计.doc VIP
- 新解读《GB_T 17934.3-2021印刷技术 网目调分色版、样张和生产印刷品的加工过程控制 第3部分:新闻纸冷固型平版胶印》最新解读.pptx VIP
- 简式数控车床使用说明书(中英文).pdf VIP
原创力文档


文档评论(0)