Linuxの歴史
Linuxの歴史は、1991年にフィンランド人学生のリーナス・トーバルズによって、新しくフリーなオペレーティングシステム (OS) のカーネルを製作する個人的なプロジェクトとして始まった。それ以来、成果であるLinuxカーネルがその歴史の中で途切れることなく成長し続けていることは特徴的である。1991年にソースコードが公開された時点では商用利用禁止ライセンスが適用された少数のC言語で書かれたであったものが、2018年に公開されたバージョン4.15では、GNU General Public License v2が適用されたソースコードがコメント行を除いて2億3,300万行以上にまで増加した。
AT&TがMulticsプロジェクトを放棄したのち、Unixオペレーティングシステムが1969年にケン・トンプソンとデニス・リッチー(両者ともAT&Tベル研究所の職員)によって構想、開発され、1970年に初めてリリースされた。続いて彼らはUnixの移植性を高めるためにC言語で書き直した。入手性と移植性の高さが功を奏し、Unixは教育機関や企業に広く採用され、複製され、改変された。
1977年、カリフォルニア大学バークレー校のComputer Systems Research Group (CSRG) によって、Unix 6th editionを基盤とするBerkeley Software Distribution (BSD) が開発された。BSDにはAT&Tがライセンスを保有するUnixのコードが含まれていたために、AT&Tは1990年代初期にカリフォルニア大学を提訴した(USL対BSDi)。これによりBSDの開発および採用は著しく制約を受けた。
1983年、リチャード・ストールマンがフリーなUnix系OSの構築を目標とするGNUプロジェクトを創設した。GNU General Public Licenseはこのプロジェクトの一部として作成された。1990年代初期、フリーなOSを完成させるためのソフトウェアはほとんど揃っていたが、Hurdと呼ばれるGNUカーネルだけは開発者の関心を集められず、それゆえにGNUは未完成となっていた。
1985年、Intelは32ビット命令セットおよびページングによるメモリ管理機能を備えた初のx86プロセッサとなる80386をリリースした。
1986年、AT&Tベル研究所のMaurice J. Bachが『The Design of the UNIX Operating System』を出版した。主にSystem V Release 2について記述されており、Release 3やBSDの新機能にも部分的に触れられていた。
1987年、アンドリュー・タネンバウムが出版した教科書である『Operating Systems: Design and Implementation』の記述の実例として、教育機関での利用を目的とするMINIXがリリースされた。MINIXはソースコードが公開されたが、改変や再配布には制約があった。それに加え、MINIXが16ビットで設計されているため、低価格化し普及が進んでいるIntel 386アーキテクチャの32ビットの特長を活用することが困難となっていた。1990年代初期には、Intel 386搭載PCで動作する商用Unix系OSは個人で使用するにはあまりに高額であった。
これらの要因が、トーバルズにフリーなカーネルの開発を動機付ける刺激となった。彼は当時もしGNU Hurdもしくは386BSDが入手可能であればおそらく自力で開発することはなかっただろう、と後に語っている。
1991年、ヘルシンキ大学でコンピュータ科学を学んでいたトーバルズは後にLinuxカーネルとなるプロジェクトを開始した。彼が書いたプログラムは、自身の新しいPCと80386プロセッサの機能を活用したかったために、自身が使用していたハードウェア専用とされ、OSに依存しないものであった。開発にはMINIX上でGNU Cコンパイラが利用された。GNU Cコンパイラは現在でもLinuxをコンパイルするための最優先の選択肢となっているが、Intel Cコンパイラなど他のコンパイラでもビルド可能である。
トーバルズの自著である『それがぼくには楽しかったから』によると、彼はついにOSカーネルを完成させ、1991年8月25日(当時21歳)にUsenetのニュースグループ"comp.os.unix"にこのシステムについての告知を投稿した。
minix を使っている皆さんへ -
今、僕は386 (486) ATクローン用の(フリーな)オペレーティングシステムを作っています。4月から仕込んできたものですが、そろそろ出来上がりが近くなってきました。僕のOSは、((実用的な理由から)ファイルシステムの物理的な配置をはじめ)ある程度minixに似たものなので、皆さんがminixのどんなところを気に入っているのか、あるいは気に入らないのかを教えて欲しいと思います。
今のところ、bash (1.08) とgcc (1.40) の移植が終わったところで、どうやら動いているようです。つまり、あと2、3か月で何か実用的なものが出来上がるということです。そんなわけで、皆さんが一番望んでいる機能は何かを知りたいのです。どんな提案でも構いませんが、実装はお約束できませんよ :-)
Linus (torvalds@kruuna.helsinki.fi)
追伸. そう、minixのコードはいっさい使わず、マルチスレッド型のfsを備えています。移植性は「ありません」(386のタスク切り替え等を使っています)し、私が所有しているのはAT対応ハードディスクだけ :-( なので、これ以外をサポートすることはまずないです。
トーバルズによると、Linuxが注目され始めたのは1992年にX Window SystemがOrest Zborowskiによって移植され、最初にLinuxでGUIが利用可能になったことによるとされる。
トーバルズは当初彼の創作をfree、freak、x(Unixの暗示)を繋ぎ合わせてFreaxと呼ぼうとしていた。彼はシステムの開発中に、半年ほどファイルの保存先の名称をFreaxとしていた。既にLinuxという名称も検討していたが、当初はあまりに自己中心的ということで却下していた。
開発を促進する目的で、1991年9月にFUNETのFTPサーバ (ftp.funet.fi) へファイルがアップロードされた。当時ヘルシンキ工科大学 (HUT) に在籍していたAri LemmkeがFTPサーバのボランティア管理者を務めていたが、彼はFreaxがよい名称ではないと考えていた。そのため、彼はトーバルズに無許可でプロジェクトの名称をLinuxとした。その後、トーバルズはLinuxと呼ぶことを承諾した。
Linux(ˈlɪnəks)をどのように発音すべきかを明示するため、トーバルズはカーネルのソースコードに音声ガイド(Linus-linux.ogg)を添付した。
トーバルズは、商用利用を制限する独自のライセンスのもとでLinuxを公開した。カーネルと組み合わせて使用するソフトウェアはGNUプロジェクトの一部として、フリーソフトウェアライセンスであるGNU GPLのもとで公開されていた。最初にリリースされたLinuxカーネルであるバージョン0.01にはGNUによるBashシェルのバイナリが同梱された。
"Notes for linux release 0.01" の中で、トーバルズはLinuxを動作させるために必要なGNUソフトウェアを列挙した。
残念ながら、カーネルだけでは何もできません。使用できるシステムとするには、シェルやコンパイラ、ライブラリなどが必要です。これらは別個の部分であり、もっと著作権が厳しい(あるいは緩い)かもしれません。Linuxで使用されているツールのほとんどはGNUソフトウェアで、GNUコピーレフトが適用されます。これらのツールはディストリビューションに含まれていませんので、詳細については私(またはGNU)までお問い合せください。
1992年、彼はカーネルをGNU GPLのもとでリリースすることを提案した。最初の決定はバージョン0.12のリリースノートで告知された。1992年12月半ばに彼はGNU GPLのもとでバージョン0.99を公開した。LinuxとGNUの開発者は、機能を完備した完全にフリーなOSを構築するために、LinuxにGNUの成果物を統合させる作業を進めた。トーバルズは「LinuxにGPLを適用したのは確実に私が実行した最善のことだった」と述べている。
2000年前後、トーバルズはLinuxカーネルのライセンスから「or later条項」を削除しGPLv2のみに確定した。
2007年、数年に渡る事前の議論の結果、トーバルズおよび主要なカーネル開発者たちはLinuxカーネルにGPLv3を適用しない判断を下した。
当初トーバルズにより「Linux」と命名された対象はLinuxカーネルに限られていた。もっとも、このカーネルは他のソフトウェア、とくにGNUプロジェクトによるソフトウェアと組み合わせて使われることが多かった。この組み合わせは、すぐに最も一般的なGNUソフトウェアの採用例となった。
1994年6月に発行されたGNU bulletinにおいて、Linuxは「フリーUNIXクローン」と呼ばれ、Debianプロジェクトは製品の名称を「Debian GNU/Linux」と呼び始めた。1996年5月、ストールマンはEmacs 19.31を公開した際、システムの名称をLinuxからLignuxに呼び替えた。この綴りはGNUとLinuxの関連に注目させるよう目論んだものであったが、ほどなくこれに代えてGNU/Linuxと表記するようになった。
この名称には多様な反応が起こった。GNUとLinuxの組み合わせを紹介する際、GNUおよびDebianプロジェクトではGNU/Linuxの名称を使用しているが、他の多くの人々は単にLinuxの語のみを使用している。
トーバルズは1996年にペンギンをLinuxのマスコットとすることを提案した。これは彼がオーストラリア・キャンベラの国立動物園水族館を訪れたさい、コガタペンギンに噛まれたという出来事をマスコットの選考中に話したことに基づいている。ラリー・ユーイングはこの逸話をもとに現在よく知られているマスコットの草案を作成した。Tuxの名称はTorvalds' UniXの略かつペンギンに似た色の服装であるtuxedoの略として、James Hughesによって提案された。
Linuxに関わる作業の大部分を占めるのがコミュニティによるものである。世界中の何千人ものプログラマがLinuxを使用し、改善提案をメンテナたちに送信している。様々な企業もカーネルの開発のみならず、Linuxとともに配布される補助的なソフトウエアの開発も支援している。2015年2月時点では、Linuxカーネル開発者の80%以上が有給雇用者であった。
LinuxはDebianなどの組織されたプロジェクト、およびFedoraやopenSUSEなどの密接に企業と関連するプロジェクトによってリリースされる。これらのプロジェクトのメンバーは、様々な会議や展示会で、アイディアを交換するために会合する。最大の展示会のひとつにドイツで開催されるLinuxTagがあり、毎年1万人ほどの人々がLinuxや関連するプロジェクトについて議論するために参加している。
Open Source Development Labs (OSDL) は、Linuxをデータセンターや電気通信事業者で活用できるように最適化を推進することを目標とする、独立した非営利組織として2000年に設立された。これはトーバルズやアンドリュー・モートン(2006年半ばにGoogleへ移籍するまで)の職場として提供された。トーバルズはLinuxカーネルの開発のためにOSDLに常勤していた。
2007年1月22日、OSDLとFree Standards Groupが合併してLinux Foundationとなり、主要な目的をLinuxをMicrosoft Windowsの競合として推奨することに絞り込んだ。2019年現在、トーバルズはフェローとしてLinux Foundationに在籍している。
無償で入手可能にも関わらず、企業はLinuxから利益を上げている。これらの企業の多くは、Linux Foundationの会員でもあり、様々なアプリケーションの領域へと適応させる目的で、相当規模の資産をLinuxの発展や開発のために投資している。これにはデバイスドライバ開発者へのハードウェアの寄贈、ソフトウェア開発者たちへの現金の寄贈や、Linuxプログラマを自社で雇用することなどが含まれる。いくつかの例として、デル、IBM、ヒューレット・パッカードでは自社製サーバでのLinuxの検証、利用、販売をしており、またレッドハットやSUSEでは企業向けのLinuxディストリビューションをメンテナンスしている。Digiaも同様に、KDEの開発を可能とするQtの開発やLGPLの適用、さらにXやKDEの開発者の雇用でLinuxをサポートしている。
KDEは最初の先進的なデスクトップ環境であった(1998年7月にバージョン1.0がリリースされた)。しかしながら、これは後にプロプライエタリなライセンスが適用されたQtツールキットが採用されたことで議論となった。ライセンスへの懸念からGNOMEが開発された。両者は異なるツールキットを採用したことにより異なるプログラミング手法が取られ、さらにドイツの非営利組織であるKDE e.V.とアメリカの非営利組織であるGNOME Foundationという異なる2つのグループによって支援された。
2007年には、とあるジャーナリストによりKDEのシェアが65%に対し、GNOMEのシェアが26%と推定された。2008年1月にはKDE4がリリースされたが、バグが多く未完成な状態だったため、ある程度のユーザがGNOMEに移行する要因となった。2011年4月にはGNOME3がリリースされたが、デザイン変更が論争の的となり、トーバルズはこれを「混乱の極み」と評した。
GNOME3への不満からCinnamonが分岐し、これは主にLinux Mintの開発者であるClement LeFebvreによって開発された。Cinnamonではより伝統的なデスクトップ環境に回帰し、改善箇所はごくわずかにとどめている。
相対的に財源が豊富なディストリビューションであるUbuntuは、従来のデスクトップ環境とは根本的に異なり、そのために種々の欠点や設定機能の不備を指摘された、Unityと称するユーザインタフェースを設計(2011年6月にリリース)した。デスクトップPCとタブレットでデスクトップ環境を統一することが開発の動機であったが、2012年11月時点ではタブレットではUnityがさほど普及していなかった。しかしながら、2013年1月にCanonicalによってスマートフォンおよびタブレット向けのUbuntu TouchおよびUnityが発表された。2017年4月、CanonicalはUbuntu CoreのようなIoTプロジェクトに集中するために、スマートフォン向けUbuntuのプロジェクトを完全に打ち切ることを決定した。2018年4月にリリースされたUbuntu 18.04より、CanonicalはUnityを廃止してGNOMEの使用を開始した。
1992年、コンピュータ科学者として、またMINIXマイクロカーネルの開発者として知られるアンドリュー・タネンバウムは、Usenetのニュースグループ"comp.os.unix"で「Linuxは時代遅れだ」と題した記事を投稿し、Linuxカーネルの構造に関する有名な論議を誘発することとなった。主な論点は以下のようなものである。
Intel i386プロセッサに固有の機能を使用しており移植性が欠如している
Linuxには無駄な機能が多い(タネンバウムはのマルチスレッド化について単なる「芸当」と信じ込んでいた)
Linuxが数年で廃れて(彼が最も先進的とみなしていた)GNU Hurdに置き換えられるとするタネンバウムによる予言は不正確だったことが証明された。Linuxはあらゆる主要なプラットフォームに移植され、オープンな開発モデルによって賞賛に値する開発ペースという結果をもたらした。GNU Hurdは未だに実用サーバとして運用可能なレベルの安定性に届いていない
。さらに、x86プロセッサやIntel自体が後にパーソナルコンピュータやサーバで広範に普及したことにより、Intelの386プロセッサ製品群を「奇妙」と酷評した彼に先見の明がなかったことも証明された。
Kenneth Brownは未出版の書籍である『Samizdat』で、トーバルズがMINIXのソースコードを違法に盗用していると主張した。2004年5月、タネンバウムによってこの主張は否定された。
ブラウンは所有権の問題を追求したがったが、本当の目的が何かを私に教えるのを避けているようにも見え、疑問点をはっきりと述べることをしなかった。ついに彼が私に尋ねたのは、リーナスがリナックスを記述したと思うかという質問だった。私は次のように答えた。私の知る限りにおいて、リーナスがカーネル全体を記述し、それが公開されたあとは、当初かなり基本的なものだったカーネルに他の人たちが改善を加え始め、実質的にはMINIXとほぼ同じ開発モデルでシステムに新しいソフトウェアを足していった。すると、ブラウンは「彼(リーナス)は許可なくMINIXから一部を盗んだのではないか?」などと質問を投げかけ、そのことに焦点を当て始めた。ファイルシステムの配置からソースツリーの名前に至るまで、さまざまな形でMINIXがLinuxにとても大きな影響を与えたのは明白だが、リーナスが私のコードを使ったとは思わないと、私は答えた。
この書籍の主張や論理展開、出典には重大な疑義が持たれ、結果として書籍は出版されず、出版社の一覧からも削除された。
トーバルズはマイクロソフトが過去にLinuxに対して脅威を感じていたことによる影響は皆無だったと述べたが、マイクロソフトとLinuxそれぞれの陣営の間では1997年から2001年にかけて数々の敵対的なやり取りがあった。最初に明白となったのは1998年、いわゆる「ハロウィーン文書」がエリック・レイモンドによって公開された時であった。これはマイクロソフトの開発者による、フリーソフトウェアがマイクロソフトに与える脅威や、それらの認識された脅威に対抗するための戦略を並べようとした短いエッセイであった。
マイクロソフトがWindowsとLinuxを比較評価した顧客の事例研究を "Get the Facts" と称して自社のウェブサイトに掲載したことによって、競合は2004年から新しい局面に入った。この事例研究ではアンケートや調査分析、マイクロソフトの支援による調査などを基に、業務用サーバ用途での信頼性、セキュリティ、総保有コストの面で、LinuxがWindowsより劣ると主張していた。
この反応として、商用Linuxディトリビュータはそれぞれにマイクロソフトのキャンペーンに対抗するために研究、調査、証明を公表した。ノベルは2004年末から "Unbending the truth" と題するウェブ上のキャンペーンを開始し、利点の概説に加え(とくにSCO対IBMにおける事例の観点から)広く喧伝されたLinux運用の法的な信頼性への懸念を払拭しようとした。ノベルは多くの点で、とくにマイクロソフトの研究を引用した。IBMも "The Linux at IBM competitive advantage" と題してマイクロソフトのキャンペーンをかわすための一連の研究を公表した。レッドハットは "Truth Happens" と呼ばれるキャンペーンを開始した。
2006年秋、ノベルとマイクロソフトはソフトウェアの相互運用性と特許保護で提携する契約を発表した。これにはノベルとマイクロソフトいずれの顧客も他社からの特許紛争による訴訟対象とならない、とする契約が含まれていた。特許保護は非商用のフリーソフトウェア開発者にも拡大された。最後の部分は「非商用」ソフトウェアの開発者に限定されているという理由で批判された。
2009年、マイクロソフトはGPLv2のもとで22,000行のソースコードをLinuxカーネルに寄贈し、これらは追って受理された。このことは「歴史的な動き」として、またLinuxやオープンソースソフトウェアへのマイクロソフトの企業としての態度が改善された契機として言及されたが、これはマイクロソフトに顕著な優位性をもたらすことを約束し、またマイクロソフトへの法的措置を回避するという意味で、全く利他的な判断ではなかった。実際のところマイクロソフトはコードの寄贈を余儀なくされており、これはVyattaの主席エンジニアでLinuxコントリビュータでもあるStephen Hemmingerによって、Hyper-Vネットワークドライバのソース非公開バイナリに、GPLのもとでソースコードが公開されているコンポーネントをGPLに違反して静的リンクしていたことを指摘されたためであった。マイクロソフトはライセンス違反を解消するために、法的措置を回避するという名目ではなく、慈善的な行為という建前でドライバを寄贈した。かつてマイクロソフトはLinuxを「ガン」や「コミュニスト」になぞらえていた。
2011年、マイクロソフトはLinuxカーネルのコントリビュータで第17位となった。2015年2月、マイクロソフトはコントリビュータ企業の第30位までに入らなかった。
Windows Azureプロジェクトが2008年に発表され、後にMicrosoft Azureに改称された。Linuxはサーバベースソフトウェアの一部として統合された。2018年8月、SUSEはMicrosoft Azureプロジェクトのもとでクラウドコンピューティング用アプリケーションのための特殊仕様となるLinuxカーネルを製作した。マイクロソフトの代表者は、移植版カーネルについて「新しいAzure向けカーネルにより、顧客がSR-IOVにより高速化されたネットワークのような、新しいAzureのサービスの利点を迅速に享受できる」と述べた。
2003年3月、SCOグループがUnixからLinuxへ移されたコードによるUnixの著作権侵害でIBMを告発した。SCOはUnixの著作権保有を主張し、IBMを提訴した。Red Hatは反訴し、SCOは他の関連する訴訟を起こした。これらの訴訟と並行して、SCOは潜在的な訴訟リスクを抱えることを望まないユーザにLinuxのライセンスを販売開始した。ノベルもUnixの著作権保有を主張し、SCOを提訴した。
SCOはこれにより破産を申請した。
1994年と1995年に、別々の国の何人かの人々が「Linux」を商標登録しようと試みた。そしてすぐにいくつかのLinux関連企業が使用料の支払いを請求され、これは多くのLinuxの開発者やユーザが同意できない措置であった。トーバルズはこれらの企業をLinux Internationalの支援により抑え込み、Linux Internationalへと移動させた商標の使用を承諾した。その後、商標保護を専業とする非営利組織のLinux Mark Instituteによって商標が管理されることとなった。
2000年、トーバルズはライセンスの供与に関する基本的なルールを決定した。すなわち、Linuxの名称を含む製品やサービスを提供する全ての人々には、1回ごとの購入によって得られるライセンスの保有が必須となった。
2005年、Linuxの商標使用により発生する使用料の用途について新しく議論が発生した。トーバルズの権利の代理者であるLinux Mark Instituteは、金額を500米ドルから5,000米ドルに値上げすることを公表した。これは商法保護にかかるコストの上昇を埋め合わせるために必要だったと弁明された。
値上げに対する反響としてコミュニティの不快感が増大してきたことに対応し、トーバルズは誤解を解消するための告知を2005年8月21日に公開した。彼はEメールの文中で現状や背景について詳しく解説し、さらに誰がライセンスのコストを負担すべきかについて採り上げた。
[...]もう一度繰り返します。名前を保護したくない人なら、そのようなことは絶対しません。何を「MyLinux」と呼んでも構いませんが、欠点は自身の守りを固めた誰かが出てきて、その名前の使用停止を求める書面を送りつけてくるかもしれないということです。あるいは、LMIが定期的に実施する必要がある登録商標の検索(これも登録商標に関する法的要件のひとつです)でその名前が見つかったら、LMI自身があなたに名前の使用を停止するか、サブライセンスを受けるかを求める書面を出さないといけなくなるかもしれません。そうなると、あなたは名前を他のものに変更するか、サブライセンスするかです。お分かりでしょうか。これはあなたに保護が必要かどうかの問題であって、LMIが金銭を必要としているかどうかの問題ではないのです。
[...]最後に、はっきりさせておきます。登録商標の料金から私には1セントも入りませんし、(商標を実際に管理している)LMIですら、商標についてはこれまでずっと損失を出しっぱなしです。これでは登録商標を維持できませんから、LMIは自身の費用を賄えるようにしているだけで、私に今言えるのは、保護を必要としている営利企業に対してそれを提供するための弁護士費用がいつもライセンス料より高かったということです。プロボノ弁護士ですら、時間あたりのコストやパラリーガル等の費用は請求します。
その後、Linux Mark Instituteは無期限で全世界に適用される無償のサブライセンスの提供を開始した。
1991年: 21歳のフィンランド人学生だったリーナス・トーバルズにより、Linuxカーネルが8月25日に公式に発表された。
1992年: LinuxカーネルのライセンスがGNU GPLに変更された。最初のLinuxディストリビューションが製作された。
1993年: Linuxカーネルに関わる開発者が100人を越えた。彼らの支援によりカーネルがGNU環境に適応され、それによってLinuxにおけるアプリケーションの種類が広範囲なものとなった。(2018年時点で)現存する最古のLinuxディスリビューションであるSlackwareが初めてリリースされた。同年にやや遅れて、Debianプロジェクトが創設された。現在ではコミュニティによるディストリビューションとしてはDebianが最大となっている。
1994年: トーバルズはカーネルの全てのコンポーネントが十分に成熟したと判断し、バージョン1.0としてリリースした。XFree86プロジェクトがグラフィカルユーザインタフェース (GUI) を寄贈した。商用LinuxディストリビュータであるRed HatとSUSEがそれぞれのディストリビューションのバージョン1.0を公開した。
1995年: LinuxがDEC AlphaとSun SPARCに移植された。その後数年に渡り、様々な種類のプラットフォームにLinuxが移植された。
1996年: Linuxカーネルのバージョン2.0がリリースされた。対称型マルチプロセッシング (SMP) がこのバージョンからサポートされ、これによって多くの企業で現実的な採用候補となった。
1998年: IBM、コンパック、オラクルなどの主要な企業がLinuxをサポートすると発表した。「伽藍とバザール」が最初にエッセイとして公表された(後に書籍化)。これを受けネットスケープがNetscape Communicatorウェブブラウザのソースコードを一般に公開した。ネットスケープの動きと「伽藍とバザール」への評価により、Linuxのオープンソース開発モデルが著名な技術メディアの関心を引くこととなった。プログラマのグループによってKDEの開発が開始された。