考试网 >> IT认证 >> Linux >> Linux指导 >> Linux系统可卸载内核模块完全指南(上)

Linux系统可卸载内核模块完全指南(上)

发布时间:2006-06-28 10:06     点击:
分页:[1] 2 3 4 5 6 7 8  下一页

第一部分. 基础知识

  1.1 什么是LKMs

  LKMs就是可卸载的内核模块(Loadable Kernel Modules)。这些模块本来是Linux系统用于扩展他的功能的。使用LKMs的优点有:他们可以被动态的加载,而且不需要重新编译内核。由于这些优点,他们常常被特殊的设备(或者文件系统),例如声卡等使用。

  每个LKM至少由两个基本的函数组成:

  int init_module(void) /*用于初始化所有的数据*/

  {

  ...

  }

  void cleanup_module(void) /*用于清除数据从而能有一个安全的退出*/

  {

  ...

  }

  加载一个模块(常常只限于root能够使用)的命令是:

  # insmod module.o

  这个命令让系统进行了如下工作:

  加载可执行的目标文件(在这儿是module.o)

  调用 create_module这个系统调用(至于什么叫系统调用,见1.2)来分配内存.

  不能解决的引用由系统调用get_kernel_syms进行查找引用.

  在此之后系统调用init_module将会被调用用来初始化LKM->执行 int inti_module(void) 等等

  (内核符号将会在1.3节中内核符号表中解释)

  OK,到目前为止,我想我们可以写出我们第一个小的LKM来演示一下这些基本的功能是如何工作的了.

  #define MODULE

  #include

  int init_module(void)

  {

  printk("<1>Hello World\n");
分页:[1] 2 3 4 5 6 7 8  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有