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

936
claws 2009-11-23 14:42.

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

「POSIXの必要性」についても説明してもらえますか?

13 answers

647
Alex Martelli 2009-11-23 14:47.

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

POSIX7が定義する最も重要なこと

  1. C API

    次のようなものでANSICを大幅に拡張します。

    • より多くのファイル操作:mkdirdirnamesymlinkreadlinklink(ハードリンク)、 、poll()、、statsyncnftw()
    • プロセスおよびスレッド:forkexeclwaitpipe、semaphors sem_*、共有メモリ(shm_*kill、スケジューリングパラメータ(nicesched_*)、 、、sleepmkfifosetpgid()
    • ネットワーキング: socket()
    • メモリ管理:mmapmlockmprotectmadvisebrk()
    • ユーティリティ:正規表現(reg*

    これらのAPIは、依存する基本的なシステムコンセプトも決定forkします。たとえば、プロセスのコンセプトが必要です。

    多くのLinuxシステムコールは、例えば、特定のPOSIX C API関数を実装し、Linux対応をするために存在しsys_writesys_read...これらのシステムコールの多くは、しかし、Linux固有の拡張を持っています。

    主要なLinuxデスクトップ実装:glibc。多くの場合、システムコールに浅いラッパーを提供します。

  2. CLIユーティリティ

    例えば:cdlsecho、...

    多くのユーティリティは、対応するCAPI関数の直接シェルフロントエンドですmkdir

    主要なLinuxデスクトップの実装:小さなもののためにGNUのCoreutilsは、大きなもののために別々のGNUプロジェクト:sedgrepawk、...いくつかのCLIユーティリティは、バッシュで実装されている組み込み関数として。

  3. シェル言語

    例えば、 a=b; echo "$a"

    主要なLinuxデスクトップの実装:GNUBash。

  4. 環境変数

    例:HOMEPATH

    PATH スラッシュがPATH検索を防ぐ方法など、検索セマンティクスが指定されます。

  5. プログラムの終了ステータス

    ANSI Cは、成功のために、失敗のために、0または残りの実装を定義したままにします。EXIT_SUCCESSEXIT_FAILURE

    POSIXは以下を追加します:

    • 126:コマンドは見つかりましたが、実行できません。

    • 127: コマンドが見つかりません。

    • > 128:信号で終了します。

      しかし、POSIXは128 + SIGNAL_IDBashが使用するルールを指定していないようです。https://unix.stackexchange.com/questions/99112/default-exit-code-when-process-is-terminated

  6. 正規表現

    BRE(基本)とERE(拡張)の2つのタイプがあります。Basicは非推奨であり、APIを壊さないようにするためだけに保持されています。

    これらはgrepCAPI関数によって実装され、CLIユーティリティ全体で使用されます。たとえば、デフォルトでBREを受け入れ、EREは-E

    例えば: echo 'a.1' | grep -E 'a.[[:digit:]]'

    Linuxの主要な実装:glibcは、のようなプログラムがバックエンドとして使用できるregex.hの下の関数を実装しますgrep

  7. ディレクトリ構造

    例:/dev/null/tmp

    LinuxのFHSは大幅にPOSIXを拡張します。

  8. ファイル名

    • / パス区切り文字です
    • NUL 使用できません
    • .cwd..
    • ポータブルファイル名
      • フルパスには最大14文字と256文字を使用します
      • 以下のみを含めることができます。 a-zA-Z0-9._-

    参照:ファイルシステムのposixコンプライアンスとは何ですか?

  9. コマンドラインユーティリティのAPI規則

    必須ではなく、POSIXで使用されますが、他の場所ではほとんどなく、特にGNUでは使用されません。しかし、確かに、制限が厳しすぎます。たとえば、1文字のフラグのみ(例-a)、ダブルハイフンの長いバージョン(例--all)はありません。

    広く使用されているいくつかの規則:

    • - ファイルが期待されるstdinを意味します
    • --フラグを終了します。たとえばls -- -l-l

    参照:Linuxコマンドラインスイッチと引数の標準はありますか?

  10. 「POSIXACL」(アクセス制御リスト)。たとえば、のバックエンドとして使用されますsetfacl

    これは撤回されましたが、Linuxをsetxattr含むいくつかのOSに実装されました。

誰がPOSIXに準拠していますか?

多くのシステムはPOSIXに厳密に従っていますが、標準を維持しているOpenGroupによって実際に認定されているシステムはほとんどありません。注目すべき認定済みのものは次のとおりです。

  • OS X(Apple)Xは、10とUNIXの両方を表します。2001年頃にリリースされた最初のApplePOSIXシステムでした。参照:OSXはPOSIX OSですか?
  • AIX(IBM)
  • HP-UX(HP)
  • Solaris(Oracle)

ほとんどのLinuxディストリビューションは非常に準拠していますが、準拠チェックを支払いたくないため、認定されていません。InspurのK-UXとHuaweiのEulerOSは2つの認定された例です。

認定システムの公式リストは次の場所にあります。 https://www.opengroup.org/openbrand/register/また、wikiページでも。

ウィンドウズ

Windowsは、一部のプロフェッショナルディストリビューションにPOSIXを実装しました。

これはオプション機能であったため、プログラマーはほとんどのエンドユーザーアプリケーションでこれを信頼できませんでした。

Windows8ではサポートが非推奨になりました。

  • MicrosoftWindowsの7POSIX実装は現在どこにありますか?
  • https://superuser.com/questions/495360/does-windows-8-still-implement-posix
  • 機能のリクエスト: https://windows.uservoice.com/forums/265757-windows-feature-suggestions/suggestions/6573649-full-posix-support

2016年に、「Windows SubsystemforLinux」と呼ばれる新しい公式のLinuxのようなAPIが発表されました。これには、Linuxシステムコール、ELFの実行、/procファイルシステムの一部、Bash、GCC(TODOはおそらくglibc?)apt-getなどが含まれます。https://channel9.msdn.com/Events/Build/2016/P488したがって、WindowsでPOSIXのすべてではないにしても多くを実行できるようになると思います。ただし、エンドユーザーではなく開発者/デプロイメントに焦点を当てています。特に、WindowsGUIへのアクセスを許可する予定はありませんでした。

公式のMicrosoftPOSIX互換性の歴史的概要: http://brianreiter.org/2010/08/24/the-sad-history-of-the-microsoft-posix-subsystem/

Cygwinは、Windowsに「実質的なPOSIX API機能を提供する」ためのよく知られたGPLサードパーティプロジェクトですが、「Windowsで実行する場合は、ソースからアプリケーションを再構築する」必要があります。MSYS2は、Cygwinにさらに機能を追加しているように見える関連プロジェクトです。

アンドロイド

Androidには独自のCライブラリ(Bionic)があり、Android Oの時点ではPOSIXを完全にはサポートしていません:Android POSIXと互換性がありますか?

ボーナスレベル

Linuxの標準ベースはさらにPOSIXを拡張します。

非フレームインデックスを使用すると、はるかに読みやすく、検索しやすくなります。 http://pubs.opengroup.org/onlinepubs/9699919799/nfindex.html

grepping用のHTMLページの完全なzipバージョンを入手します。POSIXCAPI関数のリストはどこにありますか?

76
cletus 2009-11-23 14:44.

POSIXは次のとおりです。

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

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

45
Jim Dennis 2009-11-23 16:55.

チャールズな「非公式」の説明をさせてください。

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

POSIXは事後的に書かれたので...大まかに類似した競合システムのセットを説明するために...実装できる方法で書かれていませんでした。

したがって、たとえば、MicrosoftのNTは、一部の入札に適格となるのに十分なPOSIX準拠で作成されています... POSIXサブシステムは実用的な移植性とUNIXシステムとの互換性の点で本質的に役に立たなかったとしても。

UNIXに関する他のさまざまな標準は、何十年にもわたって作成されてきました。SPEC1170(互換性のある実装が必要な1170の関数呼び出しを指定)やSUS(Single UNIX Specification)のさまざまな化身のようなもの。

ほとんどの場合、これらの「標準」は実際の技術的アプリケーションには不十分でした。それらは、議論、法的な論争、およびその他の機能不全の理由で最も存在します。

31
Hank Gay 2009-11-23 14:44.

POSIXは、クロスプラットフォームソフトウェアの作成を容易にするはずのオペレーティングシステムの標準です。これは、Unixの世界では特に大きな問題です。

29
Jed Smith 2009-11-23 14:46.

POSIXは、IEEEとThe Open Groupによって発表された一連の標準であり、理想的なUnixがどのように動作するかを説明しています。プログラマー、ユーザー、および管理者はすべてPOSIXドキュメントに精通し、POSIXに準拠したUnixが上記のすべての標準機能を提供することを期待できます。

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

ただし、Unixの多様な領域が、標準的な領域ではなく、通常は焦点になります。

POSIXの優れている点は、自分で読んでも大丈夫だということです。

OpenGroupの基本仕様の問題7

Issue 7はPOSIX.1-2008として知られており、そこには新しいものがあります。ただし、POSIX.1用のGoogle-fuなどを使用すると、Unixの背後にある歴史全体を確認できます。

8
Koray Tugay 2015-04-28 09:14.

1985年に、コンピューター業界全体の企業の個人が協力してPOSIX(コンピューター環境用のポータブルオペレーティングシステムインターフェイス)標準を開発しました。これは、主にUNIXシステムVインターフェイス定義(SVID)およびその他の初期の標準化の取り組みに基づいています。これらの取り組みは、トレーニングと調達のコストを最小限に抑えるための標準的なコンピューティング環境を必要とする米国政府によって促進されました。1988年にリリースされたPOSIXは、オペレーティングシステムのAPI、シェル、およびユーティリティインターフェイスを定義するIEEE標準のグループです。UNIXライクなシステムを対象としていますが、この標準は互換性のあるすべてのオペレーティングシステムに適用できます。これらの標準が受け入れられるようになったので、ソフトウェア開発者は、UNIX、Linux、およびその他のオペレーティングシステムのすべての準拠バージョンで実行されるアプリケーションを開発できます。

本から:Linuxの実用ガイド

4
peterh - Reinstate Monica 2017-02-11 02:55.

PosixはOSとしての機能であり、「OS標準」です。実際には存在しない架空のOSとして想像できますが、ドキュメントがあります。これらの論文は、米国の大きな標準化団体であるIEEEによって定義された「posix標準」です。この仕様を実装するOSは「Posix準拠」です。

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

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

Linuxは最もよく知られているものです。OSX、Solaris、NetBSD、WindowsNTもここで再生されます。FreeBSDとOpenBSDは、Posixに「ほぼ」準拠しているだけです。WinNTのposix準拠は、上記のこの政府規制を回避するための疑似ソリューションにすぎません。

3
Koray Tugay 2015-04-15 00:56.

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

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

3
Farruh Habibullaev 2019-02-26 19:44.

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

0
sras 2015-10-14 02:12.

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

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

最も人気のある例GNU Bashは、100%POSIXコンプライアンスとgawkユーティリティです。

0
t0mm13b 2009-11-23 14:50.

Posixは、相互運用性、移植性、およびフォークの使用法とメカニズム、パーミッション 、および/ etc、/ var、/ usrなどのファイルシステム標準などの他の領域を管理 ます。したがって、開発者がLinuxなどのPosix準拠システムでプログラムを作成する場合、IBMのAIXシステムやUnixの他の商用バリアントなどの別のposix準拠システムでの実行が常に保証されるとは限りません。Posixは、ソフトウェア開発を容易にして、最大限の移植性を実現することを目指しています。この答えが理にかなっていることを願っています。

私のエラーを指摘してくれたJedSmith&Tinkertimに感謝します-私の悪い!!! :(

0
MCH 2018-05-25 23:25.

OSを最新のUNIXOSと互換性を持たせる方法に関する仕様(青写真)(神が彼を祝福してくれますように!)。これが、macOSとGNU / Linuxが非常によく似たターミナルコマンドライン、GUI、ライブラリなどを持っている理由です。どちらもPOSIXブループリントに従って設計されているためです。

POSIXは、エンジニアやプログラマーにコーディング方法ではなく、何をコーディングするかを指示します。

Related questions

MORE COOL STUFF

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは、夫に会ったとき、典型的な交際のアドバイスに逆らいました。

マイケルシーンが非営利の俳優である理由

マイケルシーンが非営利の俳優である理由

マイケルシーンは非営利の俳優ですが、それは正確にはどういう意味ですか?

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

特徴的なスターのコリン・エッグレスフィールドは、RomaDrama Liveでのスリル満点のファンとの出会いについて料理しました!加えて、大会での彼のINSPIREプログラム。

「たどりつけば」をオンラインでストリーミングできない理由

「たどりつけば」をオンラインでストリーミングできない理由

ノーザンエクスポージャーが90年代の最も人気のある番組の1つになった理由を確認するには、Blu-rayまたはDVDプレーヤーをほこりで払う必要があります。

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖は、世界で2番目に大きいボイリング湖です。そこにたどり着くまでのトレッキングは大変で長いですが、努力する価値は十分にあります。

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

サロンからのヘアトリミングや個人的な寄付は、油流出を吸収して環境を保護するのに役立つマットとして再利用できます。

ホワイトハウスの最も記憶に残る結婚式を見てください

ホワイトハウスの最も記憶に残る結婚式を見てください

過去200年以上の間にホワイトハウスで結婚したのはほんの数人です。彼らは誰でしたか、そしてそこで結婚式を獲得するために何が必要ですか?

Netflixのジョエルマクヘイルとのジョエルマクヘイルショーは、ジョエルマクヘイルにぴったりの車を復活させます

Netflixのジョエルマクヘイルとのジョエルマクヘイルショーは、ジョエルマクヘイルにぴったりの車を復活させます

ジョエル・マクヘイル、マイク・コルター(スクリーンショット:Netflix)「私の神よ、これは1つのことを変えます。」これは、ジョエル・マクヘイルとのジョエル・マクヘイルショーの最後のジョークです。リアリティ番組の嘲笑と寛大なスナキネスの時間は、なじみのある顔を見つけます。

チームロケットは20年ぶりにポケモンシリーズでアッシュを破った

チームロケットは20年ぶりにポケモンシリーズでアッシュを破った

画像経由:@pancakeparadox(Twitter)。1997年にポケモンシリーズが初公開されて以来、チームロケット(またはラテンアメリカではチームロケット)として知られる悪役のグループは、何度もアッシュに直面してきました。

今週の科学技術でトランプがめちゃくちゃになったことすべて

今週の科学技術でトランプがめちゃくちゃになったことすべて

画像:ゲッティ私たち全員が千年もの間生きていて、私たちの体が燃える風によってほこりと長引く悲鳴だけに押し流されたと考えるのは驚くべきことです。私たちがそうしていないことを除いて、それはトランプ政権の最初の週の終わりであり、驚くほど多くの恐ろしいことがすでに起こっています。

あなたの「マイクロピッグ」が代わりに通常のピッグになってしまったとしても驚かないでください

あなたの「マイクロピッグ」が代わりに通常のピッグになってしまったとしても驚かないでください

そして今、あることを手に入れていると思っていたが、まったく別のことをしてしまった男の話。CBSニュースは、彼女が「ミニブタ」であるという誤ったふりをしてエスターを養子にしたカナダ人のスティーブジェンキンスの心温まる物語をもたらします。これは、特にせいぜいゴールデンレトリバーまたはセントバーナードをストラップします。

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya shared a sweet photo in honor of boyfriend Tom Holland's 26th birthday Wednesday

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

シーレン「Ms.JuicyBaby」ピアソンは、先月脳卒中で入院した後、「もう一度たくさんのことをする方法を学ばなければならない」ため、言語療法を受けていることを明らかにしました。

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

オスカー受賞者の世紀半ばの家には、3つのベッドルーム、2つのバス、オーシャンフロントの景色があります。

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、生後4か月の娘、モナコに母乳育児をしていると語った。

Come diventare Web Developer?

Come diventare Web Developer?

Vorresti diventare web developer e non sai da dove cominciare?! Qui troverai tutte le risposte necessarie, anche io non sapevo che strada intraprendere ma voglio aiutarti a non commettere i miei stessi errori. Cosa imparare? Le competenza essenziali per qualsiasi web developer sono almeno tre.

投資ノート:Bioscout AU$300万シード

投資ノート:Bioscout AU$300万シード

Bioscoutは、農家を運転席に置くという使命を負っています。Artesian(GrainInnovate)やUniseedと並んで、最新のシードラウンドでチームを支援できることをうれしく思います。問題真菌症による重大な作物の損失は、農民にとって試練であることが証明されています。

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

遠隔医療は、パンデミック後の時代では新しいものではなく、時代遅れの分野でもありません。しかし、業界を詳しく見ると、需要と供給の強力な持続可能性と、米国で絶え間ない革命となる強力な潜在的成長曲線を示しています。

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

2021年は、世界的なベンチャーキャピタル(VC)の資金調達にとって記録的な年でした。DealStreetAsiaによると、東南アジアも例外ではなく、この地域では年間で記録的な25の新しいユニコーンが採掘されました。

Language