linux -- glibc uclibc eglibc 异同

1.Glibc
glibc = GNU C Library
是GNU项(GNU Project)目,所实现的 C语言标准库(C standard library)。
目前,常见的桌面和服务器中的GNU/Linux类的系统中,都是用的这套C语言标准库。
其实现了常见的C库的函数,支持很多种系统平台,功能很全,但是也相对比较臃肿和庞大。

2.uClibc
一个小型的C语言标准库,主要用于嵌入式。
其最开始设计用于uClinux(注:uClinux不支持MMU),因此比较适用于微处理器中。
对应的,此处的u意思是μ,Micro,微小的意思。

uClibc的特点:
(1)uClibc比glibc要小很多。
(2)uClibc是独立的,为了应用于嵌入式系统中,完全重新实现出来的。和glibc在源码结构和二进制上,都不兼容。

3.EGLIBC
EGLIBC = Embedded GLIBC
EGLIBC是,(后来)glibc的原创作组织FSF所(新)推出的,glibc的一种变体,目的在于将glibc用于嵌入式系统。
EGLIBC的目标是:
(1)保持源码和二进制级别的兼容于Glibc
源代码架构和ABI层面兼容
如果真正实现了这个目标,那意味着,你之前用glibc编译的程序,可以直接用eglibc替换,而不需要重新编译。
这样就可以复用之前的很多的程序了。
(2)降低(内存)资源占用/消耗
(3)使更多的模块为可配置的(以实现按需裁剪不需要的模块)
(4)提高对于交叉编译(cross-compilation)和交叉测试(cross-testing)的支持

Eglibc的最主要特点就是可配置,这样对于嵌入式系统中,你所不需要的模块,比如NIS,locale等,就可以裁剪掉,不把其编译到库中,使得降低生成的库的大小了。
更多特点,可以去看:Eglibc的特点

【glibc, uClibc, Elibc的渊源/历史/区别/联系】
1. 写程序,需要用到很多c语言的库函数。所有的库函数加起来,就是对应的C语言(标准)函数库。
2. 目前在普通GNU/Linux系统中所用的C语言标准库,叫做glibc。其功能很全,函数很多,但是代码太多,编译出来的函数库的大小也很大,即资源占用也很多。
3. 而嵌入式系统中,也需要C语言写代码实现特定功能,也需要用到C语言函数库,但是由于嵌入式系统中,一般资源比较有限,所以不适合直接使用(太占用资源的)gLibc。
4. 所以有人就又(没有参考glibc,而是从头开始,)重新实现了一个用于嵌入式系统中的,代码量不是很大的,资源占用相对较少的,C语言函数库,叫做uClibc。并且,uClibc不支持MMU(内存管理单元)。
5. 而后来,glibc的开发者,又推出个Embedded glibc,简称eglibc,其主要目的也是将glibc用于嵌入式领域。
相应最大的改动就在于,把更多的库函数,改为可配置的,这样,如果你的嵌入式系统中不需要某些函数,就可以裁剪掉,不把该函数编译到你的eglibc库中,使得最终生成的eglibc库的大小变小,最终符合你的嵌入式系统的要求(不能超过一定的大小),这样,就实现了,把glibc引用于嵌入式系统中的目的了。

可以简单的理解为:
glibc,uClibc,eglibc都是C语言函数库:
1. uClibc是嵌入式系统中用的,glibc是桌面系统用的
2. eglibc也是嵌入式系统中用的,是glibc的嵌入式版本,和glibc在源码和二进制上兼容。
Linux - Generic (glibc 2.28) (x86, 32-bit), Compressed TAR Archive 8.0.42 754.9M Download (mysql-8.0.42-linux-glibc2.28-i686.tar.xz) MD5: ac4519b2b391cd6824e9b89ab3abe77e | Signature Linux - Generic (glibc 2.28) (x86, 64-bit), Compressed TAR Archive 8.0.42 847.5M Download (mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz) MD5: 538adf1ba2116c1a51bbe501d4429af4 | Signature Linux - Generic (glibc 2.28) (ARM, 64-bit), Compressed TAR Archive 8.0.42 835.2M Download (mysql-8.0.42-linux-glibc2.28-aarch64.tar.xz) MD5: fd0936883bcbaa32cf61390bc5b1c9ac | Signature Linux - Generic (glibc 2.28) (x86, 32-bit), Compressed TAR Archive Test Suite 8.0.42 424.2M Download (mysql-test-8.0.42-linux-glibc2.28-i686.tar.xz) MD5: 9eabc81b24a309b94efd75590b59dc25 | Signature Linux - Generic (glibc 2.28) (x86, 64-bit), Compressed TAR Archive Test Suite 8.0.42 428.1M Download (mysql-test-8.0.42-linux-glibc2.28-x86_64.tar.xz) MD5: 9e2e6185f65a6520cd6349ab831eee32 | Signature Linux - Generic (glibc 2.28) (ARM, 64-bit), Compressed TAR Archive Test Suite 8.0.42 426.9M Download (mysql-test-8.0.42-linux-glibc2.28-aarch64.tar.xz) MD5: ab69e245fa04e68c267bb7b5eb49b299 | Signature Linux - Generic (glibc 2.28) (ARM, 64-bit), TAR 8.0.42 1327.5M Download (mysql-8.0.42-linux-glibc2.28-aarch64.tar) MD5: ee66d4d78510f94f06f14e9fbd4bfa8f | Signature Linux - Generic (glibc 2.28) (x86, 32-bit), TAR 8.0.42 1241.4M Download (mysql-8.0.42-linux-glibc2.28-i686.tar) MD5: 3b68c4aba42688894c4da73b1fa5a27c | Signature Linux - Generic (glibc 2.28) (x86, 64-bit), TAR 8.0.42 1343.1M Download (mysql-8.0.42-linux-glibc2.28-x86_64.tar) MD5: 287900c57a2294968817e2f53bc369b5 | Signature Linux - Generic (glibc 2.17) (x86, 32-bit), Compressed TAR Archive 8.0.42 758.8M Download (mysql-8.0.42-linux-glibc2.17-i686.tar.xz) MD5: 3bd2bbe505b85cac7eee88dc264d7205 | Signature Linux - Generic (glibc 2.17) (x86, 64-bit), Compressed TAR Archive 8.0.42 828.0M Download (mysql-8.0.42-linux-glibc2.17-x86_64.tar.xz) MD5: 755172f2aafb88dacd8514fe1d27e79b | Signature Linux - Generic (glibc 2.17) (x86, 64-bit), Compressed TAR Archive Minimal Install 8.0.42 58.2M Download (mysql-8.0.42-linux-glibc2.17-x86_64-minimal.tar.xz) MD5: f20ced98976b68e787ddffe3662d687d | Signature Linux - Generic (glibc 2.17) (x86, 32-bit), Compressed TAR Archive Test Suite 8.0.42 424.0M Download (mysql-test-8.0.42-linux-glibc2.17-i686.tar.xz) MD5: faa6315d0eeb893ccd321574f983a679 | Signature Linux - Generic (glibc 2.17) (x86, 64-bit), Compressed TAR Archive Test Suite 8.0.42 426.5M Download (mysql-test-8.0.42-linux-glibc2.17-x86_64.tar.xz) MD5: ca9674fdc0c5e8927c75a3ba2a2438cb | Signature Linux - Generic (glibc 2.17) (x86, 64-bit), Compressed TAR Archive Minimal Install Test Suite 8.0.42 385.6M Download (mysql-test-8.0.42-linux-glibc2.17-x86_64-minimal.tar.xz) MD5: 20e21223df5f505e2e1ba457598e3202 | Signature Linux - Generic (glibc 2.17) (x86, 32-bit), TAR 8.0.42 1244.7M Download (mysql-8.0.42-linux-glibc2.17-i686.tar) MD5: 6a977494d5fa6364b7c4a1deeb2756e3 | Signature Linux - Generic (glibc 2.17) (x86, 64-bit), TAR 8.0.42 1318.8M Download (mysql-8.0.42-linux-glibc2.17-x86_64.tar) MD5: fd6d68249c80c394ac1fbac641a325d5 | Signature Linux - Generic (glibc 2.17) (x86, 64-bit), TAR Minimal Install 8.0.42 451.5M Download (mysql-8.0.42-linux-glibc2.17-x86_64-minimal.tar) 版本有什么区别
最新发布
07-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值