全部博文(626)
分类: 嵌入式
2013-09-30 09:34:04
EGLIBC库介绍
一、介绍
1、概览
扩充和增强GNU C库的功能,以支持各种不同环境的嵌入式系统,并维持开放的开发环境,鼓励开发者的广泛协作。
2、免费软件的目标
· 支持GNU项目的目标
· LGPL许可证
· FSF拥有版权
3、设计目标
· 提供一个选择,以减少磁盘和内存占用。
· 支持交叉编译和交叉验证。
· 支持用于嵌入式系统的处理器。
· 组合支持处理器的特殊功能。
· 保持API和ABI兼容。
4、开发环境
所有补丁由FSF分配。
鼓励合作、沟通、礼貌、相互尊重和开发。
二、EGLIBC与GLIBC的比较
EGLIBC并不意味着它是GLIBC的分支。GLIBC对于核心任务是非常适合的:提供了一个C库用于工作站和服务器的GNU/Linux系统。然而GLIBC开发者需要在嵌入式系统使用GLIBC,但是非常困难。EGLIBC的目标就是要提供一个GLIBC的变种用于嵌入式系统,而且几乎不做改动,尽可能与GLIBC兼容。
EGLIBC的维护者定期合并GLIBC的改变到EGLIBC。
对于GLIBC的维护者来说,他们把重点放在对服务器和工作站系统领域。然而EGLIBC则是嵌入式领域。
三、uClibc与EGLIBC的比较
uClibc与EGLIBC有一个共同的目标,都是为嵌入式系统提供一个C标准函数库。然而,uClibc和EGLIBC也有很多不同。
首先, uClibc在目前已经封装进大量的系统,也就是说,很多系统都在使用uClibc。而EGLIBC是一个新项目。如果你需要一个小型的C库,那么uClibc是更好的选择。
以下将介绍EGLIBC的未来目标,而不是目前的状态。
uClibc在设计上就是源码兼容GLIBC的,但它不是二进制(binary)兼容。要使用uClibc,您必须重新编译应用程序。而EGLIBC的维护者希望EGLIBC能够满足二进制也兼容GLIBC。这意味着,只要EGLIBC的版本提供了应用程序的所有所需,那么使用GLIBC编译的应用程序可以使用EGLIBC代替GLIBC库,无需重新编译应用程序。
当GLIBC添加新功能时,它能很容易地纳入EGLIBC,因为EGLIBC基于GLIBC的。但是增加新功能到uClibc库需要做大量工作。因为uClibc源码库是单独的。
uClibc支持uClinux的,而EGLIBC更可能只工作于带MMU功能的GNU / Linux系统。
uClibc和EGLIBC都是免费软件,都是基于LGPL许可证的。然而,EGLIBC的大多数代码贡献给自由软件基金会(Free Software Foundation),或者是在公共领域。相比之下,uClibc的版权则属于许多捐助者。