- 1、本文档共71页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
/drivers目录 存放所有设备驱动程序源代码 /net子目录 存放网络子系统,如各种网卡和网络规程驱动程序 /security目录 存放安全子系统代码 /sound目录 存放语音子系统代码 * Linux核心源码的组织(续) Linux内核环境 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. /init目录 存放内核引导和初始化代码 许多重要文件,如main.c、version.c就位于该目录下 /lib目录 存放内核需要的通用工具性内核函数(如对出错信息的处理),它能够在引导时解压内核并装入主存 /scripts目录 存放编译内核所用脚本和用于系统配置的命令文件 /documentation目录 存放内核源代码文档 * Linux核心源码的组织(续) Linux内核环境 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. 采用模块化的内核配置系统 内核模块(Loadable Kernel Module)的概念 模块实际上是一种目标对象文件,没有链接,不能独立运行 但是其代码可以在系统运行时链接到系统中作为内核的一部分运行,或从内核中取下,从而可以动态扩充内核的功能(不需要重新编译内核) 这种目标代码通常由一组函数和数据结构组成 * Linux内核的配置组成 Linux内核环境 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. 使得内核更加紧凑和灵活,可扩展 修改模块时,不必全部重新编译整个内核 系统如果需要使用新模块,只要编译相应的模块,然后将模块插入即可 模块可以不依赖于某个固定的硬件平台 模块的目标代码一旦被链接到内核,它的作用域和静态链接的内核目标代码完全等价 * 内核模块的优点 Linux内核环境 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. 并不是所有地方都使用内核模块 设备驱动程序 文件系统驱动程序 系统调用 大部分系统调用属于基础内核(Basic kernel),也可以以内核模块方式增加新的系统调用或者覆盖现有基于内核模块方式实现的系统调用 * 内核模块的使用 Linux内核环境 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. 程序代码:helloworld.c 编译、安装方法 root# gcc -c helloworld.c root# insmod helloworld.o root# lsmod root# rmmod helloworld * 模块示例 #define MODULE #include linux/module.h int init_module(void) { printk(“1Hello World!\n”); return 0; }? void cleanup_module(void) { printk(“1 Goodbye!\n”); } Linux内核环境 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. * 内核模块与应用程序的差别 C语言程序 模块 运行 用户空间 内核空间 入口 main() init_module() 出口 无 cleanup_module() 编译 gcc -c gcc -c -D_KERNEL_-DMODULE 连接 gcc insmod 运行 直接运行 insmod 调试 gdb kdbug, kdb
您可能关注的文档
- 《IPTV医院综合解决方案.ppt
- 《ISO9000:2000标准核心内容.ppt
- 《ISO9001认证简介.ppt
- 《ISO培训资料1.ppt
- 《ITEM系统介绍.ppt
- 《IT产品经理的职责所在.ppt
- 《IT基础运维.ppt
- 《ISA总线.ppt
- 《ITV的安装与常见故障分析20130708.ppt
- 《I╱O处理.ppt
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江西省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年安徽省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年福建省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年广东省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河南省高考英语试卷(含答案解析)+听力音频.docx
- 2024年湖北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江苏省高考英语试卷(含答案解析)+听力音频+听力原文.docx
文档评论(0)