← ホームへ戻る

POSIXとは?OS間の互換性を実現する標準規格の仕組みと歴史

🗓 2026年8月13日

異なるオペレーティングシステム(OS)間でソフトウェアをスムーズに動作させるためには、共通の「ルール」が必要です。その役割を担うのがPOSIX(Portable Operating System Interface)です。POSIXは、アプリケーションプログラミングインターフェース(API)の標準規格であり、開発者が一度書いたコードを、異なるOS上でも最小限の修正で動作させる「移植性」を高めるために策定されました。

この規格は、IEEE、The Open Group、およびISO/IEC JTC 1/SC 22/WG 15からなる共同作業グループ「Austin Group」によって管理・開発されています。もともとは1984年に始まったプロジェクトがベースとなっており、1988年に最初の正式な規格(IEEE Std 1003.1-1988)として公開されました。

Key Facts

  • 正式名称: Portable Operating System Interface (IEEE 1003)
  • 目的: OS間のAPI共通化によるソフトウェアの移植性向上
  • 管理団体: Austin Group(IEEE, The Open Group, ISO/IECの共同体)
  • 最新バージョン: IEEE Std 1003.1-2024(2024年6月14日公開)
  • 関連規格: ISO/IEC 9945

POSIXの進化と構成

POSIXは時代に合わせて拡張され、単一の文書から複雑な仕様群へと進化してきました。1997年以降は「Single UNIX Specification (SUS)」という仕様に基づき、POSIXの内容が更新される形式が採用されています。

初期の主要コンポーネント(1997年以前)

初期のPOSIXは、機能ごとに以下のような区分で定義されていました。

  • POSIX.1: コアサービス。プロセス制御、信号(シグナル)、ファイル操作、標準Cライブラリ、端末インターフェースなどを含みます。
  • POSIX.1b: リアルタイム拡張。優先度付きスケジューリング、共有メモリ、セマフォ、非同期I/Oなどを定義しています。
  • POSIX.1c: スレッド拡張。スレッドの作成、制御、同期、およびシグナル処理を規定しています。
  • POSIX.2: シェルとユーティリティ。コマンドインタプリタや標準的なユーティリティプログラムを定義しています。

現代のPOSIX(2014年以降)

現在のPOSIXドキュメントは、大きく分けて以下の2つの要素で構成されています。

  1. POSIX.1 (2013年版など): 基本定義、システムインターフェース、コマンドおよびユーティリティを包括した仕様書。
  2. POSIX準拠テスト: 規格への適合性を検証するためのテストスイート(VSX-PCTS)です。

最新の2024年版では、C17言語標準との整合性が図られています。

OSの準拠レベルと互換性の実態

すべてのOSが完全にPOSIXに準拠しているわけではありません。準拠の度合いによって、いくつかのカテゴリーに分類されます。

完全認証済みOS

自動テストをパスし、正式に認証を受けたOSです。macOS(Leopard以降)やAIX、z/OS、VxWorksなどが含まれます。

部分的な準拠(Compliant)

認証は受けていないものの、多くのAPIを実装しているOSです。代表的なものにLinux(多くのディストリビューション)やFreeBSD、OpenBSD、Android(NDK経由)などがあります。

互換レイヤーによる準拠

OS自体は非準拠ですが、中間層(互換レイヤー)を介してPOSIX環境を提供するケースです。WindowsにおけるWSL(Windows Subsystem for Linux)やCygwin、IBM iのPASEなどがこれに当たります。

POSIX準拠状況のまとめ
準拠区分 特徴 代表的な例
認証済み (Certified) 公式テストをパスし認証を保持 macOS, AIX, z/OS
部分的準拠 (Partially Conformant) 主要な機能を実装しているが未認証 Linux, FreeBSD, Android
互換レイヤー経由 サブシステムやライブラリで実現 WSL, Cygwin, PASE

技術的な論争と実装の差異

規格の策定過程では、実装の詳細を巡って議論が起こることもあります。有名な例として、dfduコマンドにおけるデフォルトのブロックサイズ(512バイトか1024バイトか)という論争があります。POSIXはディスクの物理的な特性を反映して512バイトを規定しましたが、ユーザーの利便性を重視するGNUチームなどは1024バイトを支持しました。この差異を制御するために、POSIXLY_CORRECTという環境変数が導入されました。

Frequently Asked Questions

POSIXに準拠していることのメリットは何ですか?

最大のメリットはソフトウェアの移植性です。POSIX準拠のAPIを使用して開発すれば、あるUNIX系OS向けに作成したプログラムを、別の準拠OSへ最小限の変更で移植することが可能になります。

LinuxはPOSIX準拠と言えますか?

厳密には、多くのLinuxディストリビューションは公式な「認証」を受けていないため、完全準拠とは呼ばれません。しかし、実用上のほとんどの機能においてPOSIX規格に従っており、「部分的準拠(Compliant)」と見なされています。

WindowsでPOSIX環境を利用する方法はありますか?

はい。Microsoftが提供するWSL(Windows Subsystem for Linux)を利用することで、Windows上でLinuxバイナリをネイティブに実行でき、POSIX準拠の環境を得ることができます。また、Cygwinなどのサードパーティ製ツールも利用可能です。

POSIXとSUS(Single UNIX Specification)の違いは何ですか?

POSIXはIEEEなどが策定する広範な標準規格であり、SUSはThe Open Groupが定義するUNIXの仕様です。1997年以降、この2つは密接に連携しており、SUSの仕様がPOSIXに反映される形で統合的に管理されています。

References

  1. "POSIX.1 FAQ". The Open Group. 13 June 2020. Retrieved 20 February 2023.
  2. "IEEE 1003.1-2024". IEEE Standards Association.
  3. "Shell Command Language - The Open Group Base Specifications Issue 7, 2013 Edition". Retrieved 28 April 2020.
  4. "Introduction". The Open Group Base Specifications Issue 7, 2018 edition. Retrieved 22 July 2021.
  5. "JimIsaak - POSIX Impact". sites.google.com. Retrieved 15 September 2022.
  6. "A Backgrounder on IEEE Std 1003.1". Footnotes.
  7. "The origin of the name POSIX". stallman.org. Retrieved 26 September 2024.
  8. Stoughton, Nicholas. "An Update On Standards". .
  9. "IEEE Standard Portable Operating System Interface for Computer Environments" (PDF). p. 172.
  10. PASC Status (including POSIX) (Report). . 4 December 2003. Retrieved 26 September 2024.