FOSS 開放標準/Linux 標準基礎
GNU/Linux 作業系統由 Linux 核心本身以及其他系統軟體和工具/實用程式組成。大多數系統軟體來自 GNU 專案。[1] 此外,為了使作業系統對大多數人有用,它必須與一些應用程式軟體一起提供支援。基於社群的歷史和對 GNU/Linux 的支援,以及 Linux 核心和 GNU 軟體許可證的性質,導致許多人使用核心、來自 GNU 的系統軟體以及其他可能的 FOSS 實用程式/工具,新增一些他們認為有用的應用程式軟體,並將所有這些組合在一起形成一個可工作的軟體包。這個可工作的軟體包被稱為 GNU/Linux 發行版或發行版。因此,GNU/Linux 作業系統存在於非常多的發行版中。[2] 大量可用的發行版,再加上發行版中包含的大多數軟體(如果不是全部)都是 FOSS,因此可以自定義以適應特定發行版的需求,導致了發行版之間相當程度的二進位制和配置不相容性。一些不相容性問題包括不同的庫版本、軟體包格式以及目錄和檔案佈局的差異。人們認識到,如果要讓 GNU/Linux 作為對專有作業系統的合法替代方案被主流計算完全接受和支援,就需要減少這些不相容性,以便原始碼軟體包可以在發行版之間乾淨地編譯,並且二進位制版本可以在所有發行版之間正常執行。Linux 標準基礎專案 (LSB)[3] 試圖透過為 GNU/Linux 指定一個標準來做到這一點。
Linux 標準基礎是自由標準組織的一個專案。它試圖開發和推廣一套二進位制標準,以提高 GNU/Linux 及其他類似系統之間的相容性。這些標準也將使軟體應用程式能夠在任何符合標準的系統上執行。
雖然 LSB 專案的主要目標是透過指定和推廣其使用的標準來提高 GNU/Linux 發行版之間的相容性,但它並不限制規範僅適用於 GNU/Linux 環境。LSB 規範的編寫方式使其可以輕鬆地部署在任何類 UNIX 作業系統上,無論是原生還是作為相容性層。透過更多工作,它也可以部署在其他作業系統上。
LSB 是一個基於社群的專案,任何人都可以透過參與各種 LSB 郵件列表來為其做出貢獻。LSB 標準在 Mandrakesoft、Miracle Linux、Novell、Progeny、Red Flag、Red Hat、IBM、Oracle、Veritas、MySQL 等商業軟體供應商中獲得了相當好的支援。
LSB 包含一個通用的規範和特定於體系結構的規範。特定平臺的完整規範由通用規範加上一個體系結構規範組成。當前支援的體系結構為 IA32 和 IA64(Intel 32 位和 64 位處理器)、PPC32 和 PPC64(IBM 的 32 位和 64 位 PowerPC 系列)、S390(IBM 的 S390 處理器)和 S390X(IBM zSeries 處理器)以及 AMD64(AMD 64 位處理器)。
LSB 定義了一組用於原始碼的應用程式程式設計介面 (API) 和用於已編譯二進位制檔案的應用程式二進位制介面 (ABI)。符合標準的實現必須支援 LSB 中的所有 ABI,但並非所有原始碼級 API。
LSB 分為規範模組,其中規範模組指的是一個或多個函式的唯一集合,這些函式對於特定組的執行時實現具有價值。當前可用的模組有 LSB-Core、LSB-C++、LSB-Graphics 和 LSB-I18N。LSB-Core 和 LSB-C++ 都有通用和特定於體系結構的規範,而 LSB-Graphics 和 LSB-I18N 只有通用規範。表 10 總結了當前可用的模組。[4]
| LSB 模組 | ||
|---|---|---|
| 模組 | 功能區域 | 可用體系結構 |
| ELF | 通用,特定於處理器的 | |
| LSB-Core | LSB | 通用,特定於處理器的 |
| 打包 | 通用,特定於處理器的 | |
| LSB-CXX | LSB-C++ | 通用,特定於處理器的 |
| LSB-Graphics | 圖形 | 通用 |
| LSB-I18n | OpenI18n | 通用 |
LSB 的最新版本是 3.0.0。LSB 2.0.1 已提交給 ISO,成為 GNU/Linux 的國際標準。
這是 Linux 標準基礎的核心模組。此模組提供所有符合標準的應用程式和庫所依賴的基本系統介面、庫和執行時環境。它為以下領域提供規範
- 可執行檔案和連結格式 (ELF)
- 基礎庫
- 實用程式庫
- 命令和實用程式
- 執行環境
- 系統初始化
- 使用者和組
- 軟體包格式和安裝
這些規範廣泛使用來自其他機構的現有標準化 API 和 ABI。一些規範性參考包括來自 ISO POSIX、系統 V 介面定義 (SVID) 和檔案系統層次結構標準 (FHS) 的參考。
特別是,LSB-Core 規範包含 ISO POSIX (ISO/IEC 9945) 中描述的許多介面[5],並指定這些介面的行為應與 POSIX 標準中規定的完全相同。LSB 的長期計劃也與 ISO/IEC 9945 融合。
困擾許多不同 GNU/Linux 發行版的問題之一是軟體包分發中使用的各種格式。LSB 透過指定應用程式應以 LSB 中定義的 RPM 軟體包格式進行打包,或提供符合 LSB 的安裝程式(例如,透過呼叫 LSB 命令和實用程式)來解決此問題。這意味著雖然鼓勵以 Red Hat 軟體包管理器 (RPM) 格式提供軟體包,但 LSB 並不強制使用 RPM 程式或資料庫。
這是 LSB 的 C++ 模組。它透過提供系統介面、庫和用於使用 C++ 程式語言構建的應用程式的執行時環境來補充核心介面。
規範性引用包括 LSB-Core、IOS POSIX 和 ISO/IEC 14882 C++ 語言標準。
它為以下領域提供規範
- 低階系統資訊
- 基礎庫
- 包資訊
此規範定義了符合 LSB 系統上找到的圖形介面。規範性引用包括 LSB-Core 以及來自 X.Org 基金會的圖形庫和規範。
它為以下領域提供規範
- 圖形庫
- OpenGL 庫
- 包資訊
此模組對應於 OpenI18N 專案的 OpenI18N 全球規範。
LSB 2.0.1 已提交給 ISO,用於透過 ISO PAS(公開可用規範)流程作為 GNU/Linux 的國際標準,並且最近被批准為標準 ISO 23360。
ISO GNU/Linux 標準的可用性是 GNU/Linux 開發中的一個重要里程碑,具有象徵意義。它表明 GNU/Linux 操作環境已經成熟,現在已正式被認可為一個成熟的主流計算平臺。因此,迄今為止由於對其長期可行性和國際接受性存在不確定性而一直不願使用 GNU/Linux 的公司和政府,現在有信心將其與其他更成熟的作業系統平等對待。ISO GNU/Linux 標準也將有助於 FOSS 的接受和使用,因為許多 FOSS 產品是在 GNU/Linux 上實現的,並且它可以說是最著名的 FOSS 產品。
符合 LSB 的GNU/Linux 發行版可以獲得此類認證。LSB 認證計劃由 The Open Group[6]代表 Free Standards Group 執行,The Open Group 是一個供應商和技術中立的聯盟,以確保中立性和機密性。認證費用保持在最低限度,以鼓勵開發人員、獨立軟體供應商 (ISV) 和 GNU/Linux 發行版獲得 LSB 認證。
LSB 認證目前適用於以下方面
- LSB 執行時環境
- LSB 應用程式
- LSB 國際化執行時環境
一旦某個特定產品通過了適用的認證測試套件,開發人員和供應商便會被授予使用 LSB 認證商標的許可證。
- ↑ GNU 作業系統 http://www.gnu.org
- ↑ DistroWatch http://distrowatch.com
- ↑ Linux 標準基礎專案 http://www.linuxbase.org
- ↑ LSB,“LSB 3.0 入門” http://www.linuxbase.org/build/lsb30.html
- ↑ ISO POSIX (2003) http://www.unix.org/version3/
- ↑ The Open Group http://www.opengroup.org