linux module 不能调用printf,引发的疑问。困扰多时,请高手指点,以免本人走火入魔。
发布网友
发布时间:2022-04-30 15:13
我来回答
共1个回答
热心网友
时间:2023-10-08 16:38
你的问题非常好。
实际上,内核的确没有调用libc的任何东西,如果调用的话,就会调用glibc的库,这对于几M的肉核来说,是无法承受的。常用的所以函数在内核里都重新实现了一遍(当然,内核中只是把函数提供了相同的功能,至于优化方面,实现某些函数或许没有glib的高效)
就拿printf来说,的确是glibc库的东西,在内核中用的printk来实现的。
malloc在内核中有vmalloc和kmalloc。
......
至于具体的实现过程,你下载内核源代码和glibc的源代码,看看就能明白了。