嵌入式Linux内核模块加载技术的分析.pdf

嵌入式Linux内核模块加载技术的分析.pdf

ID:52956561

大小:239.25 KB

页数:3页

时间:2020-04-03

嵌入式Linux内核模块加载技术的分析.pdf_第1页
嵌入式Linux内核模块加载技术的分析.pdf_第2页
嵌入式Linux内核模块加载技术的分析.pdf_第3页
资源描述:

《嵌入式Linux内核模块加载技术的分析.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、4.,.第19卷第期广东经济管理学院学报Vol19No4204年8月JoumalOfGuangdongInstituteofBusinessAdministrationAug.2004x嵌入式Linu内核模块加载技术的分析李淑文,(广东经济管理学院广东广州510260),:分析x摘要嵌入式Linu中利用模块加载技术实现对其核心动态更新的机制和原理详。x细给出了Linu模块载入与却载的具体实现:Linux;内核模块;关键词加载技术中图分类号:TP316文献标识码:A文章编号:1672一4100(2004)04一0()78一03onLo

2、adTechnologyofEmbeddedLinuxKelModulerneLiShuwen,,(GuangdongInstituteofBusinessAdministrationGuan邵hou510260)s:-AbtractThepaperanalyzeshowthemoduleloadteehnolo盯15即pliedtodynamieallyrenewthein..ternalsofembeddedLinuxItstudiesthedetailedproeessoftheloadandunloadofLinuxkern

3、elmodules,,Keywords:Linuxkemelmoduleloadteehnolo群,Linux嵌人式内核结构借助微内核设计思为了满足某些特定场合的要求需要利用模,x,、。想使Linu运行效率高方便系统的定制更新块的动态加载对内核进行有效的裁减和改造这,。。和移植必须深人理解x这与模块动态加载特性有关Linu内核的运行机制以下企图,。nUux中模块是未被编译进内核的一种目标说明,文件它们可以经过链接进内核生成可执行的机、。一内核与模块技术分析器代码需要时借助某些手段可很快地将其编译,。x,进内核实现内核的更新模块加载由

4、运行的加载在Linu内核中与模块相关的主要数据结。。,程序完成加载过程中模块的重定位和地址绑定构有:module和symboljable其中module用于记。。系统启动时或系统启动后都能进行模块加载这录模块的信息和相互调用关系symbol」able则用。,些即谓模块的动态加载功能于将模块动态链接进核心它是一个很重要的数。,:模块动态加载有很好的特性当某些功能模据结构主要记录了两方面的信息一是模块提供,。的函数和变量;块暂时不需要时可以从内核中卸载需要用到时二是模块的引用信息前者用于核。,又能进行添加这样不仅把内核的镜像文件保持心和

5、模块间的通信后者则用于记录该模块引用,。。而且最大限度地节省内存Ux其它模块的情况这两个数据结构是通过由在最小利用nu模,medem」e块动态加载特性可以灵活地完成对系统的扩展ul指向它对应的syoblabl指针联系起来,,,。和更新例如可以将驱动程序封装成模块形式的,,,像网络接口驱动终端驱动网络文件系统驱动模块为了使用所需资源必须有一个机制使,。。,等在需要的情形下能被加载或卸载核心能够找到它们例如模块需要调用核心内存:24一一n收稿日期006作者简介:19一),女,广东阳春人,。李淑文(68广东经济管理学院信息工程系教师。。o

6、C分配例程kmal()来分配内存模块在创建时并完成某些任务的代理,,不知道kmalloC()在内存中的位置这样核心必须如图1所示无论是直接手工加载模块还是,oCkemeld守护进程动态加载在使用这些模块前修改模块中对kmal()的引由都需要通过调用。。,用地址核心在其核心符号表中维护着一个核心insmed命令实现执行insmod命令时必须指出资源链表,这样当我们加载模块时它能够解析出所要装载模块的位置,即模块的路径名。insmod。,,另外Lix还允许存可以找到内核的导出符模块中对核心资源的引用mi利用一个特权系统调用,。,,,在模

7、块堆栈以供它在模块之间相互调用时使号表其中符号是成对出现的一个是符号名称。,。用例如VFAT文件系统模块可能需要FAT文件另外一个是符号的值如符号的地址,系统模块的服务因为VFAT文件系统多少是从insn1Od。FAT文件系统中扩展而来某个模块对其它模块用户请求mouedl的服务或资源的需求类似于模块对核心本身资源,,或服务的请求不过此时所请求的服务是来自另用户态;核心态。,外一个事先已加载的模块每当加载模块时核心图1模块载入图insmod命令执行时系统的动作过程为:将把新近加载模块输出的所有资源和符号添加到。,核心符号表中(l)模

8、块读到它本身的虚拟内存中利用内,,。当试图卸载某个模块时核心需要知道此模核导出的符号表修正模块在内存中的映象块没有被引用,同时它需要某种方法来通知这个(2)利用特权系统调用请求内核分配足够的。。即将被卸载的模块而且模块必须能够在从核心

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。