| ステータス | Published |
|---|---|
| 開始年 | 1988年 |
| 最新版 |
IEEE Std 1003.1-2024 2024年 |
| 組織 | Austin Group (IEEE Computer Society, The Open Group, ISO/IEC JTC 1/SC 22/WG 15) |
| 関連する標準 | ISO/IEC 9945 |
| ドメイン | アプリケーションプログラミングインタフェース |
| 略称 | POSIX |
| ウェブサイト |
pubs |
POSIX(ポジックス、英: Portable Operating System Interface)は、移植性のあるオペレーティングシステム (OS) のインタフェースおよび環境を定義するIEEE標準規格である。
ソースコードレベルでの移植性の高いアプリケーションソフトウェアの開発を容易にすることを目的として、主にUNIX系のOSが共通して実装しているアプリケーションプログラミングインタフェース (API) 、コマンドラインインタプリタ(シェル)、ユーティリティプログラムについて定めている。
POSIX仕様に準拠したソースコードであれば、POSIX仕様に準拠したOSで動作させることができる。アプリケーション開発者とシステム実装者の両方から利用されることを意図している。
POSIXのバージョンごとに、定められている項目が異なる。各バージョンで定められている項目を下に示す。なおPOSIX.1関係 (API)とPOSIX.2(シェルやユーティリティ)は、POSIX.1-2001で統合され、現在は単に「POSIX」と呼ばれることが多い。ただし古い文書などで単に「POSIX」と書いてある場合は、1988年版のPOSIX.1 (IEEE Std 1003.1-1988) や統合前のPOSIX.1関係 (API)だけを指している可能性がある。
POSIX.1 - Core Services (IEEE Std 1003.1-1988)
POSIX.1b - Real-time extensions (IEEE Std 1003.1b-1993)
POSIX.1c - Threads extensions (IEEE Std 1003.1c-1995)
POSIXスレッドも参照
POSIX.2 - Shell and Utilities (IEEE Std 1003.2-1992)
この規格は起源をさかのぼると、もともとはIEEEの規格番号やISO/IEC標準番号などで呼ばれていたものであるが、それが発展していく途中でPOSIXと改名された。最初、この一群の規格は「IEEE 1003」という名でつくられ、ISO/IEC標準での番号は「ISO/IEC 9945」だった。 1988年に「IEEE Std 1003.1-1988」と呼ばれていたころに、並行して「POSIX」という名称でも呼ばれ始めた。POSIXという名前はリチャード・ストールマンがIEEEに提案したものである。末尾の「X」はUNIX互換OSに「X」の字がつく名前が多いことからつけられた。IEEE側のほうも、番号で呼ぶよりもPOSIXという名称で呼んだほうが発音しやすく憶えやすいと気づき、これを採用すると決め、正式名称という位置づけとなった。
POSIXの規則を守っていることを英語でPOSIX-compliant(ポジックス・コンプライアント)と言う。POSIXに適合している度合いによって、POSIX完全適合のOSからPOSIX部分適合のOSまで、多段階に分類することができる。
IEEEは開発元から申請があればそのOSがPOSIXに適合しているか審査しており、認証を受けたOSはIEEEの公式ウェブサイトで公表されている。認証プログラムのガイドラインが公式サイトに記載されている。ただし審査は有料制。
以下に挙げるOSのいくつかのバージョンは、POSIXのいずれかのバージョンを満たすとしてIEEEから認証を受けている (POSIX-certified)。
以下に挙げるものは、IEEEから公式認証を受けてはいないが、おおむねPOSIXに準拠しているものである。
Nucleus RTOSのように、Unix系OS以外でもPOSIXインタフェースを実装したOSは存在する。
C言語のシステムコールとライブラリ関数を規定した規格としては、他にANSI C/ISO CとSUS(Single UNIX Specification、XPG4の後継)がある。各規格の立場の違いにより、これらが含む関数の種類には差異がある。数学の包含関係記号で表すと、ANSI/ISO C ⊂ POSIX.1 ⊂ SUSとなる。