是的,作为标题,我不知道如何在linux的内核模式下编程和编译“Hello World”代码,请以最简单易懂的方式帮助我。谢谢 ! (也欢迎任何相关文件,我只是新手)
答案 0 :(得分:7)
您可以开始Here:
/*
* hello-1.c - The simplest kernel module.
*/
#include <linux/module.h> /* Needed by all modules */
#include <linux/kernel.h> /* Needed for KERN_INFO */
int init_module(void)
{
printk(KERN_INFO "Hello world 1.\n");
/*
* A non 0 return means init_module failed; module can't be loaded.
*/
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world 1.\n");
}
答案 1 :(得分:3)
首先想一想,Linux内核没有终端,没有与用户直接交互。无法在命令行上调用Hello World作为任何其他用户程序。我能想到的最合适的是作为内核模块实现的字符设备驱动程序,例如在设备/ dev / helloworld上读取“Hello World”。
我可以指出你从鲁比尼那里读到这本书:Linux Device Drivers。它解释并举例说明了创建简单的Hello World内核模块。
答案 2 :(得分:1)
附加信息:printk函数由内核提供,并打印到文件中,例如/ var / log / messages。在Ubuntu中,这是/ var / log / syslog文件。您可以在此文件中看到hello模块的输出。 另外,感谢fseto指出Linux内核模块编程指南。太棒了。