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