[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

POSIXとは? わかりやすく解説

POSIX

フルスペル:Portable Operating System Interface
読み方ポジックス

POSIXとは、オペレーティングシステムOS)の一種であるUNIXに関する標準的なインターフェース定めた規格のことである。米国電気電子学会IEEE)によって、IEEE 1003.1として定義されている。

UNIXソースコード無償公開され、各機関において独自の改良拡張が行われたという歴史的変遷を持つ。そのため、UNIX系OSUNIX互換OS呼ばれるバリエーション複数存在する。POSIXは、そのようなUNIX系OS互換性確保するために定義されたものである

一般的にアプリケーションソフトウェアは、計算機有するCPUメモリなどの資源ストレージその他の周辺機器などが持つ機能アクセスする際、OS機能利用してアクセスする。アプリケーションOS機能利用するために提供されているAPIApplication Programming Interface)としては、システムコールや、標準ライブラリOSコマンドなどがある。POSIXは、IEEEと、UNIX関連業界団体であるThe Open Groupが、これらのAPI標準としてを定められている。

POSIXでは、OSとのシステムインタフェースがC言語関数中心とした仕様によって規定されている。UNIX系OS向けのアプリケーション開発者は、POSIXの仕様前提としてアプリケーション開発することによって、POSIXに対応した複数OS移植可能なアプリケーション開発できる

POSIXが仕様規定している領域多岐にわたり、プロセス制御権限管理ファイルおよびディレクトリ端末とのI/Oアーカイブファイル形式スレッド正規表現タイマーシグナルソケット共有メモリOSコマンド引数などを挙げることができる。

POSIXは米国標準的規格として採用されており、FreeBSDなどをはじめとした主要なUNIX系OS多くにおいて、POSIXへの準拠動き進めている。Linuxは、UNIXから派生したわけではなく厳密に言えばUNIX系OSではない(UNIX互換OS呼ばれる)が、POSIXに準拠した開発が行われている。また、かつてWindows NT系OSでも、POSIXに準拠して開発されアプリケーション動作させることができるサブシステム開発実装していた。

接続インターフェースのほかの用語一覧
IEEE:  mLAN  モバイルWiMAX  ニブル  POSIX  P2MP  RPR  リンクアグリゲーション

POSIX 関数

導入

このモジュールは、IEEE 10003.1 (POSIX.1) 標準ドキュメントで 定義された関数へのインターフェースを有しています。 これらの関数は、他の手段からは利用できません。 POSIX.1 としては例えばかなり以前から PHP 3 の一部として open(), read(), write() および close() 関数が定義されていました。 いくつかのよりシステム依存の関数は、以前は利用できませんでしたが、 このモジュールではこれらの関数に対する簡単なアクセス手段を提供する ことにより、これらの問題を解決しようとしています。

警告
posix_getpwnam() のような POSIX 関数で重要な データを取得することができます。 safe mode が有効な場合に、 POSIX関数のどれもアクセスチェックを行うことはできません。 このため、このような環境で処理を行うには、 (configure において --disable-posix を指定して) POSIX 拡張モジュールを無効にしておくことを 強く推奨します。

注意: この拡張モジュールは Windows 環境では利用できません。

インストール手順

POSIX 関数は、デフォルトで有効となっています。POSIX 互換関数を --disable-posix により無効にする ことができます。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
POSIX_F_OK (integer)
ファイルが存在するかどうかを調べます。
POSIX_R_OK (integer)
ファイルが存在し、読み込みが許可されているかどうかを調べます。
POSIX_W_OK (integer)
ファイルが存在し、書き込みが許可されているかどうかを調べます。
POSIX_X_OK (integer)
ファイルが存在し、実行が許可されているかどうかを調べます。
POSIX_S_IFBLK (integer)
ブロックスペシャルファイル。
POSIX_S_IFCHR (integer)
キャラクタスペシャルファイル。
POSIX_S_IFIFO (integer)
FIFO (名前つきパイプ) スペシャルファイル。
POSIX_S_IFREG (integer)
通常のファイル。
POSIX_S_IFSOCK (integer)
ソケット。
注意: これらの定数は PHP 5.1.0 以降で有効です。システムによっては これらのうちのいくつかが使用できない場合があることにも注意してください。

参考

プロセス制御関数に関する節も 役に立つでしょう。

目次

posix_access — ファイルのアクセス権限を判断する
posix_ctermid — 制御する端末のパス名を得る
posix_get_last_error — 直近で失敗した posix 関数が設定したエラー番号を取得する
posix_getcwd — 現在のディレクトリのパス名
posix_getegid — 現在のプロセスの有効なグループ ID を返す
posix_geteuid — 現在のプロセスの有効なユーザ ID を返す
posix_getgid — 現在のプロセスの実際のグループ ID を返す
posix_getgrgid — 指定したグループ ID を有するグループに関する情報を返す
posix_getgrnam — 指定した名前のグループに関する情報を返す
posix_getgroups — 現在のプロセスのグループセットを返す
posix_getlogin — ログイン名を返す
posix_getpgid — ジョブ制御のプロセスグループ ID を得る
posix_getpgrp — 現在のプロセスのグループ ID を返す
posix_getpid — 現在のプロセス ID を返す
posix_getppid — 親プロセスの ID を返す
posix_getpwnam — 指定した名前のユーザに関する情報を返す
posix_getpwuid — 指定 ID のユーザに関する情報を返す
posix_getrlimit — システムリソース制限に関する情報を返す
posix_getsid — プロセスの現在の sid を得る
posix_getuid — 現在のプロセスの実際のユーザ ID を返す
posix_isatty — ファイル記述子が対話型端末であるかどうかを定義する
posix_kill — プロセスにシグナルを送信する
posix_mkfifo — fifo スペシャルファイル(名前付きパイプ)を作成する
posix_mknod — スペシャルファイルあるいは通常のファイルを作成する (POSIX.1)
posix_setegid — 現在のプロセスの実効 GID を設定する
posix_seteuid — 現在のプロセスの実効 UID を設定する
posix_setgid — 現在のプロセスの GID を設定する
posix_setpgid — ジョブ制御のプロセスグループ ID を設定する
posix_setsid — 現在のプロセスをセッションリーダーにする
posix_setuid — 現在のプロセスの UID を設定する
posix_strerror — 指定したエラー番号に対応するシステムのエラーメッセージを取得する
posix_times — プロセス時間を得る
posix_ttyname — 端末のデバイス名を調べる
posix_uname — システム名を得る

POSIX

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/01/11 04:52 UTC 版)

POSIX(ポジックス[1][2]: Portable Operating System Interface)は、オペレーティングシステム (OS) の標準的なインタフェースおよび環境を定義するIEEE規格である[3]ソースコードレベルでの移植性の高いアプリケーションソフトウェアの開発を容易にすることを目的として、主にUNIX系のOSに関して、各OSが共通して持つべきコマンドラインインタプリタ(シェル)、共通のユーティリティプログラム、およびアプリケーションプログラミングインタフェース (API) について定めている[3]。POSIX仕様に準拠したソースコードは、POSIX準拠OSであればどれでも動作させることができる。アプリケーション開発者とシステム実装者の両方から利用されることを意図している。

概要

規格の内容

POSIXのバージョンごとに、定められている項目が異なる。各バージョンで定められている項目を下に示す。

なおPOSIXにはいくつものバージョンがあるので、古い文書などで単に「POSIX」と書いてある場合は、現在「POSIX.1」(IEEE Std 1003.1) と呼ばれているものだけを指している可能性がある。

POSIX.1

POSIX.1 - Core Services (Standard ANSI Cと統合) (IEEE Std 1003.1-1988)

POSIX.1b

POSIX.1b - Real-time extensions (IEEE Std 1003.1b-1993)[注釈 1]

  • 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

名称の由来

この規格は起源をさかのぼると、もともとは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(ポジックス・コンプライアント)と言うが、各OSは、どれくらいPOSIXに適合しているかという程度によって、POSIX完全適合のものからPOSIX部分適合のものまで、多段階に分類することができる。

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

POSIX準拠

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

POSIXにおおむね準拠

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

TRON系の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. ^ 後にlibrt (Realtime Extensions library) となっていった。
  2. ^ その審査料金や認定料や認証後の「POSIX」名の使用料が高額なので[1]、ボランティアらで開発されているオープンなソフトウェアなどは通常そうした余計な費用負担はできず審査を申し込まないので、結果としてPOSIXにほぼ適合していても審査を受けようともしないということが起きている。そのような理由で、実は認証が無いOSでもPOSIXにほぼ適合しているものもある。
  3. ^ ただし、Android NDKを利用する場合に限る。
  4. ^ ほとんどのディストリビューションが該当するが、全てではない。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. ^ a b 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. 26 January 2014閲覧。
  8. ^ a b Hewlett-Packard”. The Open Group. 26 January 2014閲覧。
  9. ^ Silicon Graphics, Inc.”. The Open Group. 26 January 2014閲覧。
  10. ^ Huawei Technology Co., Ltd”. The Open Group. 26 May 2017閲覧。
  11. ^ The Open Brand - Register of Certified Products”. Register of Open Branded Products. The Open Group. 20 May 2015閲覧。
  12. ^ Apple Inc”. Register of Open Branded Products. The Open Group. 20 May 2015閲覧。
  13. ^ Oracle Corporation”. The Open Group. 26 January 2014閲覧。
  14. ^ UnixWare ® 7.1.3 and later”. The Open Group (16 May 2003). 2013年6月10日閲覧。
  15. ^ QNX Achieves New POSIX Certification”. QNX (8 April 2008). 16 January 2016閲覧。
  16. ^ Inspur Co., Ltd”. The Open Group. 26 May 2017閲覧。
  17. ^ POSIX Certification Register”. get.posixcertified.ieee.org. 9 March 2018閲覧。
  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). https://books.google.com/books?id=-6GcSQAVaHgC&q=posix&pg=PA24. 
  20. ^ Solter, Nicholas A.; Jelinek, Jerry; Miner, David (21 March 2011) (英語). OpenSolaris Bible. John Wiley & Sons. ISBN 9781118080313. https://books.google.com/books?id=y8qaxiZNvqAC 
  21. ^ a b c 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

関連項目

外部リンク


POSIX (mmap)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/07/27 00:42 UTC 版)

メモリマップトファイル」の記事における「POSIX (mmap)」の解説

ファイル識別子ファイル先頭からのオフセット長さ指定してマッピング生成する mmap() がPOSIX仕様一部として定義されており、POSIX準拠各種システムUNIXLinuxmacOSOpenVMS などに実装されている。

※この「POSIX (mmap)」の解説は、「メモリマップトファイル」の解説の一部です。
「POSIX (mmap)」を含む「メモリマップトファイル」の記事については、「メモリマップトファイル」の概要を参照ください。

ウィキペディア小見出し辞書の「POSIX」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

「POSIX」の関連用語

POSIXのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



POSIXのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
OSS iPediaOSS iPedia
Copyright © Information-technology Promotion Agency, Japan. All rights reserved 2006-2025
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【POSIX】の記事を利用しております。
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2025 by the PHP Documentation Group.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのPOSIX (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのメモリマップトファイル (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS