Unixは、その大きな支持基盤と配布数から、世界中で最も人気のあるオペレーティングシステムの1つである。 元々は1970年代半ばにミニコンピュータやメインフレーム用のマルチタスク・システムとして開発されました。 それ以来、時にはわかりにくいインタフェースや中央の標準化の欠如にもかかわらず、世界中で最も広く使われているオペレーティングシステムの1つに成長しました。 多くのハッカーは、Unix こそが正しいもの、つまり唯一無二のオペレーティング・システムであると感じています。
Unix のバージョンは、パーソナル・コンピュータから Cray Y-MP のようなスーパーコンピュータまで、多くのシステム用に存在します。 パソコン用のUnixのほとんどのバージョンは非常に高価で扱いにくいものです。 この記事を書いている時点では、386用のAT&TのSystem Vの1マシン版は約US$1500です。
Linuxは自由に配布できるUnixのバージョンで、もともとはLinus Torvaldsが開発しました。
Linus は Linux の初期バージョンをインターネット上で無料で公開し、不注意にも史上最大のソフトウェア開発現象のひとつを引き起こした。 今日、Linux は、数千人(それ以上かもしれない)の開発者グループがインターネット上でゆるやかに協力しながら作成、保守しています。Linux のサポートを提供する企業、インストールが簡単なディストリビューションにパッケージする企業、Linux ソフトウェアをプリインストールしたワークステーションを販売する企業が立ち上がりつつあります。 1999年3月には、カリフォルニア州サンノゼで第1回Linux World Expoが開催され、12,000人以上が参加したと報告されている。
Andrew Tanenbaum の Minix オペレーティングシステム (PC 向けのもうひとつのフリーな Unix。非常にシンプルなものですが) に触発されて、Linux は Linus が 386 ベースの PC で動作するシンプルな Unix システムを構築しようとした授業プロジェクトとして始まりました。 これらの議論は、より多くを望む Minix ユーザーのための小規模で学術的な Unix システムの開発に関するものでした。
Linux のごく初期の開発は、80386 保護モードインターフェイスのタスクスイッチ機能を主に扱い、すべてアセンブリコードで書かれていました。 Linus は次のように書いています:
その後、順風満帆でした:まだ大変なコーディングでしたが、いくつかのデバイスを持っており、デバッグはより簡単でした。 この頃からC言語を使うようになったのですが、確かに開発スピードが上がりましたね。 また、この頃から「Minixより優れたMinixを作る」という誇大妄想的な考えを持つようになりました。 私はいつかLinuxでccをリコンパイルできると期待していたのですが・・・
基本的なセットアップに2ヶ月、それからディスクドライバ(マジでバギーですが、私のマシンではたまたま動きました)と小さなファイルシステムを手に入れるまでほんの少し長くかかりました。 それは私が 0.01 を利用可能にした頃で、きれいではなく、フロッピーディスクドライバもなく、ほとんど何も出来ませんでした。 そのバージョンは誰もコンパイルしなかったと思います。 しかし、その時点で私は夢中になっており、Minix を捨て去るまでやめようとは思いませんでした。 0.01 のソースは実行可能でもありませんでした。カーネルソースの初歩の初歩しか含まれておらず、 それをコンパイルして遊ぶために Minix マシンにアクセスすることを前提としていました。 この時点で、Linus は bash (GNU Bourne AgainShell) と gcc (GNU Ccompiler) を動かすことができましたが、他の多くは動作していませんでした。 ここでもハッカー向けのシステムであることがわかる。 カーネルの開発が中心で、ユーザーサポート、文書化、配布などの問題にはまったく取り組んでいなかったのです。 今日、状況はまったく異なっており、Linux の世界で本当に盛り上がっているのは、グラフィカルユーザー環境、インストールが簡単な配布パッケージ、そしてグラフィックユーティリティや生産性スイートなどのハイレベルなアプリケーションに取り組んでいるのです。 素敵なプロジェクトがなく、自分のニーズに合わせて変更できる OS で歯を食いしばりたいと思っていませんか。 Minixで何でも動くのにイライラしていませんか?
1ヶ月前に述べたように、私は AT-386 コンピュータ用の Minix 風のフリー版に取り組んでいます。 これはまだバージョン 0.02 ですが、このバージョンで bash, gcc, GNU make, GNUsed, compress 等を動かすことに成功しています。 さらに数回の改訂の後、Linus はバージョン番号を 0.95 に上げ、システムがまもなく「公式」リリースされるという彼の見通しを反映させました。 (一般に、ソフトウェアは理論的に完成するか、バグがなくなるまで1.0というバージョンナンバーを与えられない)。 これが1992年3月のことである。 それから約1年半後の1993年12月下旬、LinuxカーネルはまだVersion0.99.pl14で、1.0に漸近しているところであった。 バージョン1.0は1994年3月に登場した。 この原稿を書いている時点(1999年3月)で、現在のカーネルバージョンは2.2.6であり、2.3のカーネルバージョンも同時開発中である。 (第13章で説明する gcc コンパイラは、Linus Torvalds のコードに生命を吹き込みました。 GNUツールは当初からLinuxの開発と絡み合ってきました。 これらのツールの重要な貢献により、Free Software Foundation は、付属のユーティリティを含む Linux のディストリビューションを GNU/Linux と呼ぶよう要求しているほどです。 Linux ディストリビューションに付属するユーティリティのほとんどは、BSD から移植されたものです。 ネットワーク・デーモンとユーティリティは特に重要です。 Linux のカーネル・ネットワーキング・コードはゼロから開発されましたが (実際、2、3 回)、デーモンとユーティリティは年代物の BSD です。
今日、Linux は完全な Unix クローンで、X Window System, TCP/IP, Emacs, Web, メール、ニュースなどあらゆるソフトウェアが稼働可能です。 ほとんどの主要なフリーソフトはLinuxに移植されていますし、商用ソフトも利用できるようになっています。 実際、多くの開発者はLinux用のアプリケーションを書くことから始めて、後で他のUnixシステムに移植しています。 また、サポートされるハードウェアの種類も増えています。 多くの人が Linux システムでベンチマークを実行し、Sun Microsystems や Compaq のワークステーションよりも高速であることを発見し、Linux は広範囲のベンチマークで Windows 98 や Windows NT よりも優れた、あるいは同程度の性能を発揮しました。この「小さな」Unix クローンが成長して、パーソナルおよびサーバーコンピューティングの世界全体を取り込むとは誰が想像したでしょうか。