跳轉到

POSIX 標準:為跨硬體平台系統程式設計建立的全球統一法律框架#

版圖割據的代價:1980 年代的 UNIX 巴別塔#

1980 年代中期的 UNIX 市場,是一場經典的割據亂局。AT&T 有 System III/System V;柏克萊有 4.xBSD;微軟與 SCO 買來 AT&T 授權推出 Xenix;Sun 有 SunOS(BSD 系);IBM、HP、DEC 各有自家 UNIX 變體(AIX、HP-UX、Ultrix)。表面上都姓 UNIX,實際上系統呼叫與工具語義各行其是:訊號處理、終端機控制、檔案鎖的行為在不同系統上差異足以讓可攜程式崩潰。

企業用戶的痛最實際:買了 IBM 主機再買 HP 工作站,軟體要重寫;換廠商等於被綁架。「第二供應商」的市場邏輯(避免被單一廠商鎖定)要求介面統一——這是經濟需求對技術標準的直接驅動。

/usr/group 與 IEEE 1003:標準化的誕生#

標準化運動的先鋒是使用者社群而非廠商。1984 年,加拿大使用者團體 /usr/group(UNIFORUM 的前身)率先發布一套 UNIX 介面標準,證明「以系統呼叫介面而非原始碼來定義 UNIX」是可行思路。1985 年,IEEE 成立 P1003 委員會接手此工作;1988 年,IEEE Std 1003.1-1988 問世,這就是 POSIX(Portable Operating System Interface,"X" 傳統上代表 UNIX 血統)。

POSIX 的聰明之處在於只定義介面,不定義實作:它規定 open、fork、exec、signal 等系統呼叫與工具必須「像 UNIX 一樣表現」,但不規定核心怎麼寫。任何系統只要通過認證測試套件(NIST 的 FIPS 151 等曾以之為採購門檻),就是 POSIX 系統。這份「法律框架」的條文精確到爭議行為的處置(例如訊號到達時系統呼叫回傳 EINTR),因為委員會成員包含了各大廠商、貝爾實驗室元老(包括 Dennis Ritchie 本人)與學界代表——標準是談判桌上的平衡藝術。

政府採購:最強的制度推手#

POSIX 的擴散動力,很大程度來自美國聯邦政府的採購法規。1980 年代,美國國家標準與技術研究院(NIST,當年稱 NBS)頒布 FIPS 151,要求政府資訊系統採購必須符合 POSIX——數十億美元的政府訂單瞬間變成標準的執法工具。廠商可以互鬥,但沒有人敢放棄政府市場;POSIX 由此從委員會文件變成產業現實。

耐人尋味的是微軟的參與:Windows NT(1993)內建 POSIX 子系統,動機正是政府標案——蓋茨的團隊深諳「標準即准入證」的道理。1990 年代後期,微軟甚至收購 Softway Systems(Interix,完整 POSIX 環境),最終演化為今日 Windows 10/11 的 WSL(Windows Subsystem for Linux, 2016)與 WSL2——三十年的標準引力,把 UNIX 語義拉進了最封閉的商業系統。

POSIX 與自由軟體:攻守一體的雙刃#

對自由軟體運動,POSIX 意義重大且微妙:

防禦面:GNU 計畫自始以「UNIX 相容」為目標,POSIX 提供了明確的相容性基準——Stallman 在 1980 年代的 GNU 宣言中即主張以 UNIX 介面為藍本,因為「熟悉的介面降低遷移成本」。Linux 核心自诞生起即以追隨 POSIX 為務,這使其對企業客戶具備「法律意義上的可預期性」。

進攻面:POSIX 讓自由系統能合法宣稱「與商業 UNIX 同級」——程式只要寫在 POSIX 介面上,就能在 GNU/Linux、BSD、AIX 間自由遷徙。標準打破了廠商鎖定,而鎖定打破之日,就是免費系統搶走市場之時。1990 年代末,GNU/Linux 能從大學玩具升級為企業選項,POSIX 認證生態功不可沒。

緊張面:POSIX 的保守性也曾被批評為束縛——它固化了 1980 年代的介面缺陷(如訊號語義、narrow char 的國際化不足)。後續的 POSIX.1b/1c(即時執行緒標準,1993-1995)與 POSIX.1-2001(合併大修)持續修補;Linux 部分特性(如 epoll)則乾脆走在標準之外,再由其他系統跟進——標準與創新的張力,至今未解。

今日:一個名字,一片大陸#

POSIX 至今仍以 Issue 8(POSIX.1-2024,與 SUSv5 合併發布)持續修訂,守護範圍擴及執行緒、即時、RE 附加議題。它的現代繼承者隨處可見:macOS 宣稱 POSIX 認證(XNU 的 BSD 層)、FreeBSD/NetBSD 對標 POSIX、Android 的 Bionic libc 大幅對齊、連 IBM z/OS 都提供 POSIX 介面。1990 年代確立的介面契約,成為所有現代類 UNIX 系統共同的法律血統。

從制度史的視角看,POSIX 完成了一次罕見的成就:在商業巨頭的版圖戰爭中,以標準之手劃定了公有領域。它證明了一件事——作業系統的競爭最終不在「誰的功能多」,而在「誰的介面被世界採用為法」。UNIX 的原始碼或許版權森嚴,但 UNIX 的語義自 POSIX 之後屬於全人類;正是這份語義的公共化,讓 1991 年一個芬蘭學生的業餘專案,得以站上全球系統的中心舞台。