web-dev-qa-db-ja.com

LinuxですべてのUnixコマンドが書き直されましたか?

Linux用に書き直されたコマンドと、Unixから保持されたコマンドを教えてください。

45
Jay Harwalkar

OSの2つの非常に異なる部分が混乱しているようです。それらはしばしば交換可能に参照されるので、それは理解できますが、それは技術的に正しくないので、あなたの質問は誤った前提に基づいています。たぶんあなたが尋ねたいと思う質問を十分に調査し、うまく答えるためには、短い歴史のレッスンが必要です。

まず、UNIXがありました。基本的に、当時のUNIXは AT&T UNIXシステム を意味し、最初に登場しました。しかし、AT&T UNIXはフリーではなくなったので、Richard StallmanはGNUプロジェクトを開始し、 Free であるUnixシステムを作成しました。したがって、名前 GnuはUnixではありません、略してGNU。GNUの計画は1983年に公開され、 開発は1984年に開始 です。

1990年代初頭までに、GNUはほとんどのUNIXユーティリティを最初から再実装していました。Wikipediaリスト システム全体のいくつかのコンポーネント書き換えられなかった(TeX、X Window System、およびMachマイクロカーネルは、書き換えられなかったコンポーネントの例として挙げられています)が、ほとんどの場合、AT&Tの再利用を回避するという目標を満たすために、ユーザーランドツールは最初から書き直されました(またはむしろ、非フリー)コード、およびコマンドラインオプションを追加して機能を拡張します。その結果、GNUユーティリティは、元のインスピレーションを引き出したツールよりも常に強力でした。

その時点で、GNUには1つの重要なコンポーネントがまだありませんでした:an オペレーティングシステムカーネル、これによりすべてが可能になります他のOSを実行していない実際のコンピューターで一緒に作業します。 1991年に、Linus Torvaldsはおもちゃのプロジェクトに取り組み始めました。最終的にはLinuxとして知られるようになりました。 基本的に、当時の新しいプロジェクトについて学ぶ学校のプロジェクト32ビット Intel 80386 CP で、非常にシンプルなものから始まりましたが、最終的には実際に使用可能なオペレーティングシステムカーネルに変わり始めました。しかし、ユーザーランドソフトウェアはありませんでした。Linux自体にはシェルがありません。 、カーネルの初期化以外のシステム起動機能、テキストエディター、グラフィカルインターフェイス、nothingはありません。カーネルは車のエンジンのようなものです。便利な車を作るために不可欠ですが、その上では役に立ちません所有している(便利な車の場合、ホイール、トランスミッション、ステアリング、運転者が座っている場所、燃料タンク、その他のエネルギー貯蔵庫などが必要です)。Linuxカーネルは最終的に配布されましたGNU General Public License、の下では、GNU softwareと同じです。

それで人々は2つをペアにし始めました。あなたは、Unixに似たユーザーランドを、Unixからのアイデアに基づいたカーネル( [〜#〜] posix [〜#〜] に類似していることを含む)と共に、好きなだけハックでき、費用もかかりませんでした。特にLinuxディストリビューションが一般的になる前は、機能させるために少し手を加える必要がありましたが、それに時間を費やす用意があった。

最近、GNUは独自のカーネルを提供します。おそらく聞いたことがないかもしれませんが、それは GNU Hurd と呼ばれています。しかし、Hurdは1990年代初頭、Linuxが愛好家や改造者の間で注目を集め始めたので、開発者の間で最も注目されたのは、LinuxカーネルとほとんどがGNUのユーザーランドの組み合わせでした。

また、最近では、多くのUnixシステムがGNUユーザーランドの一部をインストールするか、管理者が簡単にインストールできるようにしています。GNU bash、 GNU Compiler Collection、GNU Cライブラリ(バニラまたはパッチを適用)など)。

さらに悪いことに、一部のシステムはLinuxカーネルを使用していますが、GNUユーザーランドをまったく使用していません。この広く使用されている例については、基本的には Android OS を検討してください。 Linuxカーネルとカスタムユーザーランドの組み合わせ。

これは重要ですこれは、GNU、Linux、およびさまざまなUnix間の線を大幅にぼかすためです( NIXは1つしかありません が、多くのUnixがあり、さらに nixのようなOS )です。 Linuxについて質問しているときは、GNU/Linuxシステムについて質問することがよくあります。しかし Debian GNU/kFreeBSD を検討してください。これは、Linuxをまったく使用せずに、FreeBSDカーネルの上でGNUユーザーランドを実行します。または、たとえば、簡単にインストール various GNUたとえば、coreutilsを含むパッケージ 。Mac OS XにはGNUユーザーランドの一部も含まれていると思います。または上記のAndroidを検討してください。

最後に、使用可能なGNU systemは非GNUコードを実行し、非GNUシステムはGNUコードですが、GNUユーティリティには非GNUコードが含まれていません。

94
a CVn