導讀:LSB是什麼?
LSB是Linux Standard Base取首字母的縮寫。LSB的目標是制定標准提高Linux系統與其他相似系統的兼容性。LSB標准定義了二進制環境,符合LSB的應yon程序在其中可以可以在其中運行。
最近 Linux Standards Base(LSB)3.0規范已經發布。新的LSB標准旨在防止Linux分化,已獲得了主要Linux廠商的廣泛支持。LSB規范由Free Standards Group(自由標准組織)負責維護和開發,並計劃通過一套基本API和庫實現互操作性,這樣ISV就可以開發和移植應用,以使應用能夠在LSB認證的Linux版本上運行。這套LSB標准目前支持7種架構,包括IA32、IA64、PPC32、PPC64、S390、S390X和X86_64。LSB 3.0對2.0進行了很多提升。Free Standards Group的執行理事Jim Zemlin說,最重要的是,LSB 3.0包括更新的、用於C++的應用程序二進制接口(ABI),所有主要Linux版本都支持這一二進制接口。Zemlin說:“對要支持多種版本Linux的ISV而言,這極大地降低了成本並縮短了開發時間。
一、國際Linux的標准體系
1.POSIX標准
POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 開發的標准系統。該標准是基於現有的Unix 實踐和經驗,描述了操作系統的調用服務接口,用於保證編制的應用程序可以在源代碼一級上在多種操作系統上移植運行。
1991-1993年Linux剛起步時,適逢POSIX 標准的制定正處在最後定稿的時候,POSIX標准為Linux提供了極為重要的信息,使得Linux能夠與絕大多數Unix 系統兼容。POSIX目前的最新標准是IEEE 1003.1-2001。
在最初的Linux 內核代碼中(0.01 版、0.11 版)就已經為Linux與POSIX標准的兼容做好了准備。通過對0.01 版的內核/include/unistd.h 文件的分析就可見,Linux在發展初期就想實現與POSIX的兼容。從Linux的發展進程也可以看出,Linux 的成長一直有POSIX 標准的輔佐,沒有POSIX 的指導,就不會有Linux的今天。
2.FSG(Free Standard Group)標准系列
Linux標准化規范和工作組——LSB(Linux Standard Base) 工作組是Free Standards Group的成員工作組。LSB是Linux領域重要和有影響的標准化組織。LSB工作組以達成“Standardizing The Penguin”為目標,制定最基本的標准,如公眾命令集和文件傳輸的格式等,為應用之間的兼容奠定基礎。它致力於開發和推廣一系列的標准,提高不同 Linux發行版本的兼容性,使得軟件應用得以運行在各種符合LSB標准的系統中,同時也幫助協調軟件開發商向Linux移植和開發產品。目前國際上流行 的Linux版本基本都遵循LSB標准,該規范是Linux世界統一的重要力量,可以說是Linux的工業標准。在LSB的發展歷程中較為重要版本是 V1.3,目前最新版本是2004年9月份所推出的LSB V2.0,主要是在V1.3的基礎上增加了對C++的支持。LSB V2.0也不能完全解決當前Linux應用中所面臨的兼容性問題。OpenI18N (Open Internationalization Initiative)致力於增強國際化背景下的軟件應用的可移植性和互操作性,提供一個通用的開放源碼環境,使得全球不同文化、語言的應用程序可以正確地運行和正確地表達。OpenI18N也制定相關的標准並開發驗證和測試工具包。符合OpenI18N標准的前提條件是符合對應的LSB標准。 Linux國際化英文是從internationalization裡,將i到n之間的18個字母略稱為『i18n』,再加上Linux就變成Li18nux,以此作為推展國際標准化的國際名稱。 在FSG中除了LSB和OpenI18n外,還有許多有影響的標准組,如LANANA (Linux Assigned Names and Numbers Authority)、OpenPrinting、Accessibility、DWARF、Open Cluster。它們主要關注於特定的領域應用。
3.OSDL(Open Source Development Lab)標准系列
CGL(Carrier Grade Linux)是由OSDL資助的項目,致力於制訂一個符合電信運營商要求的Linux標准。它針對網關, 信令服務器、管理服務器等電信應用提出了對Linux的增強,滿足集成電信、數據和Internet的新一代通信基礎設施的需要。CGL承諾遵守LSB標准,保持Linux版本的一致性,並遵守開放源碼的許可協議和開放源碼的開發流程。CGL支持相關軟件包的測試和認證,是一個完整的體系。
DCL(Data Center Linux)也是OSDL資助的項目,致力於制訂一個滿足企業數據中心需要的Linux標准。它面向金融行業和制造業等運行關鍵性業務系統。其特征是積極采用新技術,使大型系統能運行關鍵性業務並承擔高風險和重負荷。
DTL(Desktop Linux)是OSDL新近資助的項目,旨在推進Linux企業級的桌面應用。該項目目前處於籌劃期,對外發布的信息較少。據可靠消息,受中國大力推進桌面Linux操作系統的影響,OSDL將加大與中國的合作力度,特別是在桌面Linux領域。
4.United Linux(UL)
2002年6月,Caldera、 Conectiva、SuSE以及TurboLinux公司宣布成立UNITEDLINUX組織,計劃使Linux的開發與認證工作圍繞一個全球統一的商用Linux版本進行。UNITED LINUX(簡稱UL)將滿足企業用戶對標准的商用Linux版本的需要,該版本能跨越軟件及硬件平台,從而加速企業采用Linux。根據達成的協議,四家公司將通力合作開發一個通用核心的Linux操作系統環境,稱之為UL軟件。四家合作公司將在UL操作系統上捆綁自己的增值產品與服務,並以各自的品牌進行市場與銷售。幾乎每個為商務提供部分技術架構的供應商都表示支持UL,包括系統與軟件供應商AMD、Borland、CA、富士通-西門子、HP、IBM、Intel、NEC等。UL將提供一個真正基於標准的Linux操作環境,使供應商需要認證的Linux版本顯著減少。因為眾多原因,United Linux基本上趨於衰落,但對於如何防止Linux的分裂、如何簡潔Linux生態鏈提供了有益的參考。
二、 LSB發展的路線圖
LSB由FSG開發和維護。FSG是一個獨立的非盈利組織,該組織專注於通過發展和促進標准來加速開放源碼軟件的發展。幾年前,一些志願人員發起了LSB項目, LSB項目的目的是發展和改進標准,提高Linux和其它類似系統間的兼容性,使應用軟件可以在任何系統上運行。 LSB標准定義了一個二進制環境和與之相關的標准文檔,在這個二進制環境中,任何一個符合LSB標准的應用程序都能夠正常運行。LSB標准文檔包括了一系列基礎API、庫和互用性標准,還包括了測試套件、開發環境、執行案例和開發文檔。 隨著LSB開發的深入,一些大的Linux發行商開始積極參與其中,一些大型企業,如HP和IBM等也逐漸加入。
2000年5月,自由標准組織正式成立,全面負責LSB計劃。
2001年7月4日,LSB 1.0發布,邁出了Linux標准化道路上重要的一大步。LSB 1.0的規范僅包括了通用LSB(LSB Common)1.0.0。
2002年2月4日,在美國召開的LinuxWorld大會上,HP、IBM、拓林思、SuSE、Red Hat、Caldera和Ximian公司聯合發布了LSB 1.1。LSB 1.1對Linux核心功能和一些組件進行了標准化。它包括一組公共API、一個開發包和一些測試功能。LSB 1.1在1.0的基礎上增加了對IA32架構處理器的支持,規范包括通用LSB 1.1.0和IA32處理器專用規范(LSB IA32)1.1.0。LSB 1.2 LSB 1.2包括了通用LSB規范及對IA32、IA64和PPC32架構處理器的專用規范。LSB 1.3 LSB 1.3在1.2的基礎上又增加了對IBM S/390和S/390X的支持。規范包括通用LSB 1.3、LSB IA32 1.3、LSB IA64 1.3、LSB PPC32 1.3、LSB S390 1.3和LSB S390X 1.3。
2004年9月14日正式發布LSB 2.0。其最大特點是增加了對C++的二進制接口。
2004年10月21日,LSB 2.0.1發布。
2005年7月1日, LSB 3.0發布。
LSB 3.0更新了原來版本的一些基本規范和執行,特別是SUS(Single Unix Specification,單一Unix規范)的升級。以SUS 3.0為基礎。SUS 3.0同時也是IEEE 1003 1-2001標准(POSIX)和ISO/IEC 9945:2003標准。LSB 3.0中最重要的是文檔的重構和LSB上層附加標准的發展。文檔重構的目的是推動LSB未來的發展。LSB 3.0中另一個重要的新特點是引入了對POSIX線程和C++應用的支持,它增加了C++的應用二進制接口(ABI),用於改善代碼互用性。 這一特點意義重大,因為現在的大多數應用都是用C++編寫,通過在LSB中加入C++支持,使數以千計的軟件開發商能以較低成本將他們的應用移植到Linux上,由此帶來Linux應用軟件數量上的突飛猛進。LSB 3.0的文檔結構是附加規范模塊的根基,這些附加規范模塊在核心LSB規范(Core LSB Specification)之上。這些新模塊允許新功能的增加,其中一些功能甚至是被認為在LSB范圍之外的。新模塊還允許LSB以外的組織通過使用LSB確定的框架來添加新功能。LSB 3.0.0 標准文檔,LSB標准發展到了3.0,結構與2.0一樣。LSB 3.0 基於新的C++ 二進制接口,還有其他的改進。另外還包括PAM和FHS 2.3。,以及包括加入gcc3.4,librt,一些新功能和新接口以及新命令等。
三、LSB標准的構成
LSB是一種應用程序二進制接口,主要解決Linux系統與應用程序之間的兼容問題。LSB是在IEEE POSIX源代碼標准和Unix規范基礎上建立起來的,包含多種接口技術。也有一些接口技術未被LSB收取,這些接口大多是開發接口或用戶級工具。LSB可以將源代碼標准擴展至其它領域,例如圖形領域等。此外,LSB還包括一些必要的技術細節,例如支持大型二進制應用軟件平台的二進制執行文件格式等。
LSB主要由以下幾個部分組成,見圖:
圖 LSB組成示意圖
1.文檔
LSB 3.0的文檔結構是附加規范模塊的根基,這些附加規范模塊在核心LSB規范(Core LSB Specification)之上。這些新模塊允許新功能的增加,其中一些功能甚至是被