Linux printk在不包括kernel.h的情况下工作

Linux printk在不包括kernel.h的情况下工作,linux,linux-kernel,kernel-module,kernel,Linux,Linux Kernel,Kernel Module,Kernel,我正在编写一个简单的hello world模块,发现prink可以在内核不包含的情况下工作。我的节目是 #include<linux/module.h> int hello_init(void) { printk(KERN_ALERT "Hello World\n"); return 0; } void hello_exit(void) { printk(KERN_ALERT "Good Bye\n"); } module_init(hello_init)

我正在编写一个简单的hello world模块,发现prink可以在内核不包含的情况下工作。我的节目是

#include<linux/module.h>
int hello_init(void)
{
    printk(KERN_ALERT "Hello World\n");
    return 0;
}

void hello_exit(void)
{
    printk(KERN_ALERT "Good Bye\n");
}

module_init(hello_init);
module_exit(hello_exit);
#包括
int hello_init(无效)
{
printk(KERN_警报“Hello World\n”);
返回0;
}
void hello_退出(void)
{
printk(KERN_ALERT“再见”);
}
模块_init(hello_init);
模块退出(你好退出);

发现定义在

中,那么,问题是什么?
linux/module.h
在某处包含了
printk
的标题。编辑:快速搜索显示
linux/module.h
包括
linux/moduleparam.h
,其中包括
linux/kernel.h