如何在linux的内核模式下编程并编译“Hello World”代码?

时间:2010-09-17 08:32:27

标签: c++ linux-kernel

是的,作为标题,我不知道如何在linux的内核模式下编程和编译“Hello World”代码,请以最简单易懂的方式帮助我。谢谢 ! (也欢迎任何相关文件,我只是新手)

3 个答案:

答案 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内核模块编程指南。太棒了。