web-dev-qa-db-ja.com

「POSIX」の意味は何ですか?

POSIXとは何ですか?私は ウィキペディアの記事 を読んだことがあります - そして私はその用語に出会うたびに読みます。事実は私がそれが何であるかを本当に理解していないということです。

誰もが「POSIXの必要性」を説明することによってそれを私に説明してもらえますか?

773
claws

_ posix _ は、Unix-yオペレーティングシステムによって提供されるアプリケーションプログラミングインタフェース(およびコマンドラインシェルユーティリティなどの付随的な問題)を明確にし、統一するために、 _ ieee _ によって指定された標準ファミリです。システムあなたがPOSIX標準に頼るようにあなたのプログラムを書くとき、あなたはUnixの派生物の大規模なファミリー(Linuxを含むが、それに限定されない!)の中でそれらを容易に移植できることをかなり確かにすることができる。 Posixの一部として標準化されていないLinux APIを使用する場合、将来そのプログラムまたはライブラリを他のUnix-yシステム(MacOSXなど)に移植する場合は、さらに困難になります。

536
Alex Martelli

_ posix _ は:

POSIX(/ ˈpɒzɪks /と発音)または "Portable Operating System Interface [Unix用]" 1 は、Shellと一緒にアプリケーションプログラミングインターフェイス(API)を定義するためにIEEEによって指定された関連標準のファミリーの名前このユーティリティは、Unixオペレーティングシステムの変種と互換性のあるソフトウェア用のインタフェースですが、標準はどのオペレーティングシステムにも適用できます。

基本的には、(ほとんど)共通のAPIとユーティリティを使用することによって、さまざまな種類のUNIXの開発と使用の苦痛を和らげるための一連の手段でした。 POSIX準拠の制限もさまざまなバージョンのWindowsに拡張されました。

65
cletus

私は、教会の「非公式な」説明をさせてください。

POSIXは、「UNIX」およびUNIXに似たシステムを、それらと互換性がないものと区別することを試みる一連の標準です。調達目的で米国政府によって作成されました。これは、既存のコードベースやプログラミングスタッフが持ち運びできないようなシステムを除外するために、米国の連邦調達にさまざまな入札および契約の要件を合法的に指定する方法が必要だという考えでした。

POSIXは事実上...と書かれているため、競合するシステムの大まかに似たセットを記述するために...実装できるような方法で書かれていませんでした。

したがって、たとえば、MicrosoftのNTは、実用的な移植性とUNIXシステムとの互換性の点でPOSIXサブシステムが本質的に無用であったとしても、いくつかの入札を満たすのに十分なPOSIX準拠で書かれました。

UNIX用の他のさまざまな標準が何十年にもわたって書かれてきました。 SPEC1170のようなもの(互換的に実装されなければならない117の関数呼び出しを指定したもの)やSUS(Single UNIX Specification)のさまざまな具体化。

大部分の場合、これらの「規格」は実用的な技術的応用には不十分であった。それらは、議論、法的争議、その他の機能不全の理由で最も存在します。

40
Jim Dennis

POSIXは、理想的なUnixがどのように動作するかを記述した、IEEEおよびThe Open Groupによって提示された一連の標準です。プログラマー、ユーザー、そして管理者は誰でもPOSIX文書に精通することができ、そしてPOSIXに不満のあるUnixが言及されたすべての標準機能を提供することを期待することができます。

Solaris、Mac OS X、IRIX、BSD、およびLinuxのすべてのUNIXの動作は多少異なるため、POSIXは標準的な動作環境を定義しているため、業界の人々にとっては特に便利です。 Cライブラリのほとんどの関数はPOSIXに基づいています。したがって、プログラマーは自分のアプリケーションでそれを使用し、それがほとんどのUnicesにわたって同じように動作することを期待できます。

しかし、Unixの異なる分野は、標準的な分野ではなく、通常は焦点になっています。

POSIXの素晴らしいところは、それを自分で読んでもいいということです。

オープングループ基本仕様第7号

問題7はPOSIX.1-2008として知られていて、そこに新しいものがあります - しかし、POSIX.1のためのグーグル - フーはUnixが何であるかの後ろの全体の歴史を見ることを可能にするでしょう。

28
Jed Smith

POSIXは、クロスプラットフォームソフトウェアの作成を容易にすると考えられていたオペレーティングシステムの標準です。 Unixの世界では特に大したことです。

27
Hank Gay

1985年に、コンピュータ業界の各社の個人が集まってPOSIX(コンピュータ環境用ポータブルオペレーティングシステムインタフェース)標準を開発しました。これは、主にUNIX System Vインタフェース定義(SVID)およびその他の以前の標準化努力に基づいています。これらの努力は米国政府によって促進されました、それはそのトレーニングと調達コストを最小にするために標準的な計算環境を必要としました。 1988年にリリースされたPOSIXは、オペレーティングシステムのAPI、シェル、およびユーティリティインターフェイスを定義するIEEE標準のグループです。 UNIXのようなシステムを対象としていますが、この規格は互換性のある任意のオペレーティングシステムに適用できます。これらの規格が承認されたので、ソフトウェア開発者は、UNIX、Linux、およびその他のオペレーティングシステムのすべての適合バージョンで動作するアプリケーションを開発することができます。

本から:Linuxへの実用的なガイド

5
Koray Tugay

PosixはOSというよりは「OS標準」です。あなたはそれを想像上のOSとして想像することができます、それは実際には存在しません、しかしそれはドキュメンテーションを持っています。これらの論文は、IEEEによって定義された「posix標準」です。これは、米国の大きな標準化団体です。この仕様を実装しているOSは「Posix準拠」です。

政府の規制は、投資にPosix準拠のソリューションを好むため、特に米国の大手IT企業にとって、Posix準拠であることは大きな財務上の利点があります。

OSが完全にposixに準拠しているという報酬は、それがすべてのPosix準拠のアプリケーションをシームレスにコンパイルして実行するという保証です。

Linuxは最も有名なものです。 OSX、Solaris、NetBSDそしてWindows NTもここでプレーします。 FreeおよびOpenBSDは、「ほぼ」Posixに準拠しているだけです。 WinNTのposix準拠は、上記の政府の規制を回避するための疑似的な解決策にすぎません。

2
peterh

POSIXはPortable Operating System Interfaceの略で、アプリケーションの移植性を容易にするために設計されたIEEE標準です。 POSIXは、単一の標準バージョンのUNIXを作成しようとするベンダーのコンソーシアムによる試みです。

2

この標準は、Unixライクなオペレーティングシステムに共通の基礎を提供します。シェルがどのように動作するのか、lsやgrepのようなコマンドから何を期待するのか、そしてCの作者が利用できると期待できるCライブラリの数を指定します。

たとえば、コマンドラインユーザーがコマンドをつなぎ合わせるために使用するパイプは、ここで詳細に指定されています。つまり、Cのpopen(パイプオープン)関数は、ISO C規格ではなくPOSIX規格です。

2
Koray Tugay

POSIXは、オペレーティングシステムまたはプログラムに関する一連の標準を定義しています。目標は、UNIXのようなシステムと互換性のある新しいソフトウェアを書くことです。

たとえば、Linux上で実行されるプログラムは、Solaris、HP-UX、AIXなどの他のUNIX系システムでもコンパイルおよび実行できます。

最も一般的な例は、100%POSIX準拠のGNU Bashgawkユーティリティです。

0
sras

OSを最近のUNIX OSと互換性のあるものにする方法に関する仕様書(青写真)(神のご加護を!)これが、macOSとGNU/Linuxが非常によく似た端末コマンドライン、GUI、ライブラリなどを持っている理由です。どちらもPOSIXブループリントに従って設計されているからです。

POSIXはエンジニアやプログラマーにコーディング方法を教えているのではなく、コーディング方法を教えています。

0
MCH

Posixは、相互運用性、移植性、そしてフォークの使用法やメカニズム、パーミッションなどの他の分野における管理を行います。 / etc、/ var、/ usrなどのファイルシステム標準 。したがって、開発者が例えばLinuxのようなPosix準拠システムの下でプログラムを書くとき、それは通常、常にではないが、IBMのAIXシステムまたは他の商用Unixのような他のposix準拠システム上で動作することが保証される。 Posixはそれがそれがそれが努力する最大の移植性のためのソフトウェア開発を容易にするように持っているのが良いことです。この答えが理にかなっていることを願っています。

私の間違いを指摘してくれたJed SmithとTinkertimに感謝します。 :(

0
t0mm13b

それほど明るくないPOSIXについてのいくつかの事実。

POSIXはシステムコールインタフェースまたはAPIでもあり、30年近く前のものです。

それは ローカルストレージへのシリアル化されたデータアクセス 用に設計され、単一のCPUを持つ単一のコンピュータを使用しています。

セキュリティはPOSIXの設計上の大きな問題ではなく、何年にもわたって数多くの競合状態攻撃を引き起こし、プログラマーはこれらの制限を回避することを余儀なくされています。

深刻なバグがまだ発見されています。より安全なPOSIX API設計で回避できる可能性のあるバグです。

POSIXはユーザーが一度に1つの同期呼び出しを発行し、次のものを発行する前にその結果を待つことを期待しています。今日のプログラマは、全体的なスループットを向上させるために、一度に多数の非同期要求を発行することを期待しています。

この同期APIは、待ち時間が長いことが重要なリモートおよびクラウドオブジェクトへのアクセスには特に適していません。

0
prosti