pc4beginnerの日記 はてなブログ版

はてなダイアリーで書いていたブログの移行です。

【はじめてのLinux】 01-01.Linuxの歴史

当エントリは電子書籍化予定の「はじめてのLinux」の一部になります。
下書きなので、内容は更新される可能性が有ります。


※現在、ドラ○もんの指摘を受け修正中です。修正が完了するまで内容についての正誤は保証できません。
最終更新 2011/08/09

ここではLinuxの歴史について触れますが、それを語る上でUNIXの存在を外すことは出来ません。そのためUNIXの歴史に大幅な行数を費やしつつ、Linuxの誕生や発展の経緯について紹介していきます。


そもそもUNIXとは、アメリカの通信会社であるAT&T社の参加にあるベル研究所が産みだしたコンピュータ用のOS(オペレーティングシステム)です。とあるゲームの移植をきっかけに開発されたUNIXは、当初は機械語に近いアセンブリ言語で作成された特定のコンピュータで動くOSでした。


しかしUNIX開発者の一人であるデニス・リッチー氏を中心としたメンバーは、よりソースコードを読みやすくし移植性を高めるためにUNIXそのものを記述する言語まで作ってしまいました。それがC言語です。


UNIXの開発でC言語が重宝されるのは、このようにUNIXそのものがC言語で記述されており親和性が高い事も大きな理由といえるでしょう。また、C言語は読みやすい高級言語でありながら、アセンブラの機能を呼び出せるなど低級言語のパワフルな処理を併せ持つ言語であることも外せないでしょう。


ちなみにUNIXが誕生した当時は、OSが現在のLinuxWindowsのように複数のコンピュータで使われるのではなく、それぞれ個別のコンピュータ用に作られていた時代でした。しかしUNIXはこのC言語で作成された事により、複数のコンピュータで動かせる可能性を持つ画期的なOSとなったのです。


こんな画期的な発明でありながら、当初UNIXソースコードの状態でメディアのコピー代だけで配付されていたようです。というのも、ベル研究所の親会社だったAT&Tは当時アメリカで最も巨大な通信会社であり、独占禁止法でコンピュータ産業への進出を禁止されていた事が理由だったようです。販売がダメなら配ってしまえ、という姿勢も凄いと思いますが、これもAT&Tが非常に高利益体質の会社で、かつ当時はこのような思想のOSが重要性を見いだされていなかったことも影響していると思われます。


さて、この配布されたソースコードアメリカの企業や大学、政府機関で急速に普及し使われていきました。するとユーザーからバグの修正がAT&Tに送り返され、それを組み込むことでUNIXはより安定したOSとして改良されて行ったようです。このようなオープンな改良の歴史が、UNIXの設計思想や開発手法等として文化的なものになっていきました。


ところが1980年代に入るとAT&T独占禁止法が変更され、コンピュータ分野への参入が認められました。するとAT&T社はUNIXをライセンス形式で販売することとし、無料での利用が出来なくなってしまいました。


そんな中、カリフォルニア大学バークレー校はBSD(Berkeley Software Distribution)と言う形で同校版のUNIX、つまりBSD UNIXを完成させます。私立大学と州立の工業技術系学校が合併して誕生した経緯を持つ同校はコンピュータ関係の開発に力を発揮しており、UNIXについても元々プログラムの配布活動を行っていた経緯からこのBSD UNIXも作成されたようです。


これは上記ライセンス契約に基づいたものでしたが、UNIXのライセンス費は教育機関向けには非常に安く、また同校からの再配布時のライセンス費も安かったためBSD UNIXは広く普及していきました。しかしこのBSD UNIXAT&T由来のソースコードの分別と除去を推し進め、ついにAT&T UNIX由来ではないソースコードを無償公開してしまいました。


もちろんUNIXソースコードや、特許等のライセンスを管理してきたAT&Tは、快く思うわけが無く、このBSD UNIXの商用化をきっかけとして特許及び、著作権の侵害で裁判を起こすことになりました。


裁判の結果、AT&T UNIX依存を取り除いたBSD UNIXは公開できることになりました。これがLinuxを含むオープンソースUNIX互換OSへとつながっていく源流となります。これは大きく分けてGNUオープンソースBSDに分けられますが、ここではLinuxの成り立ちに大きな影響を与えているGNUを中心に話を進めていきます。


このUNIX互換OSGNUは、再配布自由・改変自由なUNIXのクローンOSを作成する目的でリチャード・ストールマン氏が立ち上げたFSF(Free Software Foundation/フリーソフトウェア財団)のGNU(Gnu's Not Unix) プロジェクトで作成されているものです。このプロジェクトではそれ以外にもGNUで動作する多くのソフトウェアが作成されています。


また、リチャード・ストールマン氏はPOSIX(Portable Operating System Interface)という規格を国際標準規格団体であるIEEEに提案し、採用されています。これは異なる実装のUNIX OSを始めとする各種OSに共通のAPIを定め、移植性の高いアプリケーションソフトウェアの開発を容易にすることを目的としたもののようです。先に挙げたGNUプロジェクトのソフトウェアはこのPOSIXに準拠したOSであれば動くように設計されています。


さらに氏はGPL(GNU GPLGNU General Public License)というフリーソフトウェアライセンスも策定しています。ここでは詳細について触れませんが、著作権を保持したまま、すべての者が著作物を利用・再配布・改変できるコピーレフトの概念に基づいたライセンスとなっています。


このPOSIXに準拠し、GPLのライセンスを使って作成・配布されたUNIXクローンのOSがLinuxです。Linuxという言葉は、厳密にはには中核となるLinuxカーネルのことを指しますが、これはLinuxを説明する上でとても重要な事柄です。これがLinux初心者に「誤解」を与え、かつ学習の阻害となっていると考えます。これについてはおいおい後述していきます。


そもそも、Linuxカーネルリーナス・トーバルズ氏が個人で開発していたものでした。氏は当時流行りだしたパソコン上でUNIX互換のOSを使いたいと考えていたようですが、商用UNIXは高価で手が出ず、安価なものや無料のUNIXクローンのOSは満足できる状態ではなかったことから、自らが開発してしまったというのが産み出された経緯のようです。


このLinuxカーネルは、POSIXに準拠している事でも分かるように、GNUプロジェクトによって開発された様々なツールが動作するように作成されていました。リーナス・トーバルズ氏は自らが開発したカーネルGNUプロジェクトの開発したソフトウェア等と共にパッケージ化し、無料ですぐに使えるUNIXクローンのOSとして公開をしたのです。


Linuxが今日これだけの地位を確立できた背景には、発表当時「無料」で「すぐに使える」事が出来る状態だったのがポイントだったようです。登場したばかりのLinuxは実際には機能的に貧弱で、実績でも他のUNIXとは比較にならないものであったようです。しかし安価に使える前述のBSD UNIXは当時まだAT&Tとの裁判中で使える状態ではなく、それ以外のUNIXクローンもすぐ使えるものが無かったため一気に広まっていったようです。


また、誰もが改良できるGPLライセンスでの配布だったため、バザール方式と呼ばれる開発手法を生み出しました。この開発手法で多くの開発者が改良に参加し、結果としてこのクローンUNIXは着々と洗練されていきました。特にインターネットではコストを下げるサーバOSとして利用され、改良されて多くの実績を積みながら安定性と堅牢性を増していきました。


現在ではインターネット系の商用サーバでは筆頭として挙げられる存在のOSとなるまでに成長しています。おそらくこの文章を読んでいる方たちも、そんな使い方をするために読んでいる方がほとんどでしょう(かくいう私もそんな一人です)。


この無料で使え、みんなで改良し、作り上げると言うLinuxの概念はインターネットの世界を支える力のひとつとなっています。このような歴史を理解し、利用していくことがLinuxが産まれた事への経緯となると考えています。


←目次
←01.Linuxとは?
→01-02.UNIXとの違い

【参考資料】
Wikipedia
 UNIX

 Linux
 カリフォルニア大学バークレー校
 チャード・ストールマン
 フリーソフトウェア財団
 POSIX
 GNU
 コピーレフト
 リーナス・トーバルズ
 バザール方式
(以上、Wikipediaより)