为什么Ubuntu使用eglibc而不是glibc?


13

64bit 12.10通过发出命令在Ubuntu 计算机上检查了libc版本ldd --version

我看到Ubuntu使用eglibc代替glibc。由于egiblc是嵌入式设备,是否有为什么Ubuntu使用它,而不是标准的glibc的具体原因。

Answers:


13

Ubuntu基于debian。这是Wikipedia的缩写:

2009年5月6日,由于glibc的开发过程中出现问题,宣布Debian从GNU C库移至EGLIBC。Debian及其一些派生工具现在已由EGLIBC而非glibc发行。EGLIBC是GNU LGPL许可的免费软件。

这些是原因(从Debian改用EGLIBC):

EGLIBC是GLIBC的变体,与原始GLIBC保持源代码和二进制兼容。虽然主要针对嵌入式体系结构,但它有一些非常好的方面:

  • 上游更加友好(尤其是在嵌入式体系结构方面):“鼓励
    开发人员之间的合作,沟通,文明和尊重”(与此相反)。
  • 稳定的分支,已修复了重要的错误(这是一个真实的分支,不像保留不变的GLIBC那样)。
  • 更好地支持嵌入式体系结构。
  • 支持不同的外壳(GLIBC仅支持bash)。
  • 支持使用-Os进行构建。
  • 可配置的组件(在debian-installer中我们真的需要NIS或RPC支持吗?)。
  • 适用于优化或biarch软件包的更好的测试套件。

其中的“破”的发展过程中许多可能造成的后果完全缺乏安全的严密性:GHOST的vuln community.qualys.com/blogs/laws-of-vulnerabilities/2015/01/27/...我最喜欢上面的一部分文章否认了安全威胁。代码库太大,工程设计欠佳且缺乏高效的功能社区,可能包含许多漏洞……例如在跳蚤叮咬的POODLE上玩打ac鼠。不要使用glibc。期。
dhchdhd 2015年

glibc肯定是皮塔饼,我正在努力解决它无法静态链接的问题,这使得交叉编译变得更加烦人。但是,既然eglibc快要寿终正寝了,还有什么其他选择?
moodboom

4

除了现在他们转回去:

自2014年初以来,官方主页指出EGLIBC已不再开发,因为其“目标现在已直接在GLIBC中解决”,并且Debian在Debian 8.0(Jessie)版本中已切换回glibc [4]。-维基百科


4
在最新版本中,Ubuntu也已转回。对libc6(这是在Ubuntu中提供libc的主要二进制软件包的名称)的搜索显示了14.lib LTS Trusty Tahr之前的发行版中的eglibc,随后的14.10 Utopic Unicorn和15.04 Vivid Vervet(其发行版为beta)中的glibc。我写这个)。有关详细信息,请参见eglibcglibc下游源软件包页面。请随时将这些信息添加到您的答案中。
伊莱亚·卡根
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.