【发布时间】:2013-10-29 15:43:39
【问题描述】:
内核空间中有 libc 吗?我的意思是您必须针对某些 libc 构建内核,对吗?那么内核空间中是否有一个 libc(可能是静态链接的)?
如果是,这与用户态 glibc 有什么关系?它们必须是相同的版本吗?
【问题讨论】:
标签: linux linux-kernel kernel glibc
内核空间中有 libc 吗?我的意思是您必须针对某些 libc 构建内核,对吗?那么内核空间中是否有一个 libc(可能是静态链接的)?
如果是,这与用户态 glibc 有什么关系?它们必须是相同的版本吗?
【问题讨论】:
标签: linux linux-kernel kernel glibc
内核空间中实际上没有 libc。 Libc 是用户空间的库,你不能从内核空间使用它。
但是几乎所有在内核空间中有意义的 libc 函数都被移植了。通常可以在 include/linux/ 中找到头文件。
据我所知,这两个实现不共享代码库。
【讨论】:
libc 中可用的一些函数是在内核代码中实现的,例如有一个 printf 函数可以正常工作(至少就其自身需要的内核代码而言)。
这意味着虽然代码看起来使用了libc(通过似乎可用的函数),但实际上不需要将它与库 (AFAIK) 链接。
【讨论】: