コンテンツにスキップ

POSIX

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Portable Operating System Interface (IEEE 1003)
ステータス Published
開始年 1988年(38年前) (1988)
最新版 IEEE Std 1003.1-2024
2024年(2年前) (2024)
組織 Austin Group (IEEE Computer Society, The Open Group, ISO/IEC JTC 1/SC 22/WG 15)
関連する標準 ISO/IEC 9945
ドメイン アプリケーションプログラミングインタフェース
略称 POSIX
ウェブサイト pubs.opengroup.org/onlinepubs/9699919799/ ウィキデータを編集(英語)

POSIX(ポジックス[1][2]、英: Portable Operating System Interface)は、移植性のあるオペレーティングシステム (OS) のインタフェースおよび環境を定義するIEEE標準規格である[3]。

ソースコードレベルでの移植性の高いアプリケーションソフトウェアの開発を容易にすることを目的として、主にUNIX系のOSが共通して実装しているアプリケーションプログラミングインタフェース (API) 、コマンドラインインタプリタ(シェル)、ユーティリティプログラムについて定めている[3]。

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)

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に提案したものである[4]。末尾の「X」はUNIX互換OSに「X」の字がつく名前が多いことからつけられた。IEEE側のほうも、番号で呼ぶよりもPOSIXという名称で呼んだほうが発音しやすく憶えやすいと気づき、これを採用すると決め、正式名称という位置づけとなった。

POSIX指向のOS

[編集]

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

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

POSIX準拠

[編集]

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

POSIXにおおむね準拠

[編集]

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

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

[編集]
ただしWindows NT系は、Windows 7/Windows Server 2008 R2世代まではPOSIX 1.0に準拠しているPOSIX向けのサブシステムを搭載していて、POSIXアプリケーションをそのサブシステム上で実行できた[21]。貿易の技術的障害に関する協定 (WTO/TBT協定) では、非関税障壁として工業製品は国際規格を尊重して仕様を規定することを提唱しているため、米国政府機関のコンピュータシステム導入要件 (連邦情報処理標準、FIPS) としてPOSIX準拠であることが規定されていたためである[22]。Windows 2000までPOSIXサブシステムを搭載していたが、Windows XPからはServices for UNIXに同梱のInterixサブシステムに役割を譲り、Windows Server 2003 R2やWindows Vistaからは「UNIXベースアプリケーション用サブシステム」(Subsystem for UNIX-based Applications, SUA) となった[21]。
しかしマイクロソフトはWindows 8およびWindows Server 2012よりSUAを非推奨とし、代替手段の一つとしてCygwinのPOSIXエミュレーションモードを紹介するようになった[23][24]。
Windows 8.1およびWindows Server 2012 R2ではSUAは完全に利用できなくなった[21]。
その後Windows 10では、Windows 10 version 1607以降でWSL (Windows Subsystem for Linux) を搭載したことにより、POSIX準拠のサブシステムを利用できるようになった。WSLではLinuxアプリケーションを実行することもできる。


脚注

[編集]

注釈

[編集]
  1. ↑ その審査料金や認定料や認証後の「POSIX」名の使用料が高額なので、ボランティアらで開発されているオープンなソフトウェアなどは通常そうした余計な費用負担はできず審査を申し込まないので、結果としてPOSIXにほぼ適合していても審査を受けようともしないということが起きている。そのような理由で、実は認証が無いOSでもPOSIXにほぼ適合しているものもある。
  2. ↑ ただし、Android NDKを利用する場合に限る。
  3. ↑ ほとんどのディストリビューションが該当するが、全てではない。Linux Standard Baseを参照。

出典

[編集]
  1. ↑ Linux用語事典 [POSIX(Portable Operating System Interface for UNIX)]
  2. ↑ “POSIX™ 1003.1 Frequently Asked Questions (FAQ Version 1.18)” (2020年6月13日). 2021年5月6日閲覧。 “It is expected to be pronounced pahz-icks, as in positive, not poh-six, or other variations.”
  3. 1 2 IEEE公式サイト。P1003.1 - Standard for Information Technology--Portable Operating System Interface (POSIX(TM)) Base Specifications, Issue 8
  4. ↑ “POSIX 1003.1 FAQ Version 1.12” (2006年2月2日). 2010年12月29日閲覧。
  5. ↑ POSIX Certification Register
  6. ↑ POSIX Certification Guide
  7. ↑ “IBM”. The Open Group. 2014年1月26日閲覧。
  8. 1 2 “Hewlett-Packard”. The Open Group. 2014年1月26日閲覧。
  9. ↑ “Silicon Graphics, Inc.”. The Open Group. 2014年1月26日閲覧。
  10. ↑ “Huawei Technology Co., Ltd”. The Open Group. 2017年5月26日閲覧。
  11. ↑ “The Open Brand - Register of Certified Products”. Register of Open Branded Products. The Open Group. 2015年5月20日閲覧。
  12. ↑ “Apple Inc”. Register of Open Branded Products. The Open Group. 2015年5月20日閲覧。
  13. ↑ “Oracle Corporation”. The Open Group. 2014年1月26日閲覧。
  14. ↑ “UnixWare ® 7.1.3 and later”. The Open Group (2003年5月16日). 2013年6月10日閲覧。
  15. ↑ “QNX Achieves New POSIX Certification”. QNX (2008年4月8日). 2016年1月16日閲覧。
  16. ↑ “Inspur Co., Ltd”. The Open Group. 2017年5月26日閲覧。
  17. ↑ “POSIX Certification Register”. get.posixcertified.ieee.org. 2018年3月9日閲覧。
  18. ↑ Schweikhardt, Jens. “POSIX utilities”. FreeBSD. 2019年4月12日閲覧。
  19. ↑ Mark Halper (7 November 1994). “HP 3000 sales catch market by surprise”. Computerworld (IDG Enterprise) 28 (4).
  20. ↑ Solter, Nicholas A.; Jelinek, Jerry; Miner, David (21 March 2011) (英語). OpenSolaris Bible. John Wiley & Sons. ISBN 9781118080313
  21. 1 2 3 “POSIX and UNIX Support in Windows”. 2018年8月10日閲覧。
  22. ↑ Federal Information Processing Standard (FIPS) 151-2 - ウェイバックマシン(2014年2月20日アーカイブ分)
  23. ↑ “Features Removed or Deprecated in Windows Server 2012”. Microsoft Docs. 2022年2月17日閲覧。
  24. ↑ 第1回 Windows 8製品版の概要:Windows 8レボリューション(1/3 ページ) - @IT

関連項目

[編集]

外部リンク

[編集]