POSIX(ポジックスLinux用語事典 [POSIX(Portable Operating System Interface for UNIX)]、)は、移植性のあるオペレーティングシステム (OS) のインタフェースおよび環境を定義するIEEE標準規格であるIEEE公式サイト。P1003.1 - Standard for Information Technology--Portable Operating System Interface (POSIX(TM)) Base Specifications, Issue 8。

ソースコードレベルでの移植性の高いアプリケーションソフトウェアの開発を容易にすることを目的として、主に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 POSIX.1 - Core Services (IEEE Std 1003.1-1988) Process Creation and Control Signals Floating Point Exceptions() Segmentation / Memory Violations Illegal Instructions Bus Errors Timers File and Directory Operations Pipes C Library (Standard C) I/O Port Interface and Control Process Triggers Standard ANSI Cを含む POSIX.1b POSIX.1b - Real-time extensions (IEEE Std 1003.1b-1993) Priority Scheduling Real-Time Signals Clocks and Timers Semaphores Message Passing Shared Memory Asynchronous and Synchronous I/O Memory Locking Interface

POSIX.1c POSIX.1c - Threads extensions (IEEE Std 1003.1c-1995)

POSIXスレッドも参照

Thread Creation, Control, and Cleanup Thread Scheduling Thread Synchronization Signal Handling

POSIX.2 POSIX.2 - Shell and Utilities (IEEE Std 1003.2-1992)

Command Interpreter Utility Programs

POSIX.1とPOSIX.2の統合後 POSIX.1-2001 (IEEE Std 1003.1-2001) POSIX.1-2008 (IEEE Std 1003.1-2008) POSIX.1-2017 (IEEE Std 1003.1-2017) POSIX.1-2024 (IEEE Std 1003.1-2024)

名称の由来 この規格は起源をさかのぼると、もともとはIEEEの規格番号やISO/IEC標準番号などで呼ばれていたものであるが、それが発展していく途中でPOSIXと改名された。最初、この一群の規格は「IEEE 1003」という名でつくられ、ISO/IEC標準での番号は「ISO/IEC 9945」だった。 1988年に「IEEE Std 1003.1-1988」と呼ばれていたころに、並行して「POSIX」という名称でも呼ばれ始めた。POSIXという名前はリチャード・ストールマンがIEEEに提案したものである。末尾の「」はUNIX互換OSに「」の字がつく名前が多いことからつけられた。IEEE側のほうも、番号で呼ぶよりもPOSIXという名称で呼んだほうが発音しやすく憶えやすいと気づき、これを採用すると決め、正式名称という位置づけとなった。

POSIX指向のOS POSIXの規則を守っていることを英語でPOSIX-compliant(ポジックス・コンプライアント)と言う。POSIXに適合している度合いによって、POSIX完全適合のOSからPOSIX部分適合のOSまで、多段階に分類することができる。

IEEEは開発元から申請があればそのOSがPOSIXに適合しているか審査しており、認証を受けたOSはIEEEの公式ウェブサイトで公表されているPOSIX Certification Register。認証プログラムのガイドラインが公式サイトに記載されているPOSIX Certification Guide。ただし審査は有料制。

POSIX準拠 以下に挙げるOSのいくつかのバージョンは、POSIXのいずれかのバージョンを満たすとしてIEEEから認証を受けている (POSIX-certified)。

AIX HP-UX IRIX EulerOS macOS (10.5 Leopard以降) Solaris Tru64 UnixWare QNX Neutrino Inspur K-UX INTEGRITY

POSIXにおおむね準拠 以下に挙げるものは、IEEEから公式認証を受けてはいないが、おおむねPOSIXに準拠しているものである。

Android BeOS (結果としてHaikuも含む) Contiki Darwin (macOSおよびiOSのコア) DragonFly BSD FreeBSD illumos Linux LynxOS MINIX MPE/iX NetBSD Nucleus RTOS NuttX OpenBSD OpenSolaris PikeOS Redox RTEMS – POSIX API support designed to IEEE Std. 1003.13-2003 PSE52 SkyOS Syllable Desktop VSTa VMware ESXi Xenix

Nucleus RTOSのように、Unix系OS以外でもPOSIXインタフェースを実装したOSは存在する。

POSIXと他の規格の関係 C言語のシステムコールとライブラリ関数を規定した規格としては、他にANSI C/ISO CとSUS(Single UNIX Specification、XPG4の後継)がある。各規格の立場の違いにより、これらが含む関数の種類には差異がある。数学の包含関係記号で表すと、ANSI/ISO C ⊂ POSIX.1 ⊂ SUSとなる。

(参考情報)POSIX非準拠OS Microsoft Windows

ただしWindows NT系は、Windows 7/Windows Server 2008 R2世代まではPOSIX 1.0に準拠しているPOSIX向けのサブシステムを搭載していて、POSIXアプリケーションをそのサブシステム上で実行できた。貿易の技術的障害に関する協定 (WTO/TBT協定) では、非関税障壁として工業製品は国際規格を尊重して仕様を規定することを提唱しているため、米国政府機関のコンピュータシステム導入要件 (連邦情報処理標準、FIPS) としてPOSIX準拠であることが規定されていたためである。Windows 2000までPOSIXサブシステムを搭載していたが、Windows XPからはServices for UNIXに同梱のInterixサブシステムに役割を譲り、Windows Server 2003 R2やWindows Vistaからは「UNIXベースアプリケーション用サブシステム」(, SUA) となった。

しかしマイクロソフトはWindows 8およびWindows Server 2012よりSUAを非推奨とし、代替手段の一つとしてCygwinのPOSIXエミュレーションモードを紹介するようになった第1回 Windows 8製品版の概要:Windows 8レボリューション(1/3 ページ) - @IT。

Windows 8.1およびWindows Server 2012 R2ではSUAは完全に利用できなくなった。

その後Windows 10では、Windows 10 version 1607以降でWSL (Windows Subsystem for Linux) を搭載したことにより、POSIX準拠のサブシステムを利用できるようになった。WSLではLinuxアプリケーションを実行することもできる。

脚注 注釈

出典

関連項目 POSIXスレッド POSIX 1003.1b :en:C POSIX library Linux Standard Base アメリカ国立標準技術研究所 国際化と地域化 共通ロケールデータリポジトリ The Open Group Common User Access TRONプロジェクト

外部リンク POSIX® Certification