GNU/Linux >> Linux の 問題 >  >> Linux

POSIXとは何ですか? Linux / UNIXユーザーにとってなぜ重要なのですか?

頭字語を聞くか、それについて読むでしょう:POSIX、さまざまなオンラインボードや記事で。プログラマーやシステム開発者はそれについて最も心配しているようです。不思議に聞こえるかもしれません。このテーマについては多くの優れた情報源がありますが、一部の掲示板(簡潔さはその性質の一部です)は、それが何であるかについて詳しく説明しておらず、混乱を招く可能性があります。では、POSIXとは本当に何ですか?

POSIXとは何ですか?

POSIXは実際には問題ではありません。ラベルのように、物事を説明します。 POSIXというラベルの付いたボックスを想像してみてください。 、およびボックス内が標準です。標準は、POSIXが関係する一連のルールと命令で構成されています。 POSIX ポータブルオペレーティングシステムインターフェイスの省略形です。 。これは、アプリケーションプログラム(コマンドラインシェルおよびユーティリティインターフェイスとともに)とUNIXオペレーティングシステム間の言語インターフェイスを定義するIEEE1003.1標準です。

標準への準拠により、UNIXプログラムをあるUNIXプラットフォームから別のUNIXプラットフォームに移動する際の互換性が保証されます。 POSIXの焦点は、主にAT&TのSystemVUNIXおよびBSDUNIXの機能にあります。

オペレーティングシステム間の相互運用性の目標を達成する方法について、標準を詳しく説明し、それに従わなければなりません。 POSIXは、システムインターフェイス、コマンドとユーティリティ、ネットワークファイルアクセスなどをカバーしています。POSIXにはこれ以上のものがあります。

なぜPOSIXなのか

一言で言えば:移植性。

60年以上前、プログラマーは、ソフトウェアを複数のシステムで実行したい場合、コードを完全に書き直す必要がありました。費用がかかるため、これはそれほど頻繁には発生しませんでしたが、移植性は1960年代半ばに、POSIXを介さずに、メインフレームの分野で機能するようになりました。

IBMは、メインフレームコンピューターのSystem/360ファミリーを発表しました。さまざまなモデルに独自の専門分野がありましたが、ハードウェアは同じオペレーティングシステム(OS / 360)を使用できるようになっています。

オペレーティングシステムはさまざまなモデルで実行できるだけでなく、アプリケーションもそのモデルで実行できます。これにより、コストが低く抑えられただけでなく、コンピュータシステムが作成されました。 –連携して機能する可能性のある製品ライン全体のシステム。今日ではすべて一般的です–ネットワークとシステムですが、当時、これは大したことでした!

UNIXが登場したとき、ほぼ同時に、さまざまなメーカーのマシンで動作できるという期待も示されました。ただし、UNIXがさまざまなフレーバーに分岐し始めたとき、これらのUNIXバリアント間でのコードの移植は困難になりました。 UNIXの移植性の約束は失われていました。

この移植性の問題を解決するために、POSIXは1980年代に設立されました。この規格は、AT&TのSystem VUNIXとBSDUNIXに基づいて定義されており、当時2つの最大のバリエーションでした。 POSIXは、オペレーティングシステムの構築方法を制御するために作成されたものではないことに注意してください。どの企業も、UNIXバリアントを自由に設計できます。 POSIXは、アプリケーションがオペレーティングシステムとどのようにインターフェイスするかだけに関心がありました。プログラマーの話では、インターフェースは、あるプログラムのコードが別のプログラムと通信できる方法です。インターフェイスは、プログラムAが特定の種類の情報をプログラムBに提供することを期待しています。同様に、プログラムAは、プログラムBが特定の種類のデータで応答することを期待しています。

たとえば、catコマンドを使用してファイルを読み取りたい場合は、コマンドラインで次のように入力します。

cat myfile.txt

プログラマーの話をあまり聞かずに、catコマンドがオペレーティングシステムを呼び出してファイルをフェッチし、catがファイルを読み取れるようにします。 catはそれを読み取り、ファイルの内容を画面に表示します。アプリケーション(cat)の間には多くの相互作用があります )およびオペレーティングシステム。この相互作用がどのように機能するかは、POSIXが関心を持っていたものです。相互作用が異なるUNIXバリアント間で同じである可能性がある場合、オペレーティングシステム、メーカー、ハードウェアに関係なく、移植性が回復します。

これらすべてがどのように達成されるかに関する詳細は、規格で定義されています。

コンプライアンスは任意です

私たち全員は、少なくとも「ヘルプが必要な場合は、xxxxx –helpと入力してください」のようなメッセージを見たことがあるでしょう。これはLinuxで一般的であり、POSIXに準拠していません。 POSIXはダブルダッシュを必要としませんでした。彼らは1つのダッシュを期待しています。二重ダッシュはGNUに由来しますが、Linuxに害を及ぼすことはなく、その特徴に少し追加されます。同時に、Linuxは、特にシステムコールインターフェイスに関しては、ほとんど準拠しています。これが、Linux、Sys V UNIX、およびBSD UNIXでX、GNOME、およびKDEアプリケーションを実行できる理由です。 ls、cat、grep、find、awkなどのさまざまなコマンドは、さまざまなバリアント間で同じように動作します。

原則として、コンプライアンスは自発的なステップです。コードに準拠している場合は、別のシステムに移動する方が簡単です。コードの書き直しがあったとしても、ほとんど必要ありません。コードがさまざまなシステムで機能する場合、その使用は拡大します。他のシステムを使用している人々は、プログラムの使用から利益を得ることができます。新進のプログラマーにとって、POSIXに準拠したプログラムの書き方を学ぶことは、彼らのキャリアに役立つだけです。 Linuxのコンプライアンス分野に関心のある読者のために、LinuxStandardBaseで多くの優れた情報を見つけることができます。

しかし、私はプログラマーでもシステムデザイナーでもありません…

コンピューターで作業する人の多くは、プログラマーやオペレーティングシステムの設計者ではありません。彼らは、医療記録係、手紙、タスクリスト、口述されたメモなどを書き出す秘書です。他の人は、数字を集計し、データを収集してマッサージし、オンラインストアを運営し、本や記事を書きます(そして私たちの中にはそれらを読む人もいます)。ほとんどすべての仕事で、おそらく近くにコンピューターがあります。

POSIXは、知っているかどうかに関係なく、これらのユーザーにも影響を及ぼします。ユーザーは標準に準拠する必要はありませんが、コンピューターが機能することを期待しています。オペレーティングシステムとプログラムがPOSIX標準に準拠している場合、相互運用性のメリットが得られます。彼らは、マシンが別のシステムと同じように動作するという合理的な期待を持って、あるシステムから別のシステムに移動できるようになります。彼らのデータは引き続きアクセス可能であり、変更を加えることができます。

POSIXやその他の標準は、絶えず進化しています。テクノロジーが成長するにつれて、標準も成長します。標準は、実際には、効率的な方法でタスクを実行するために、人、製造業者、組織などによって使用される合意されたシステムです。あるメーカーのデバイスは、別のメーカーのデバイスと連携できます。考えてみてください。Bluetoothイヤピースは、Androidフォンと同じようにAppleiPhoneでも使用できます。私たちのテレビは、Amazon Prime、BritBox、Huluなどのさまざまなネットワークからのビデオや番組に接続してストリーミングすることができます。今では、携帯電話で心拍数を監視することもできます。これらすべては、主にコンプライアンスから標準まで可能になります。

豊富なメリット。私はそれが好きです。

では、Xはどうですか?

私はそれを認めます、私はPOSIXで「X」が何のためにあるのかを決して言いませんでした。 Opensource.comには、RichardStallmanがPOSIXの「X」の意味を説明する優れた記事があります。これが彼の言葉です:

IEEEは仕様の開発を終了しましたが、簡潔な名前はありませんでした。正確な言葉は覚えていませんが、タイトルには「ポータブルオペレーティングシステムインターフェイス」のようなものがありました。委員会は簡潔な名前として「IEEEIX」を付けました。私はそれが良い選択だとは思いませんでした。発音は醜いです—それは恐怖の叫び声のように聞こえます、「Ayeee!」—それで私は人々が代わりにスペックを「Unix」と呼ぶだろうと思っていました。

GNUはUnixではなく、Unixに取って代わることを目的としていたため、GNUを「Unixシステム」と呼ばれたくありませんでした。したがって、私は人々が実際に使用する可能性のある簡潔な名前を提案しました。特別なインスピレーションはなく、「ポータブルオペレーティングシステム」のイニシャルを取り、「ix」を追加するという、巧妙な方法で名前を付けました。 IEEEはこれを熱心に採用しました。

結論

POSIX標準を使用すると、開発者は同じコードの多くを使用して、多くのオペレーティングシステムでアプリケーション、ツール、およびプラットフォームを作成できます。決して標準に従ってコードを書くことは必須ではありませんが、コードを他のシステムに移植する場合に大いに役立ちます。

基本的に、POSIXはオペレーティングシステムの設計者とソフトウェア開発者を対象としていますが、システムのユーザーとして、私たちはそれを実現するかどうかにかかわらず、POSIXの影響を受けます。あるUNIXまたはLinuxシステムで作業し、その作業を別のシステムに引き継いで問題なく作業できるのは、この標準のおかげです。ユーザーとして、システム全体での使いやすさとデータの再利用において多くのメリットがあります。

元の記事


Linux
  1. UNIX/Linux の umask とは

  2. Unix/Linux での負荷平均とはどういう意味ですか?

  3. Linux/Unix では、.tar.gz と .zip はどちらが重要ですか?

  1. LinuxとUnix:違いは何ですか?

  2. 継続的にキャッシュを削除しないと、Linux システムがカクつくのはなぜですか?

  3. init は正確に何をしますか?

  1. Linuxサーバーとは何ですか?なぜあなたのビジネスにはLinuxサーバーが必要なのですか?

  2. Linuxとは何ですか?非技術ユーザー向けガイド

  3. Linuxシステムの現在のランレベルはどれくらいですか?