64bit
12.10
我通过发出命令检查了我的 Ubuntu 机器上的 libc 版本ldd --version
。
我看到 Ubuntu 使用eglibc
而不是glibc
。egiblc
对于嵌入式机器,Ubuntu 使用它而不是标准 glibc 是否有特定原因。
答案1
Ubuntu 基于 Debian。这是维基百科:
2009 年 5 月 6 日,Debian 宣布将从 GNU C 库迁移到 EGLIBC,原因是 glibc 的开发过程存在问题。Debian 及其多个衍生产品现在都使用 EGLIBC 而不是 glibc。EGLIBC 是 GNU LGPL 许可的免费软件。
这些是原因(形式Debian 正在转向 EGLIBC):
EGLIBC 是 GLIBC 的一个变体,它与原始 GLIBC 保持源代码和二进制兼容。虽然它主要针对嵌入式架构,但它确实有一些优点:
- 更友好的上游(特别是在嵌入式架构方面):“鼓励
开发人员之间的合作、沟通、文明和尊重”(与此相反)。- 稳定分支修复了重要的错误(真正的错误,不像 GLIBC 那样保持不变)。
- 更好地支持嵌入式架构。
- 支持不同的shell(GLIBC仅支持bash)。
- 支持使用 -Os 进行构建。
- 可配置组件(我们真的需要 debian-installer 中的 NIS 或 RPC 支持吗?)。
- 针对优化或 biarch 包的更好的测试套件。
答案2
只不过他们现在已经改回来了:
自 2014 年初以来,官方主页声明 EGLIBC 不再开发,因为其“目标现在直接在 GLIBC 中解决”,并且 Debian 已在 Debian 8.0(Jessie)版本中切换回 glibc[4]。——维基百科