Linuxの歴史に関する世界観です。
OSが生まれる以前のコンピュータは、それぞれの業務の種類に応じてそれぞれのシステムが作られることが一般的だったが、これはコストがかかる上に収益の少ないモデルだった。
OSの概念は1960年代に生まれ、OSによって全ての業務に同じシステムを使うことができるようになった。
OSの始祖的な存在はIBM System/360であり、これはメインフレームのシリーズとして上位互換性を保って今でも使われている。
古いコンピュータ(1.メインフレーム・ミニコン)も参照のこと。
1960年代中ごろに、Multicsと呼ばれるOSが、MITを中心に、米AT&Tのベル研究所やゼネラル・エレクトロニックなどを中心とするグループによって開発された。
Multicsはタイムシェアリングシステムで、とてもたくさんの機能を持ったOSだったが、複雑さから実用にならず、Multics(複数の)をもじってUNIX(単一の)と呼ばれるOSが、ベル研究所のケン・トンプソンらのグループによって開発された。
AT&Tは当時独占禁止法の制限があり、コンピュータ業界に参入することを禁じられていたため、UNIXはパブリックドメインでソースコードを公開する形で提供された。
このUNIXはシンプルで安定したシステムであり、同時にソースコードが公開され自由に改良することができるものであったため、大学や研究所などに爆発的に普及していく。
UNIXはC言語で書かれていることもあり、さまざまなプラットフォームに移植可能なものであったため、さまざまなコンピュータに移植され、大学のOSの講義もUNIXをベースに教えられることになった。
しかしながら、UNIXは次第に独占的なものへと変わっていく。
まず、商用UNIX企業が「AT&Tから正式にライセンスを受けたUNIXだけがUNIXの名前を名乗れる」という、UNIXの名称で儲けるようになった。
そして、AT&Tの独占禁止法が解体され、AT&TのUNIXはパブリックドメインでなくなり、クローズドソースになり、今まで使えていたパブリックドメインのUNIXコードは使えなくなった。
大学で教えるためにUNIXのソースコードを使うこともできなくなり、大学では実装ではなく理論を中心に教えるようになった。
1977年より、UNIXを改良した派生版として有名だった、ビル・ジョイやカリフォルニア大学バークレー校によるUNIXソフトウェア集である、「BSD」と呼ばれるOSがあった。
このBSDから、AT&Tの権利のあるコードを削除したものが、ネット上で配布されるようになる。これが、のちのFreeBSDなどの「BSD系UNIX」となる。
また、1983年にGNUプロジェクトを創始したリチャード・ストールマンは、完全にフリーなUNIXの代替品を作ろうと、GNUの開発を始める。
しかしながら、BSDは386対応に後れを取り、カリフォルニア大学バークレー校がUSL(訴訟の最中にノベルに買収)から起訴されるなど、長い間公開することができなかった。
またGNUは、安定したカーネルを出せないままでいた。特に、GNUは、ほとんどのUNIXソフトウェアコンポーネントは作れていたのに、カーネルやデーモンなどの部分を完成させることが出来ないままだった。GNUは、当時先進的だとされていたマイクロカーネル(Hurd)によるOSを開発しようとしていた。現在でも、GNU Hurdは完成していない。
UNIXがクローズドソースとなったことで、大学では「OSの講義のために教えられるシステムがない」という問題があった。
これに対して、A・S・タネンバウム教授は、大学で教えるための「教材」としてMINIXと呼ばれるUNIX互換OSを作った。
MINIXは書籍に付属する形で全ソースコードを掲載し、UNIXと互換性を保ちながら、マイクロカーネル設計を導入した。
しかしながら、MINIXのニューズグループでは、学生やニューズグループの参加者から「MINIXに取り入れてほしい機能」がたくさん送られてくる。
これに対して、タネンバウムなどのMINIX開発者は、「OSを勉強する入門者のために小さく理解しやすい大きさを保ちたい」と考えており、こうした機能追加要求に必死で抵抗を続ける。
ここに現れたのが、リーナス・トーバルズによるLinuxだった。
MINIXも参照のこと。
1990年代には、BSDやLinuxなどのUNIX系のフリーOSがUNIX界で使われるようになった。
Linuxは、1991年に、当時大学院生だったフィンランド人のリーナス・トーバルズによって開発された。
リーナス・トーバルズはMINIXを使っていたが、Intelの仮想記憶などに対応しないMINIXの機能に不満を感じ、MINIXの改良を始める。
最初はターミナル・エミュレータだったLinuxだが、開発していくうちに、MINIXから改良したコードだけで、ほとんどのOSの機能を満たすようになった。
トーバルズは、MINIXのメーリングリストでこのLinuxを公開し、開発者を募る。
Linuxはリーナス・トーバルズによってまったく独自のコードで開発されたため、UNIXの利権問題はこれによって解決した。
そして、トーバルズと同じようにMINIXに不満を感じるニューズグループの参加者と相乗効果となり、爆発的に開発者が増えていった。
MINIXのコンポーネントは、既にあったGNUのコンポーネントに参加者たちによって置き換えられた。また、商用利用を禁止していた独自のライセンスを撤廃し、GNU GPL v.2を適用した。
その後、これを見たエリック・レイモンドは、「伽藍とバザール」と言う著の中で、オープンソース開発と言う全く新しいソフトウェアの開発方式だとした。
Linux界の有名な開発者としては、アラン・コックスやアンドリュー・モートンなどが知られている。特に彼らは独自のカーネルツリーをメンテナンスしていたこともあり知名度が大きい。
アラン・コックスはリーナスの右腕として知られ、ネットワーク関係のバグを直し、ネットワークサブシステムの多くを書き換えたことで有名である。
アンドリュー・モートンはAKPMという名前で知られており、現在もLinuxカーネルの中枢をメンテナンスしている。
また、カーネル以外では、GNOMEプロジェクトの創始者ミゲル・デ・イカザなどが、さまざまな発言をするオープンソース界のキーパーソンとして有名である。ミゲルは、コードの再利用と共有が行われないUNIXを、「UNIXをもう少しマシなものにしよう」という論文で、CORBAを用いたGNOMEのBonoboのビジョンについて記述して、大きな反響を呼んだ。
Linux 著名人も参照のこと。
そして、Microsoftにブラウザ戦争で敗北したNetscapeはMozilla.orgとして、バザール開発をもくろんで、Mozillaのソースコードをオープンソースにした。
その後、開発はボランティア主導ではなく、企業主導へと移っていく。Red Hatなどの会社がRPMと言う「専門技術のあるオタクではなくても、誰でも使えるディストリビューション」を作成した。だが、完全にボランティア主導のDebianなどのコミュニティも存続し、たくさんのオープンソース・プロジェクトが生まれている。
だが、いまだにMicrosoftの牙城を倒すまでには至っていない。Microsoftの開発したCOMと呼ばれる次世代のコンポーネント・システムは、KDEの使用するツールキットQtがオープンソースでなかったことから生まれた、GNOMEと呼ばれるデスクトップ環境によって、逆にWindowsからUNIX/Linuxへと、技術の移転が生まれている。
以上の記述は以下のページ・文献を参考に自分で書きました。
The First Linux Announcement from Linus Torvaldsより引用。
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (torvalds@kruuna.helsinki.fi) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
Linux is Obsolete.(Linus Tanenbaum Debate) - 『ディベート:リナックスは時代遅れだ』 - Andrew Tanenbaum教授とLinus Torvaldsの議論。
Linuxの開発が面白かった理由は、僕は2つあると思います。
第一に、リーナス・トーバルズに対して、多くの貢献者が手助けをした、ということ。先陣を切って開発するトーバルズに対し、多くの有能プログラマが手助けをする、そのことが「インターネットの革新性」となって面白かった、というのが第一の理由です。
第二に、Linuxカーネルが使い物になるぐらい高品質だった、ということ。GNUのツールをカーネルに乗せたことで、Linuxカーネルはすぐに実用的なものになりました。作るべきは、カーネルだけで良かったのです。リーナスだけでは作れなかった部分を、多くのLinuxカーネルやGNUの貢献者がコードやソフトウェアを寄贈し、そのことによってLinuxは実用的な品質を手に入れ、「まるで片手間のプログラマたちの献身的な手間の貢献だけで、超一流のOSが生まれた」という、エリック・レイモンドの言う「Linuxは破壊的存在なり」という側面がクローズアップされました。
開発体制がオープンだったことは、当時はネットでの共同開発ということ自体が珍しかったというだけで、僕は大きな理由ではないと思います。ツイッターやFacebookが同じことを「まるで猿のように」やっているからです。彼らは、頭を全く使わないソーシャル・コミュニケーションを楽しんでいます。そう、Linuxはその前衛的な存在でした。
Linuxカーネルの開発過程について、Plamo Linux開発者のこじまみつひろ氏によって記事が公開されており、参考になります。
Linux 著名人を参照のこと。
2018-01-05より。
オープンソースは、標準技術を公開する、という意味で正しい。一度作ったコードを再利用出来るようにするなら、外部から利用しやすいコンポーネントにするか、あるいはオープンソースにすべきだ。
Linuxを意味がないとは言うが、逆に意味がないのが優れている。オタク、ハッカー、自分勝手な人間、小さなコードの貢献者、何でもかんでも作る人間、オープンソース企業、エンタープライズ企業、サーバーやサービスの会社、研究施設の研究者など、色んな人間が作っている。プロジェクトは沢山ある。
プロジェクトも、Linuxカーネルのようにさまざまな人間がやっているのをリーナスがまとめているものから、GNUのように理想のために作っているもの、Red Hatのように会社が作るもの、KDEとGNOMEのように競争しているものなど、色んなプロジェクトがある。
GNUは原理主義的なところがあるが、何故かGNUに共感する人間は多い。オープンソースとフリーソフトウェアは仲良くやりながら対立している。
オープンソースというと、機能の発展や開発体制に目が行きがちだが、フリーソフトウェアはそんなものは目指していない。ライセンスを厳密に守り、みんなのものにすることを目指している。だが、誰のものでもない素晴らしいものを作るという点で、両者は協力している。
本当は、Linuxの開発者とGNUの開発者は会社のように分かれているわけではなく、重なる部分も多い。
Linux的なオープンソースの良い点は、自発的な協力者によってどんどん発展すること。これはとても楽しい。だから、会社の協力者も節操なく受け入れる。オープンにすることで、どんどんコードが改良される。だが、Netscapeのような失敗例もある。
さまざまな人々が集まっているのは今でも同じで、企業の開発するRed Hatとある意味でアフリカの慈善団体のような集団であるUbuntuが、それぞれ違ったやり方でオープンソースソフトウェアをどんどん作ってLinuxを改良している。これはとても面白い、そして稀な現象である。
昔のLinux関連の文章を見ていると、エリート聖職者階級の大きなコンピュータではなく、安価で簡単に作れるパソコンという発想は、革命的でした。
The Linux Kernelでもそうした話が出てきます。
古いコンピュータ(2.パソコン)やIntelも参照のこと。
Linuxがこれほど大きな運動になったのは、GNUの開発ツールであるgccやmakeなどを既にGNUが無償で配布していたからだ。
リーナスはただ本の情報に基づいて、自分の作りたいものを作っただけだが、それをネットに公開したのが大きかった。
誰もがGNUの無償ツールを使って、Linuxの開発を行うことが出来た。
だから、Windowsでも同じようにVisual C++がもし無料で配布されていたら、おそらくどこの国でもリーナスと同じ人間が現れるだろう。
そのためには、Windows本体もオープンソースにする必要があるかもしれないが、僕は必ずしもないと思う。
なぜなら、Windows自体をみんなで書いてしまえば良いからだ。
GNUツールチェインも参照のこと。
昔は、Linuxカーネルはメジャーバージョンの2の次に偶数でマイナーバージョンを付けるのが慣習でした。
2.0, 2.2, 2.4, 2.6など。特に、2.4や2.6は大きなバージョンアップとして、Linuxコミュニティの期待を背負いました。
Linux カーネル開発を参照のこと。
昔の、フリー版のX11の実装。そのうち、プロジェクト間の問題が起きて、X.orgが復活しました。
X11 (X Window System)を参照のこと。
昔の本当に未熟だった頃の日本語変換エンジン。
日本語入力を参照のこと。
昔の次世代の入力フレームワーク。今では、mozc / anthy + Fcitx / IBusを使うのが一般的。
日本語入力を参照のこと。
GNOMEはBonoboによるコンポーネント・オブジェクト・モデルがその冠するところでありましたが、最近はもっと違う技術を使うようです。
昔のMozillaは重かったですが、きちんと動く唯一のオープンソースのLinuxのWebブラウザでした。
Mozillaを参照のこと。
Microsoftにブラウザ戦争で負けた悲惨な会社。だが、負けた上でそのソースコードを公開し、Mozilla.orgを創始した、と言う役割は、今考えると偉大だった。
僕はやけにこのNetscapeの歴史が好きで、以下の文章が面白かった。読んでみることをお勧めする。
Mozillaを参照のこと。
GNOMEやKDEのことを昔は統合デスクトップ環境と言っていた。重くて嫌われていたが、結構LinuxもWindowsと同等の環境になるものだ、とみんな信じきっていた。
GNOME 3は夢でしたが、出てきたものを見ると劣悪だった。Windows Vistaや8と良く似ている。
GNOMEを参照のこと。
昔のCVSと言うバージョン管理システムは、きちんと動く代わり設計が劣悪だった。
Subversionなどを遍歴したのちに、リーナス・トーバルズの作ったgitが標準になった。
バージョン管理システムやGitを参照のこと。
昔は、オープンソースのフォントと言うと、なかなかなかった。東風フォントが使えなくなって生まれたのがさざなみフォントである。
Linuxフォントを参照のこと。
昔は、サーバーソフトウェアは今よりも単純で、CGIとしてPerlが動いていた。SQLも無いわけではなかったが、テキスト形式にデータを格納するのが普通だった。
ボーランドがLinux向けに出していた、クロスプラットフォームなIDE。
Delphiを参照のこと。
GNUによるJavaのクラスライブラリの実装。
OpenJDKを参照のこと。
MacromediaはAdobeに買収されましたが、昔はこれがネットでの標準的な動画・アニメーションのプラットフォームだった。
FLASHを参照のこと。
GCCの昔のバージョン。
GNUツールチェインを参照のこと。
Sunによる次世代の3Dデスクトップ環境。
Sunを参照のこと。
どちらもジャーナリングファイルシステムです。ライバル関係にあった。
Linuxカーネル(ファイルシステム)やext2やB-Treeファイルシステムを参照のこと。
オープンソースのSQLサーバーを作っていた会社。
MySQLを参照のこと。
KDEで採用されているGUIツールキットQtを作っていた会社。
Qtを参照のこと。
PHPを作っている会社。なくなったのかと思いきや、どうやら今でもあるらしい。
PHPを参照のこと。
GNOMEやMonoを作っていた会社。
Ximianを参照のこと。
ドイツのLinuxディストリビューター。
SUSEを参照のこと。
XimianとSuSEを買収した会社。昔はNetWareと言うグループ管理ネットワークソフトウェアが有名だったらしい。
SUSEを参照のこと。
Solarisなど、UNIX関係で有名な会社。
Sunを参照のこと。
昔はLinuxの代名詞だった、標準的ディストリビューターだった。今は、なくなってFedoraとRHELへ移行している。
Red Hatを参照のこと。
今でもあるのは確かだが、老舗のディストリビューター。
Linuxディストリビューションを参照のこと。
ドイツのLinuxディストリビューション。SlackwareをもとにRPM化を行い、YaSTと呼ばれる統合設定ツールを備えている。
SUSEを参照のこと。
フランスのLinuxディストリビューション。「まんだらけ」ではなく「マンドレーク」と読む。
Linuxディストリビューションを参照のこと。
ブラジルのLinuxディストリビューション。Mandrake Linuxと合併してMandriva Linuxとなった。
国産Linuxディストリビューションとして、昔は有名だった。最近は、開発リソースが少ない。日本人にはLinux開発者が少ない。
日本向けLinuxディストリビューションを参照のこと。
日本の企業主導による国産Linuxディストリビューションとして有名だったが、野球問題で知られているライブドアに買収されてから、名前をあまり聞かない。
日本向けLinuxディストリビューションを参照のこと。
Slackwareをベースとした、楽しさを重視する国産Linuxディストリビューション。
Plamo Linuxを参照のこと。
国産Linuxディストリビューション。もう存在しない。昔、Linuxの日本語関連のパッチやパッケージの開発に協力していた。Momonga Linuxが後継。
日本向けLinuxディストリビューションを参照のこと。
昔存在したLinuxディストリビューション。
昔存在したLinuxディストリビューション。僕は買ってインストールしたことがあります。日本版はライブドアの前身の会社が作っていた。
オープンソース全般の歴史としては、Wikipediaのオープンソースソフトウェアの歴史やLinuxの歴史が詳しい。僕が知らなかったこともいろいろと書いてある。
コンピュータの歴史については古いコンピュータ(1.メインフレーム・ミニコン)や古いコンピュータ(2.パソコン)やコンピュータ科学を参照のこと。