2009年5月7日 星期四

Debian 也向 Embedded 看齊!換上 EGLIBC!

Standard
日前『Aurelien Jarno』在 blog 上發表了一文<Debian is switching to EGLIBC>,文中宣告了 Debian 將會逐漸使用<EGLIBC(Embedded GLIBC)>取代 GLIBC(GNU C Library),也說明了換上 EGLIBC 的種種好處和優點。有意思的是,GLIBC 是系統上資是最重要且不可缺少的 C Library,這樣大的轉變,無疑是對 GNU 旗下之 GLIBC 的頑固提出最大不滿。

C Library(LIBC)提供了最基本的各種 System Call,所有的 Application 都是建構在其之上,如 malloc()、printf() 和 exit() 等等 functions 都是由 LIBC 所實作並提供各個應用程式呼叫使用,一般而言,常見的 LIBC 除了 GLIBC 之外,還有知名的 uClibc、BSD libc、klibc,甚至是近來 Android 所使用的 bionic 都是眾 C Library 的一支。

但在一般 Linux 環境下,GLIBC 是主要被採用的 C Library,其遵循著各個標準如:ISO C 99、POSIX.1c、POSIX.1j、POSIX.1d、Unix98、Single Unix Specification,以確保和多數系統之 System Call 所相容,也做了許多效能最佳化的工作,但也就因為如此,其龐大的設計和體積一直以來為人所垢病,讓許多專注於 Embedded Device 的開發者和廠商,著手開發更適合 Embedded System 此類小型或輕量化系統的 C Library,像是 uClibc、bionic。

前面提到,Debian 將開始逐漸嘗試過渡的<EGLIBC(Embedded GLIBC)>,是長期專注於 Embedded Device 的 Freescale、Wind River、MIPS Technologies 和 MontaVista,所著手進行的 GLIBC 改良計劃。EGLIBC 志於相容 GLIBC,『Aurelien Jarno』在他的文章中提到幾個使用 EGLIBC 的優點和特色:
有趣的是,看來 GNU 的開發團隊惹惱了不少人,連 friendly upstream 也成為了 EGLIBC 的優點之一。 :-P

到了今天,Embedded Device 和 PC 已經愈來愈分不清楚,Debian 轉移到 EGLIBC 或許也是種合理的考量,讓我們靜觀其變,拭目以待!