|
发表于 2003-11-3 10:42:02
|
显示全部楼层
GLIBC 的內容
由於 glibc 囊括了幾乎所有的 UNIX 通行的標準,可以想見其內容包羅萬有。而就像其他的 UNIX 系統一樣,其內含的檔案群分散於系統的樹狀目錄結構中,像一個支架一般撐起整個作業系統。以 glibc-2.2 為例,這些檔案群主要包括:
分享函式庫群:
這是 glibc 的主體,分?鸯 /lib 與 /usr/lib 中,包括 libc 標準 C 函式庫、libm 數學函式庫、libcrypt 加密與編碼函式庫、libdb 資料庫函式庫、libpthread 行程多執行緒函式庫、libnss 網路服務函式庫 .... 等等。這些都是可分享函式庫,檔名都以 .so 做結尾。
其中,/lib/ld*.so 是程式與函式庫連結的工具。有的用於程式編譯時將程式與函式庫內的函式物件連結,在只支援靜態連結的系統中,此連結方式就是直接將所需的物件自函式庫中抽出?砼c程式的可執行檔相連,而在支援可分享函式庫的系統中,在程式編譯時期的連結只是在執行檔中紀錄了那些函式物件是存在那個函式庫檔案中,等該程式開始執行時,則由另一個負責動態連結的 ld*.so 將所需的函式庫連結好?K執行。
一般而言,負責程式編譯時期的連結器檔名為 ld.so,而負責程式執行時的動態連結器檔名為 ld- .so 或 ld-linux.so (在 GNU/Linux 系統中)。
函式庫標頭檔與程式開發元件:
這些標頭檔檔名都以 .h 為結尾,全部在 /usr/include/ 底下,其內容為函式庫中各函式的宣告、巨集定義、資料物件的型別 .... 等等,這些都是程式開發者不可或缺的部分。
除此之外,在 /usr/lib/ 中還有若干 .o 與 .a 的檔案,這些是程式編譯過程中要連結為可執行檔時所需的元件,有些則為上述可分享函式庫的靜態連接版本,而後者可以在某些特殊場合下需要靜態連結程式時使用。
函式庫說明文件:
在一般的 UNIX 系統下,這些說明文件是放在 /usr/man 或 /usr/share/man 底下,統稱為 man pages,其底下還分若干章?,其中第二章 (man2) 講的是系統呼叫,而第三章 (man3) 講的就是 libc 標準函式庫,這些都是系統開發者重要的參考資料。
而在 GNU 的系統中,除了 man pages 之外,還有一套稱為 info 的文件資料系統,而且裡頭的說明往往比 man pages 還要詳盡,這在 glibc 中也不例外。glibc 的 info 文件位於 /usr/share/info/libc.info* ,本文中有許多素材就是取自這些文件的內容。
字集轉換模組與區域化資料庫:
這些是與程式國際化與本土化相關的部分,主要可分成四大塊: /usr/lib/gconv/ 內含大量的字集轉換模組,大部分是各種字集及編碼方式與系統的基底字集之間的 轉換。第二塊是 /usr/lib/locale,內含以系統基底字集寫成的區域化資料庫 (locale),像是 LC_CTYPE、LC_TIME .... 等等。第三塊是
/usr/share/locale/,內含可跨平台使用的區域化資料,主要是各應用程式的?息翻譯部分。而最後一塊是 /usr/share/i18n/,其內容是各區域化資料庫的原始碼,以及系統支援的內碼對應表 .... 等等。
時區資料庫:
主要分?鸯 /usr/share/zoneinfo 底下,內含世界各地時區與格林威治時間的轉換資料。
其他工具程式與設定檔:
工具程式分?言 /usr/bin 與 /sbin 底下,包括一些轉碼與區域化資料庫相關的程式如 iconv, locale, localedef 等,以及用?盹@示應用程式與可分享函式庫相依關係的 ldd, 還有可分享函式庫搜尋路?焦芾沓淌 ldconfig .... 等。而其相關的設定檔則位於 /etc 底下。 |
|