Linux
為什麼大多數 Linux 發行版不兼容 POSIX?
為什麼大多數 Linux 發行版不兼容 POSIX?我在很多地方都看到了它們不符合的情況(例如Mostly POSIX-compliant),但沒有真正的解釋來支持這一點。
C 庫和/或工具可以做些什麼來解決這個問題(即不對核心本身進行修改)?需要做什麼?
假設的副本是詢問哪個 Linux 發行版是 POSIX 兼容的;這是在問為什麼大多數 Linux 發行版不符合 POSIX 標準。我要求提供具體細節(即某些功能或命令不兼容),而不是特定發行版未(嘗試)獲得認證的原因。
@PhilipCouling 的這條評論(謝謝!)很好地解釋了這一點:
合規性和認證是不同的主題。答案指向與(不)合規主題無關的(重新)認證成本。
POSIX 沒有指定核心介面,因此 Linux 在很大程度上是無關緊要的。它確實指定了系統介面、各種工具和 C 標準的擴展,它們可以存在於任何核心之上。它不是 POSIX 兼容的,因為它沒有被提及,或者它是 POSIX 兼容的,因為它沒有被提及,由您選擇。
有 UNIX® 認證的 Linux 發行版,因此使用 Linux 擁有完全符合 POSIX 的作業系統當然是可能的。華為的 EulerOS 是有的,如果你願意,你可以購買。其餘大多數人還沒有付錢,因此無法訪問測試套件來檢查一致性。
他們是否會在實踐中滿足這一點尚不清楚,但有些人確實比其他人更努力。我懷疑某些 BSD 比大多數 Linux 發行版更接近,但這是一個猜測:例如,我知道
execlp("cd", "/", NULL)
在大多數 Linux 發行版上都失敗了,但適用於許多 BSD 並且是 POSIX 所要求的。