【问题标题】:Is there a libc in kernel space?内核空间中有libc吗?
【发布时间】:2013-10-29 15:43:39
【问题描述】:

内核空间中有 libc 吗?我的意思是您必须针对某些 libc 构建内核,对吗?那么内核空间中是否有一个 libc(可能是静态链接的)?

如果是,这与用户态 glibc 有什么关系?它们必须是相同的版本吗?

【问题讨论】:

标签: linux linux-kernel kernel glibc


【解决方案1】:

内核空间中实际上没有 libc。 Libc 是用户空间的库,你不能从内核空间使用它。

但是几乎所有在内核空间中有意义的 libc 函数都被移植了。通常可以在 include/linux/ 中找到头文件。

据我所知,这两个实现不共享代码库。

【讨论】:

    【解决方案2】:

    libc 中可用的一些函数是在内核代码中实现的,例如有一个 printf 函数可以正常工作(至少就其自身需要的内核代码而言)。

    这意味着虽然代码看起来使用了libc(通过似乎可用的函数),但实际上不需要将它与库 (AFAIK) 链接。

    【讨论】:

      猜你喜欢
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 2011-06-30
      • 2019-02-14
      • 2012-05-12
      • 2013-01-21
      • 1970-01-01
      相关资源
      最近更新 更多