让内核模块链接到的标准内核库在哪里?

sum*_*dog 2 c linux kernel kernel-module linux-kernel

由于libc在用户空间下运行,因此内核模块无法调用libc.
还有一些其他内核指定的API就像printk()一样使模块正常工作.
据我所知,libc是几个标准c函数obj(s)的集合.
它应该存在一个集合(或库)来包含几个内核标准函数对象.
所以我可以将我的内核模块与这些内核标准库链接起来,对吧?

简而言之,我的问题如下......

在用户空间:
aaa.o链接bbb.o调用myfunc()
aaa.o链接libc.so以调用printf()

在内核空间:
aaa.ko链接bbb.ko调用myfunc()?这是Question1
aaa.ko链接xxx来调用printk()?什么是xxx,问题2

谢谢 !

Bas*_*tch 7

内核模块只能调用内核函数(它们位于内核的固定部分).他们不会也不能使用任何外部库.

所以没有内核标准库(包含的内核本身printk).

从概念上讲,内核代码是C 的独立方言; 它不使用任何C标准库函数(模糊的原因,Linux内核代码不编译-ffreestanding 方言选项gcc)