天天看點

Linux必知詞彙:可移植作業系統接口(Portable Operating System Interface, POSIX)

POSIX表示可移植作業系統接口(Portable Operating System Interface of UNIX,縮寫為 POSIX ),POSIX标準定義了作業系統應該為應用程式提供的接口标準,是IEEE為要在各種UNIX作業系統上運作軟體,而定義API的一系列互相關聯的标準的總稱,其正式稱呼為IEEE 1003,而國際标準名稱為ISO/IEC 9945。此标準源于一個大約開始于1985年的項目。POSIX這個名稱是由理查德·斯托曼(RMS)應IEEE的要求而提議的一個易于記憶的名稱。它基本上是Portable Operating System Interface(可移植作業系統接口)的縮寫,而X則表明其對Unix API的傳承。

POSIX标準意在期望獲得源代碼級别的軟體可移植性。換句話說,為一個POSIX相容的作業系統編寫的程式,應該可以在任何其它的POSIX作業系統(即使是來自另一個廠商)上編譯執行。

POSIX 并不局限于 UNIX。許多其它的作業系統,例如 DEC OpenVMS 支援 POSIX 标準,尤其是 IEEE Std. 1003.1-1990(1995 年修訂)或 POSIX.1,POSIX.1 提供了源代碼級别的 C 語言應用程式設計接口(API)給作業系統的服務程式,例如讀寫檔案。POSIX.1 已經被國際标準化組織(International Standards Organization,ISO)所接受,被命名為 ISO/IEC 9945-1:1990 标準。

POSIX的誕生和UNIX的發展是密不可分的,電氣和電子工程師協會(Institute of Electrical and Electronics Engineers,IEEE)最初開發 POSIX 标準,是為了提高 UNIX 環境下應用程式的可移植性。UNIX于70年代誕生于貝爾實驗室,并于80年代向美各大高校分發V7版的源碼以做研究。加利福尼亞大學伯克利分校在V7的基礎上開發了BSD Unix。後來很多商業廠家意識到UNIX的價值也紛紛以貝爾實驗室的System V或BSD為基礎來開發自己的Unix,較著名的有Sun OS,AIX,VMS。

然而,POSIX 并不局限于 UNIX。許多其它的作業系統,例如 DEC OpenVMS 支援 POSIX 标準,尤其是 IEEE Std. 1003.1-1990(1995 年修訂)或 POSIX.1,POSIX.1 提供了源代碼級别的 C 語言應用程式設計接口(API)給作業系統的服務程式,例如讀寫檔案。POSIX.1 已經被國際标準化組織(International Standards Organization,ISO)所接受,被命名為 ISO/IEC 9945-1:1990 标準。

POSIX 已發展成為一個非常龐大的标準族,某些部分正處在開發過程中。POSIX 與 IEEE 1003 和 2003 家族的标準是可互換的。

Windows NT-based 系統不能直接支援新版POSIX接口,僅支援第一版POSIX v1:ISO/IEC9945-1:1990 版标準。由于僅支援第一版POSIX的Windows NT-based系統不能建立符合POSIX接口标準的線程和窗體、套接字,是以微軟公司提供POSIX相容層Microsoft POSIX subsystem軟體包(Windows Services for UNIX)以支援新版POSIX接口,Windows 系統還可以運作其他POSIX相容層例如Cygwin。

資料來源

• "POSIX 1003.1 FAQ Version 1.12". 2 February 2006.

繼續閱讀