POSIX

POSIX(Portable Operating System Interface)とは



POSIX(ポジックス)は、[オペレーティングシステム]間の互換性を高めるために、IEEE(米国電気電子学会)が策定した標準規格です。この規格は、主にUNIX系のOSを対象としており、異なるOS間でもアプリケーションソフトウェアを容易に移植できるようにすることを目的としています。

具体的には、POSIXは以下のような要素について標準的なインターフェースを定義しています。

コマンドラインインタプリタ(シェル): ユーザーがコマンドを入力・実行するためのインターフェース
共通ユーティリティプログラム: ファイル操作、テキスト処理など、OS上で一般的に利用されるプログラム
アプリケーションプログラミングインターフェース (API): プログラムがOSの機能を利用するためのインターフェース

POSIXに準拠したOSであれば、POSIX規格に沿って書かれたプログラムは、特別な変更なしに動作させることが可能になります。これにより、開発者は特定のOSに依存しない、よりポータブルなソフトウェアを開発できるようになります。

POSIXの規格内容



POSIX規格は、複数のバージョンが存在し、それぞれ定義されている内容が異なります。主なバージョンと内容は以下の通りです。

POSIX.1 (IEEE Std 1003.1)


コアサービス: プロセスの生成と制御、シグナル処理、浮動小数点例外、メモリ違反、タイマー、ファイル・ディレクトリ操作、パイプ、Cライブラリ、I/Oポートインターフェース、プロセストリガーなどが含まれます。

POSIX.1b (IEEE Std 1003.1b)


リアルタイム拡張: 優先度スケジューリング、リアルタイムシグナル、クロックとタイマー、セマフォ、メッセージパッシング、共有メモリ、非同期・同期I/O、メモリロックインターフェースなどが含まれます。

POSIX.1c (IEEE Std 1003.1c)


スレッド拡張: スレッドの生成、制御、クリーンアップ、スケジューリング、同期、シグナル処理などが含まれます。

POSIX.2 (IEEE Std 1003.2)


シェルとユーティリティ: コマンドインタプリタ、ユーティリティプログラムなどが含まれます。

名称の由来



POSIXは、当初はIEEEの規格番号(IEEE 1003)やISO/IEC標準番号(ISO/IEC 9945)で呼ばれていましたが、1988年頃から「POSIX」という名称が使われるようになりました。

この名称は、リチャード・ストールマンが提案したもので、末尾の「X」はUNIX互換のOSによく使われる「X」に由来しています。IEEE側も、覚えやすく発音しやすいという理由から、この名称を採用しました。

POSIX指向のOS



POSIXの規則にどの程度準拠しているかによって、OSは「完全適合」から「部分適合」まで多段階に分類されます。IEEEは、申請があったOSに対して適合性の審査を行い、認証を受けたOSは公式サイトで公表されます。

POSIX認証を受けたOSの例としては、いくつかのUNIX系OSやリアルタイムOSなどがあります。また、認証を受けていないものの、POSIXに準拠しているOSも多く存在します。

POSIX認証を受けたOSの例


いくつかのバージョンのUNIX系OS
いくつかのリアルタイムOS

POSIXに概ね準拠しているOSの例


認証を受けていないUNIX系OS
* TRON系のNucleus RTOSなど、一部の非UNIX系OS

POSIXと他の規格の関係



C言語のシステムコールやライブラリ関数を規定する規格としては、他にANSI C/ISO CやSUS(Single UNIX Specification)があります。これらの規格の関係は、ANSI/ISO C ⊂ POSIX.1 ⊂ SUS と表現できます。これは、ANSI/ISO Cの規格が最も基本的な部分を規定し、POSIX.1がそれを拡張、SUSがさらにPOSIX.1を拡張した形であることを示しています。

POSIX非準拠OSとWindowsの変遷



Microsoft Windowsは、基本的にPOSIX非準拠のOSです。しかし、過去にはPOSIXサブシステムを搭載し、POSIXアプリケーションの実行を可能にしていました。

Windows NT系では、Windows 7/Server 2008 R2世代までPOSIX 1.0準拠のサブシステムを持っていましたが、Windows 8以降は非推奨となり、後に廃止されました。

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

まとめ



POSIXは、異なるOS間でのソフトウェア移植性を高めるための重要な規格であり、多くのOS開発者やアプリケーション開発者にとって不可欠な存在です。その柔軟性と互換性への貢献は、コンピューター技術の発展に大きな役割を果たしています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。