POSIX
POSIX(ポジックス、Portable Operating System Interface)とは、各種UNIX OSを始めとする異なるOS実装に共通のAPIを定め、移植性の高いアプリケーションソフトウェアの開発を容易にすることを目的としてIEEEが策定したアプリケーションインタフェース規格である。POSIXという名前はリチャード・ストールマンがIEEEに提案したものである[1]。末尾の「X」はUNIX互換OSにXがつく名前が多いことからつけられた。ISO/IEC JTC 1/SC 22でISO/IEC 9945として国際規格になっている。
規格の内容はカーネルへのC言語のインタフェースであるシステムコールに留まらず、プロセス環境、ファイルとディレクトリ、システムデータベース(パスワードファイルなど)、tarのアーカイブフォーマットなど多岐にわたる。ただし、単にPOSIXといった場合は、システムコールとライブラリ関数を規定したPOSIX.1 (IEEE Std 1003.1) を指す。
C言語のシステムコールとライブラリ関数を規定した有力な規格としては、他にANSI/ISO CとSUS(Single UNIX Specification、XPG4の後継)があるが、各規格の立場の違いにより、これらが含む関数の種類には差がある。集合の記号で表すと、ANSI/ISO C ⊂ POSIX.1 ⊂ SUS となる。
UNIX系OS以外でも、Microsoft Windows NT系はPOSIX 1.0に準拠しているPOSIXサブシステムを搭載しており、POSIXアプリケーションをそのサブシステム上で実行できる。WTO/TBT協定では、非関税障壁として工業製品は国際規格を尊重して仕様を規定することを提唱しているため、米国政府機関のコンピュータシステム導入要件(FIPS)でPOSIX準拠であること規定したためである。Windows 2000までPOSIXサブシステムを搭載していたが、Windows XPからはServices for UNIXに同梱のInterixサブシステムに役割を譲り、Windows Server 2003 R2やWindows VistaからはSubsystem for UNIX-based Applications(SUA)となった。
Linuxの国際標準を制定するにあたり、LinuxとPOSIXの差に関するTRを作成している。
最初の規格のテストスイートはアメリカ国立標準技術研究所 (NIST) が POSIX Test Suite (POSIX 1990 version) としてオープンソースで提供している。
注釈
関連項目
- Linux - Linux Standard Base
- NIST POSIX Test Suite (POSIX 1990 version)
- 国際化と地域化
- Common Locale Data Repository
- POSIXスレッド
- POSIX 1003.1b