- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内核裁剪篇
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
为什么要裁减内核
自己定制编译的内核运行更快(具有更少的代码)
系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)
不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞
将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
如何升级内核
添加进内核的方式:
将新增加部分编译到内核中(build-in)
把新增加部分编译成模块(module),动态加载。
各自特点:
编译到内核中,在内核启动时就可以自动支持相应部分的功能,这样的优点是方便、速度快,机器一启动,用户就可以使用这部分功能了;缺点是会使内核变得庞大起来,不管你是否需要这部分功能,它都会存在。建议经常使用的部分直接编译到内核中,比如网卡。
如果编译成模块,就会生成对应的.o文件,在使用的时候可以动态加载,优点是不会使内核过分庞大,缺点是你得自己来调用这些模块。
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
内核的模块式结构
内核模块是Linux内核向外部提供的一个接口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),简称为模块。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithic kernel)。单内核的最大优点是效率高,因为所有的内容都集成在一起,但其缺点是可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
模块
模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内核空间运行,这与运行在用户空间的进程是不同的。
模块通常由一组函数和数据结构组成,用来实现一种文件系统、一个驱动程序或内核中其他上层的功能。
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
模块与内核的关系
模块和内核都在内核空间运行,模块编程在一定意义上就是内核编程。因为内核版本的每次变化使得其中的某些函数名也会相应地发生变化,因此模块编程与内核版本密切相关。本课中所涉及的内核编程基于的Linux内核为2.4.x版本,对于其他版本,可能还需要做一些调整。
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
应用程序与内核模块的比较
C语言应用程序
内核模块程序
使用函数
libc库
内核函数
运行空间
用户空间
内核空间
运行权限
普通用户
超级用户
入口函数
main()
init_module()
出口函数
exit()
cleanup_module()
编译
gcc -c
gcc –c –D __KERNEl__ _DMOKULE
连接
gcc
Gcc
运行
直接运行
insmod
调试
gdb
kdbug,kdb,kgdb等
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
名字空间污染namespace pullution
当存在大量的函数和全局变量,并且它们的名字没有明确的含义以至于难以区别时,就会发生所谓的名字空间污染。
程序员需花费更多的时间和精力去记住这些已经保留的名字并为新符号寻找一个不重复的名字。
名
您可能关注的文档
- 权威制作2012年度国家司法考试备考大全.doc
- 2议论文审题训练—孔子弟子救人—经典课件.ppt
- 2阅读理解解技题巧.ppt
- 李丽药妆消费心理调查1-DOC.doc
- 李光宙新世纪园丁论文-doc.doc
- 3-2非晶硅薄膜的制备方法.ppt
- 李关中心校2015食品安全培训的简报.doc
- 李嘉诚神话京北遇阻.doc
- 3-短文两篇之二《贝壳》.ppt
- 李大钊对近代西方史学输入历史论文论文.doc
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
最近下载
- 《常考题》初中八年级数学上册第十三章《轴对称》习题(含答案解析).docx VIP
- 《事件相关电位入门》课件.ppt VIP
- 《儿童骨科疾病诊断》课件.ppt VIP
- 公司战略与风险管理 第3版 吕文栋 教学大纲+教案1--3.doc
- 12SG121-1 施工图结构设计总说明(混凝土结构) .docx VIP
- 一种实验室危化品试剂进出库智能化管控系统及管控方法.pdf VIP
- 专练08:读后续写-2020-2021学年高一英语下学期期末题型专项训练.docx VIP
- 动脉血标本采集技术操作考核及评分标准.docx
- AI驱动的知识图谱:混合式教学模式创新研究.docx VIP
- AI辅助混合式教学设计实践与效果评估.docx VIP
文档评论(0)