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

Linux の最初のバージョンが Unix の一部に基づいていたというのは本当ですか?

Linux がゼロから書かれたシステムであったとしても、Linux の最初のバージョンは非常に minix に似たものであり、「mini-Unix」でした。 Linus のアナウンスにあります。

ウィキペディアでは、Linux の歴史について簡単に説明しています。このテーマについてもっと知りたい場合は、この本が必要です。そこでは、Linus Torvalds が実装しなければならないシステム コールとその動作方法を知るために Unix の man ページを使用したことがわかります。


最初の Linux カーネルは、UNIX に似た設計を念頭に置いて開発された MINIX でブートストラップする必要がありました。さて、Linus はカーネルを設計する際に UNIX に関する本を使用しました。彼の本の注文日もアーカイブされています。

現在のところ、Linux は UNIX と完全に互換性があるわけではないため、「UNIX ライク」として指定されています (一方、Mac OS X は (完全な) UNIX です)。

あなたの質問のタイトルは単に「Linux」と述べていますが、これはカーネルだけでなく、その他の部分も意味します。カーネルの外側のことを考慮して UNIX と比較すると、さらに似ていると思います。 X などを考えると、Linux カーネルだけでも UNIX にかなり近くなりますが、GNU の部分を考慮すると、さらに近くなります。

カーネルの 0.01 バージョンは引き続きダウンロードできます。ただし、実行どころか、コンパイルできるかどうかはテストしていません。


いいえ

特に、Linux の最初のバージョンが Unix の「一部に基づいていた」と言うのは意味がありません。 Unix カーネルのポートではありませんでした。それは、最初のバージョン [ソースを参照] の Unix コードから始まり、時間の経過とともに置き換えられたわけではありません。 Linus は Unix ソース コードにアクセスできませんでした [インタビュー].

コピー元は API です。同じ API が Linux の最新バージョンにあり、永久に残ります。原則として、Linux は API を削除しません。 Linux (および Linux libc の最初のバージョン) が既存の Unix アプリケーションを実行するために作成されたとき、コピーされるものは必要最小限のものです。これはよく知られている Linux の基本的な機能です。 さまざまな言い方ができますが、ここで議論することは何もありません.

例えば。同じ API が GNU libc (Linux より前) にコピーされています。 API ドキュメント (man から効果的にコピーされた IIRC Linux) ページ)

Unix カーネルと gcc のようなアプリケーションとの間のインターフェースの設計の最良の部分のために、私はそれを言うことさえ嫌です。 「すべてはファイル」です。基本的なファイル操作は、C プログラミング言語の一部として標準化されました。 .私のマンページはC89、つまり1年ほど前を示唆しています。例えば。 Windows は同じ C API を実装しています。ただし、ファイルではない、および/または C が標準に含めていない、非常に多くの厄介なビットを見逃しているため、Linux が特に Unix に似ていることを認めなければなりません。

具体的には、この「最初の」バージョンの Linux の API は、70 のシステム コール、それらの引数リスト、40 のエラー コードです...そして、それらのいずれかを上回る 200 行のターミナル コントロールを定義しています。ビット」。しかし、確かに後にも続きがあります。

他の場所でほのめかされているように、これは少し痛いところです。マイクロソフトが資金を提供した「研究」で取り上げられ、何年にもわたって訴訟(SCO対IBM)が行われてきたため、証拠はありません。 IIRC は最終的に数行のコードを示しました。 「侵害している IP」 (IBM が Linux に追加したと彼らが主張したもの) はすべて、単なる API であることが判明しました。この時点で、API のコピー、別名クリーンルーム リバース エンジニアリングを許可する前例が複数あるにもかかわらず。

他の人が述べたように、Minix との関係はだった よりきつく。私はファイルシステムのフォーマットを信じています Minix から取得しました。データ構造は、ほとんどの抽象的な API よりも実装固有であり、「Minix の一部に基づいている」と言った場合 あなたは必ずしも嘘をついているわけではありません。

Minix は、Unix ライク (または「Unix クローン」、Unix に似ているがそのコードに基づいていない OS を意味する) とも呼ばれます。いずれにせよ、Linux は Unix をベースにしていますが、同じことが Minix にも当てはまるはずです。 (他にもいくつかの Unix クローンがあります。ウィキペディアには、いくつかの独自のものと Windows のさまざまな互換性レイヤーがリストされています)。

<ブロック引用>

私は 386(486) AT クローン用の (無料の) オペレーティング システム (単なる趣味であり、gnu のように大きくて専門的なものではありません) を作成しています。これは4月から醸造されており、準備が整い始めています。 私のOSはminixに多少似ているので、人々がminixで好きなこと/嫌いなことについてフィードバックをお願いします (特にファイルシステムの同じ物理レイアウト (実用的な理由による))。

現在、bash(1.08) と gcc(1.40) を移植しましたが、動作しているようです。これは、私が数か月以内に何か実用的なものを手に入れることを意味し、ほとんどの人が望む機能を知りたい.どんな提案でも大歓迎ですが、それらを実装するとは約束しません :-)

ライナス ([email protected])

PS。はい - minix コードはありません 、およびマルチスレッド fs を備えています。移植性はありません (386 タスク切り替えなどを使用します)。AT ハードディスク以外はおそらくサポートしないでしょう。

Linux
  1. Linuxコミュニティでの信頼の構築

  2. Linuxで完全に放送する最初の

  3. OSとLinuxのバージョンを確認する方法

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

  2. Linux – Unix / linuxファイルのディレクトリ構造情報をどのように検査しますか?

  3. LinuxでMySQLのバージョンを確認する方法

  1. Linuxへの切り替えに関する17の実話

  2. Linuxの哲学は2019年も引き続き関係がありますか?

  3. Linuxを初めて使用する場合:30のインストールストーリー