第12章 内核模块.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 内核模块

第第1212章章内核模块内核模块 实验目的实验目的实验目的实验目的 了解内核模块的概念和特点了解内核模块的概念和特点了解内核模块的概念和特点了解内核模块的概念和特点 学习如何编写一个内核模块学习如何编写一个内核模块 掌握内核模块的实现机制掌握内核模块的实现机制掌握内核模块的实现机制掌握内核模块的实现机制,,,,学会模块的加载和卸学会模块的加载和卸学会模块的加载和卸学会模块的加载和卸 载载 主要内容主要内容主要内容主要内容 背景知识背景知识背景知识背景知识 内核模块概述内核模块概述 内核模块编程内核模块编程内核模块编程内核模块编程 内核模块机制的实现内核模块机制的实现 实验内容实验内容 通过内核模块显示进程控制块信息通过内核模块显示进程控制块信息通过内核模块显示进程控制块信息通过内核模块显示进程控制块信息 内核模块概述内核模块概述内核模块概述内核模块概述 内核模块内核模块内核模块内核模块 是在核心空间运行的一种目标文件,不能单独执行但其是在核心空间运行的一种目标文件,不能单独执行但其 代码可在运行时链接到系统中作为内核的一部分执行或代码可在运行时链接到系统中作为内核的一部分执行或代码可在运行时链接到系统中作为内核的一部分执行或代码可在运行时链接到系统中作为内核的一部分执行或 卸载。卸载。LinuxLinux 内核模块是一种特有的机制,它由一组函数内核模块是一种特有的机制,它由一组函数 和数据结构组成,可作为独立程序来编译。和数据结构组成,可作为独立程序来编译。 当模块被安装时,它被链接到内核中,可在系统启动时当模块被安装时,它被链接到内核中,可在系统启动时 进行模块安装,称静态加载;也可在系统运行时进行模进行模块安装,称静态加载;也可在系统运行时进行模 块安装块安装块安装块安装,,,,称动态加载称动态加载称动态加载称动态加载。。。。 内核模块概述内核模块概述内核模块概述内核模块概述 内核模块的主要作用内核模块的主要作用 是动态地增加或减少内核功能,许多情况下用户需要增是动态地增加或减少内核功能,许多情况下用户需要增 加内核态程序。加内核态程序。 例如,添加一个文件系统或设备驱动程序,而这类程 序运行在内核态,工作在核心空间,由于它们种类繁 多多、、体积庞大体积庞大,,要求内核全部包含进去是十分困难的要求内核全部包含进去是十分困难的 ,于是Linux提供了一种称为可动态加载和卸载的内核 模块模块 ((LoadableLoadable KernelKernel ModulesModules,,LKMLKM ))机制机制,,通过通过 模块机制来实现系统运行时对内核功能的动态扩充, 就能大大提高单内核操作系统的灵活性与可扩展性就能大大提高单内核操作系统的灵活性与可扩展性。。 内核模块概述内核模块概述内核模块概述内核模块概述 LinuxLinux内核模块内核模块 是一个编译好的、具有特定格式的独立目标文件,用户 可通过系统提供的一组与模块相关的命令将内核模块加 载进内核,当内核模块被加载后,它有以下特点: 1)与内核一起运行在相同的内核态和内核地址空间; 2)运行时具有与内核同样的特权级; 3)可方便地访问内核中的各种数据结构。 内核模块概述内核模块概述内核模块概述内核模块概述 LinuxLinux内核模块内核模块 被载入内核的内核模块代码与静态编译进内核的代码没 有区别,内核模块与内核中的其他模块交互只需采用函 数调用,此外,内核模块还可以很容易地被移出内核, 当用户不再需要某功能模块时,可以自动地将它从内核 卸载以节省系统主存开销卸载以节省系统主存开销,,配置十分灵活配置十分灵活。。

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档