LINUX内核模块编程指南.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文档。上传文档
查看更多
下载 第 1章 Hello, World 如果第一个程序员是一个山顶洞人,它在山洞壁 (第一台计算机 )上凿出的第一个程序应该 是用羚羊图案构成的一个字符串“ Hello, Wo rld ”。罗马的编程教科书也应该是以程序“ Salut , M undi ”开始的。我不知道如果打破这个传统会带来什么后果,至少我还没有勇气去做第一个 吃螃蟹的人。 内核模块至少必须有两个函数: i nit_ module和cleanup_module 。第一个函数是在把模块插 入内核时调用的;第二个函数则在删除该模块时调用。一般来说, i ni t_ module可以为内核的 某些东西注册一个处理程序,或者也可以用自身的代码来取代某个内核函数 (通常是先干点别 的什么事,然后再调用原来的函数 )。函数 cleanup_ modul e的任务是清除掉 i nit_module所做的 一切,这样,这个模块就可以安全地卸载了。 146 第二部分 Linux 内核模块编程指南 下载 1.1 内核模块的 Makefiles 文件 内核模块并不是一个独立的可执行文件,而是一个对象文件,在运行时内核模块被链接 到内核中。因此,应该使用 - c命令参数来编译它们。还有一点需要注意,在编译所有内核模 块时,都将需要定义好某些特定的符号。 ? _ _KERNEL_ _ — 这个符号告诉头文件:这个程序代码将在内核模式下运行,而不要 作为用户进程的一部分来执行。 ? MODULE — 这个符号告诉头文件向内核模块提供正确的定义。 ? LI NUX — 从技术的角度讲,这个符号不是必需的。然而,如果程序员想要编写一个重 要的内核模块,而且这个内核模块需要在多个操作系统上编译,在这种情况下,程序员 将会很高兴自己定义了 LI NUX 这个符号。这样一来,在那些依赖于操作系统的部分,这 个符号就可以提供条件编译了。 还有其它的一些符号,是否包含它们要取决于在编译内核时使用了哪些命令参数。如果 用户不太清楚内核是怎样编译的,可以查看文件 / usr/ incl ude/l i nux/ conf ig .h。 ? _ _SMP_ _ — 对称多处理。如果编译内核的目的是为了支持对称多处理,在编译时就 需要定义这个符号 ( 即使内核只是在一个 C PU上运行也需要定义它 ) 。当然,如果用户使 用对称多处理,那么还需要完成其它一些任务 (参见第 12章) 。 ? CO NFIG_M ODV ERSION S— 如果 CONFIG_ M ODV ERSION S可用,那么在编译内核模 块时就需要定义它,并且包含头文件 / usr/ include/l i nux /modv ersions.h。还可以用代码自 身来完成这个任务。 完成了以上这些任务以后,剩下唯一要做的事就是切换到根用户下 (你不是以 root 身份编 译内核模块的吧?别玩什么惊险动作哟! ) ,然后根据自己的需要插入或删除 hel lo模块。在执 行完 i nsmod命令以后,可以看到新的内核模块在 /proc/ modules中。 顺便提一下, M akef i le建议用户不要从 X 执行 i nsmod命令的原因在于,当内核有个消息需 要使用 pri ntk 命令打印出来时,内核会把该消息发送给控制台。当用户没有使用 X 时,该消息

文档评论(0)

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

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

1亿VIP精品文档

相关文档