+ -
当前位置:首页 → 问答吧 → 菜鸟请教一个关于内核模块(Hello World)的问题

菜鸟请教一个关于内核模块(Hello World)的问题

时间:2010-11-20

来源:互联网

有这样一个(Hello World)模块:
  1. #include <linux/init.h>
  2. #include <linux/kernel.h>
  3. #include <linux/module.h>

  4. static int hello_init(void)
  5. {
  6.             printk("Hello! This is the helloworld module!\n");
  7.             return 0;
  8. }

  9. static void hello_exit(void)
  10. {
  11.             printk("Module exit! Bye Bye!\n");
  12.             return;
  13. }

  14. module_init(hello_init);
  15. module_exit(hello_exit);
  16. MODULE_LICENSE("GPL");
复制代码
菜鸟的问题:
     如果一个模块有问题,会不会使系统崩溃
     你是不是直接 insmod 到当前的系统,要不要重新编译一个内核, 然后再进行开发
     其他很多问题

鉴于一些不确定的因素,菜鸟我连(Hello World)模块都还没实现过。

望老鸟赐教。。

作者: 转瞬繁华   发布时间: 2010-11-20



QUOTE:
     如果一个模块有问题,会不会使系统崩溃


如果实现的有问题,是有可能出现 kernel panic 的。



QUOTE:
     你是不是直接 insmod 到当前的系统,要不要重新编译一个内核, 然后再进行开发


一个模块能够在你当前系统上 insmod 成功,需要满足一些条件
。首先就是需要编译这个模块的内核源码版本和你的系统内核版本一样。
在此基础上,还需要一些其他条件。因此,通常可以自己编译一个新内核,并安装。以后在这个内核上开发模块,就不需要重复编译内核了。


QUOTE:
     其他很多问题



可以看一些书,比如 LDD3 等,了解一下内核模块编程的基础知识。

作者: Godbach   发布时间: 2010-11-20