Eng*_*999 5 libraries linux-kernel
我正在深入研究 Linux 的实际工作方式,尤其是在嵌入式设备上,以及构建功能齐全的系统所需的所有不同组件。
我知道标准 C 库实现(例如 glibc)是独立的,并且是我的用户空间应用程序进行通信并因此与 Linux 内核一起工作所必需的。
然而,Linux 代码本身真的依赖于这个标准库吗?Linux 可以在没有它的情况下自行执行吗?
不,内核不依赖于标准 C 库(或任何其他库),它是自包含的。用户空间程序也不一定依赖于 C 库。C 库为系统调用提供了方便的包装器,但它们可以直接调用而无需通过 C 库,其他语言运行时可以提供自己的包装器。
(这确实意味着内核包含了很多通常期望由 C 库提供的函数的实现,有时是更适合内核的简化版本。有关详细信息,请参阅此内核新手常见问题解答。)