Linux用に書き直されたコマンドと、Unixから保持されたコマンドを知りたいのですが?
Linux用に書き直されたコマンドと、Unixから保持されたコマンドを知りたいのですが?
回答:
OSの2つの非常に異なる部分を混同しているようです。それらはしばしば互換的に参照されるので理解できますが、技術的に間違っているので、あなたの質問は間違った前提に基づいています。あなたがたぶん質問したい質問を完全に探索し、うまくいけば答えるために、短い歴史のレッスンが必要です。
最初に、UNIXがありました。基本的に、当時のUNIXはAT&T UNIXシステムを意味し、最初に登場しました。しかし、AT&T UNIXは非フリーになったため、Richard StallmanはGNUプロジェクトを開始して、Freeの Unixシステムを作成しました。したがって、Gnuという名前はUnixではなく、GNUと略されます。GNUの計画は1983年に公開され、開発は1984年に始まりました。
1990年代初頭までに、GNUはほとんどのUNIXユーティリティをゼロから再実装していました。 ウィキペディアには、書き換えられていないシステム全体のコンポーネントがいくつかリストされています(TeX、X Window System、およびMachマイクロカーネルは、書き換えられていないコンポーネントの例として言及されています)が、ほとんどの場合、ユーザーランドツールは、 AT&T(またはむしろ、非フリー)コードの再利用を回避し、コマンドラインオプションを追加して機能を拡張するという目標。その結果、GNUユーティリティは、元のインスピレーションを引き出したツールよりも定期的に強力でした。
その時点で、GNUには重要なコンポーネントが1つもありませんでした。オペレーティングシステムカーネルは、他のOSを実行していない実際のコンピューターですべてが連携できるようにします。1991年、Linus Torvaldsは、最終的にLinuxとして知られるようになる玩具プロジェクトに取り組み始めました。基本的には当時の新しい32ビットIntel 80386 CPUについて学ぶための学校プロジェクトであり、非常にシンプルなものから始まりましたが、最終的には実際に使用可能なオペレーティングシステムカーネルに変わり始めました。しかし、ユーザーランドソフトウェアはありませんでした。Linux自体には、シェル、カーネル初期化以外のシステム起動機能、テキストエディター、グラフィカルインターフェイス、何もありません。。カーネルは車のエンジンのようなものです。有用な車を作るために不可欠ですが、それ自体では役に立ちません(有用な車の場合、車輪、トランスミッション、ステアリング、運転者が座る場所、燃料タンクまたはその他のエネルギー貯蔵庫などが必要です)。Linuxカーネルは、最終的にGNUソフトウェアと同じ GNU General Public Licenseの下で配布されました。
それで、人々は2つを組み合わせ始めました。Unixに似たユーザーランドと、Unixのアイデアに基づいたカーネル(POSIXによく似ているものを含む)を入手し、必要なだけハッキングできるソースコードを完備し、費用はかかりません。 。特にLinuxディストリビューションが一般的になる前は、物事を機能させるのに少し手間がかかりましたが、ある程度の時間を費やそうとする人々がある程度使えるように十分に仕上げられました。
最近では、GNUは独自のカーネルを提供しています。おそらく聞いたことがないでしょうが、それはGNU Hurdと呼ばれています。しかし、Hurdは、Linuxが趣味や趣味の人の間で勢いを増し始めた1990年代初頭には存在しなかったため、開発者の間で最も注目されたのはLinuxカーネルとほとんどGNUユーザーランドの組み合わせでした。
また、最近では、多くのUnixシステムがGNUユーザーランドの一部をインストールするか、管理者が簡単にインストールできるようにします。他の非GNUシステムでは、GNU bash、GNU Compiler Collection、GNU Cライブラリ(バニラまたはパッチ済み)などが表示される場合があります。
さらに悪いことに、一部のシステムはLinuxカーネルを使用していますが、GNUユーザーランドはまったく使用していません。これの広く使用されている例については、Android OSを検討してください。AndroidOSは、基本的にカスタムユーザーランドと結合されたLinuxカーネルです。
これは、GNU、Linux、さまざまなUnixの間の境界を大幅に曖昧にするため、重要です(UNIXは1つだけですが、多くのUnixと、さらに多くのUnixライクなOSがあります)。Linuxについて尋ねるとき、GNU / Linuxシステムについて尋ねることは非常に頻繁です。しかし、Debian GNU / kFreeBSDを検討してください。DebianGNU / kFreeBSDは、FreeBSDカーネルの上でGNUユーザーランドを実行し、Linuxをまったく使用していません。または、たとえばSolarisでは、coreutilsなどのさまざまなGNUパッケージを簡単にインストールできます。Mac OS XにもGNUユーザーランドの一部が付属していると思います。または、上記のAndroidを検討してください。
最終的に、使用可能なGNUシステムは非GNUコードを実行し、非GNUシステムはGNUコードを実行する可能性がありますが、GNUユーティリティには非GNUコードが含まれていません。