天天看點

EGLIBC庫介紹

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的版權則屬于許多捐助者。

繼續閱讀