- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
THIS_MODULE详解
THIS_MODULE详解
2011-09-19 09:09:09 ????我来说两句?0
我要投稿 ?? [字体:小 大]
结构体struct module在内核中代表一个内核模块,通过insmod(实际执行init_module系统调用)把自己编写的内核模块插入内核时,模块便与一个 struct module结构体相关联,并成为内核的一部分。下面是结构体struct module的完整定义,接下来会逐个解释:??? struct module??? {??????? enum module_state state;??????? struct list_head list;??????? char name[MODULE_NAME_LEN];???????? struct module_kobject mkobj;??????? struct module_param_attrs *param_attrs;??????? const char *version;牋牋牋?const char *srcversion;?牋牋牋?const struct kernhar *versel_symbol *syms;牋牋牋?unsigned int num_syms;牋牋牋?const unar *verssigned long *crcs;?牋牋牋?const struct kernel_symbol *gpl_sym*verss;牋牋牋?unsigned int num_gpl_syms;牋牋牋?const unsigned lonsym*versg *gpl_crcs;?牋牋牋?unsigned int num_exentries;牋牋牋?constnsym*vers struct exception_table_entry *extable;?牋牋牋?int (*init)(vo*versid);牋牋牋?void *module_init;牋牋牋?void *module_core;牋牋?t)(vo*vers牋 unsigned long init_size, core_size;牋牋牋?unsigned long ini*verst_text_size, core_text_size;牋牋牋?struct mod_arch_specific arversch;牋牋牋?int unsafe;牋牋牋?int license_gplok;?#ifdef CONFic arversIG_MODULE_UNLOAD牋牋牋?struct module_ref ref[NR_CPUS];牋牋牋? arvers struct list_head modules_which_use_me;牋牋牋?struct task_struversct *waiter;牋牋牋?void (*exit)(void);#endif?#ifdef CONFIG_KuversALLSYMS牋牋牋?Elf_Sym *symtab;牋牋牋?unsigned long num_symtaG_Kuversb;牋牋牋?char *strtab;牋牋牋?struct module_sect_attrs *sect_G_Kuversattrs;#endif牋牋牋?void *percpu;牋牋牋?char *args;牋?};?t_G_Kuvers?? 我们插入一个内核模块,一般会使用工具insmod,该工具实际上调用了系统调用init_module,在该系统调用函数中,首先调用 load_module,把用户空间传入的整个内核模块文件创建成一个内核模块,返回一个struct module结构体。内核中便以这个结构体代表这个内核模块。??? state是模块当前的状态。它是一个枚举型变量,可取的值为:MODULE_STATE_LIVE,MODULE_STATE_COMING,MODULE_STATE_GOING。分别表示模块当前正常使用中(存活状态),模块当前正在被加载,模块当前正在被卸载。load_module函数中完成模块的部分创建工作后,把状态置为 MODULE_STATE_COMING,sys_init_module函数中完成模块的全部初始化工作后(包括把模块加入全局的模块列表,调用模块本身的初始化函数),把模块状态置为MODULE_STATE_LIVE,最后,使用rmmod工具卸载模块时,会调用系统调用 delete_module,会把模块的状态置为MODULE_STATE_GOING。这是模块内部维护的一个状态。??? list是作为一个列表的成员,所有的内核模块都被维护
您可能关注的文档
- to 后面加动名词的词组.docx
- 江苏省永丰初级中学中学2015届九年级上学期第二次月检测英语(12月份)试题及答案.doc
- 初中英语倒装句练习题.docx
- 新目标英语九年级Unit7 Teenagers should be allowed to choose their own clothes.导学案.doc
- 英语(二)标准试卷(四).doc
- 北师大版高中英语必修二 unit4 lesson1 The Future of Cyberspace.doc
- 魔法奇缘观后感 英文.doc
- 不规则变化复数表.doc
- 2014年北京市东城区高三第一学期期末英语试题及答案.doc
- 2017年高考英语(全国)复习练习题:第2练Word版含答案.doc
- 氮化铝粉末制备方法及研究进展.docx
- Raid Card性能测试技术报告 2024.docx
- 专题报告:财政审计报告回应了哪些市场关注热点?-240911-方正证券-12页.docx
- PVT 法同质外延制备大尺寸 Al 极性氮化铝晶体生长工艺及其表征分析研究.docx
- 债券衍生品系列报告之五-可转债入门(2):市场篇-240907-申万宏源-15页.docx
- ETH-X计算节点参考设计 2024.docx
- 【华福固收】区域金融机构价值挖掘系列·湖南篇(下).docx
- 蛋白微阵列芯片技术和产业化发展前景及存在问题.docx
- 医药商业中报总结:集中度加速提升,龙头企业有望率先触底反弹.docx
- 游戏行业24H1中报总结:大厂游戏H1先发已进入业绩贡献期,A股游戏H2有望开启新游上线期.docx
最近下载
- Siemens西门子电力自动化 变电站自动化 SICAM Anole 用户手册.pdf
- 《导数的概念》教学设计.doc
- 开放系统11379《人文英语(3)》期末机考真题及答案(第102套).pdf
- (康德卷)重庆市高2025届高三第一次联合诊断检 化学试卷(含答案).docx
- 湖北省武汉市江岸区2023-2024学年八年级上学期期末考试英语试题(含答案).docx VIP
- 绘本故事小金鱼逃走了课件PPT.ppt
- 2024年小学古诗词知识竞赛试题及答案(完整版).docx
- 自创--平面镜成像说课市公开课一等奖百校联赛优质课金奖名师赛课获奖课件.ppt VIP
- csm3100无创血流动力检测系统.doc
- 西餐热菜工艺模块3 水产类菜品制作.pptx VIP
文档评论(0)