【发布时间】:2014-05-14 04:08:22
【问题描述】:
内核模块无法调用 libc,因为 libc 在用户空间下运行。
还有一些其他内核指定的 API,比如 printk() 可以使模块正常工作。
据我了解,libc 是几个标准 c 函数 obj(s) 的集合。
它应该存在一个集合(或库)以包含多个内核标准函数对象。
所以我可以将我的内核模块与这些内核标准库链接起来工作,对吧?
简单来说,我的问题如下...
在用户空间:
aaa.o 链接 bbb.o 以调用 myfunc()
aaa.o 链接 libc.so 调用 printf()
在内核空间中:
aaa.ko 链接 bbb.ko 调用 myfunc() ?这是问题1
aaa.ko 链接 xxx 来调用 printk() ? xxx叫什么,问题2
谢谢!
【问题讨论】:
标签: c linux linux-kernel kernel kernel-module