ハッカーの系譜⑨オープンソースの巨人たち (1) OSという考えを創造した「UNIX」誕生

牧野武文

November 30, 2016 08:00
by 牧野武文

デジタルの世界に身を置く者であれば、「オープンソース」という言葉は何度も耳にしたことがあるはずだ。ソフトウェアのソースコードを(原則無償で)公開してしまうことを言う。しかし、多くの人がオープンソースに対して、今ひとつよくわからない、もやもやした印象をもっているのではないだろうか。それは、オープンソースがときには反体制運動であり、ときには斬新なマーケティング手法であり、ときには効率的な開発手法であったりと、オープンソースは姿を変えながら、私たちの目の前に現れてくるからだ。

逆転した固定観念を崩そうとしてきた歴史

重要なのは、アイディア、知恵といったものを多くの人と共有するには、オープンソースがもっとも自然な方法であるということだ。著作権、特許権といったオリジネイターに経済的な恩恵を独占させる仕組みは、発明や著作活動を促すための特別な方策にすぎない。ところが、私たちはこのようなクローズな方策こそあたり前で、オープンソースは特殊な考え方であると勘違いをしている。実は、オープンソースこそ自然で基本となる考え方なのだ。

オープンソース運動の歴史は、この逆転した固定観念を崩そうとしてきた歴史でもある。UNIXを開発したケン・トンプソンは、ごく自然にオープンソースによる配布をおこなったが、UNIXを商品にして販売したいAT&Tが、制限をかけ始めると、カリフォルニア大学バークレー校のチームが、独自にオープンソース版UNIX「BSD」を開発した。

ソフトウェアがビジネスになり、非オープンソース方式で「販売」されるようになると、プログラマーとユーザーの自由と権利が侵されようとしている感じた人工知能研究者、リチャード・ストールマンは、GNU(グニュ)プロジェクトを始めて、コピーレフト運動を始めた。

Linuxを開発したリーナス・トーバルズは、オープンソースにすることで、多くの開発者の協力を得ることに成功し、学生の趣味だったLinuxを、世の中にとってなくてはならないプラットフォームに育てた。

一世を風靡したウェブブラウザー「ネットスケープナビゲーター」は、マイクロソフトのインターネットエクスプローラーにシェアを奪われると、オープンソース手法で逆転をしようとした。

そして、今、どのようなソフトウェア、どのようなウェブサービスでも、オープンソースの考え方を採用していないものはない。表面上は、非オープンソースで販売をしているかのように見えても、必ずオープンソースのレイヤーをもっていて、「アイディアの共有」と「ビジネス」を融合しようとしている。

オープンソース運動は「独占して経済的利益を得る」という近代になって生まれた比較的新しいビジネスモデルを、人間にとって自然なビジネスモデルに回帰させようとしてきた歴史なのだ。今回は、一人のハッカーを追いかけるのではなく、UNIX、GNU、Linux、ネットスケープのオープンソース運動を追いながら、オープンソースとはなにかということを明らかにしていきたい。

オープンソースはコミュニティーを拡大する

オープンソースという考え方は、決して新しいものではない。対極にある考え方をクローズドソースと呼ぶなら、こちらの方がむしろ新しい考え方で、私たち人類はそもそもオープンソースの考え方こそ自然であると考えてきた。

あるとき、おそらくはアフリカあたりで、石ころを割ってみると、角が鋭利な刃物の代わりになることを発見し、原始的なチョッピングツールを製造し始めた人がいた。当時としては画期的なイノベーションだったが、彼は特許権を申請することはとくにしなかった。また、あるとき、おそらくは中国あたりで、周りに存在する物の形を、線で骨に刻むことで、記録ができることを発見した人がいた。世の中を変えてしまう革命的なイノベーションだったが、彼は著作権を主張することはなかった。

このような石器や漢字は、集団の中で共有され、しだいに他の集団まで伝播し、「文明」「文化」と呼ばれるものになっていった。文明を所有した集団は、その文明を独占しようとはしなかった。むしろ、積極的に他の集団に伝えていった。なぜなら、同じ文化、文明を共有することで、集団同士が融合することができ、集団規模を大きくすることができたからだ。生存条件が厳しい環境では、集団を大きくすることが生き延びられる確率を高めてくれる。

つまり、私たちは、コンピューターが登場するはるか昔から、「オープンソースはコミュニティーを拡大する」という原理を知っていたことになる。

ところが、集団の拡大が限界に達し、むしろ限られた食料や資源を奪い合うリソース確保が集団の関心事になってくると、オープンソースの考え方は後退をしていく。石器や漢字並みの発明、発見をした者は、それを集団内外で共有するのではなく、独占をするようになっていった。イノベーションが富に直結するようになったからだ。薬商は、人気の漢方薬の調合を秘匿した。紹興の酒蔵は、製法そのものを門外不出にした。街中のラーメン店はタレの隠し味を秘伝にした。

市場拡大とオープンソース、市場飽和とクローズドソース

つまり、市場が拡大しているときはオープンソースが有利に働き、市場が飽和するとクローズドソースが有利に働くのだ。オープンソースをかたくなに受け入れないことで知られるマイクロソフトは、市場が静的なものだと考えているのかもしれない。固定した市場の中で、いかにシェアを奪うかが最大の関心事なのだろう。そう考える人にとっては、富に変換できる価値のある商品を、タダで配ってしまうなどということは、狂気の沙汰にしか思えないのだ。

しかし、市場が今後も拡大するだけでなく、イノベーションがまったく新たな市場を生みだすと見ている人は、自分たちのコミュニティーを拡大するために、オープンソースの考え方を採用する。BSD版UNIX、Linux、Mozillaなどがそうだ。それだけでなく、AppleのmacOSも部分的にオープンソースだ。BSD系UNIXの流れであるオープンソースOS「Darwin」がベースになって、macOSがつくられている。そのため、macOSは非常に安定している。「フリーズ」という言葉はほぼ死語になっているし、セキュリティ面も堅牢だ。DarwinやMacコミュニティの人々がソースコードに目を光らし、問題点の修正を積み上げてきた成果だ。これに、アップルが得意としていたUI/UX(ユーザーインタフェース、ユーザー体験)を組み合わせることで、多くの人から支持されるOSになっているのだ。

Space Travelゲームから始まったUNIX

オペレーティングシステム(この場合、プラットフォームと言った方がしっくりくる)という発想は、UNIXが創造し、MacOSが洗練させ、Windowsが普及させ、Linuxが解放したと言われる。

1960年代、AT&Tベル研究所、ジェネラルエレクトリック社(GE)、マサチューセッツ工科大学(MIT)の共同プロジェクトとして「Multics」というOSの共同開発がおこなわれていた。これはGEのコンピューター「GE-645」上で動作することを目指したものだった。しかし、このプロジェクトは成果を上げることがでずに暗礁に乗り上げる。これは名前からもわかるとおり、複数のユーザーが1台のコンピューターを共有して使えるようにすることを目的にしたものだった。

このプロジェクトに加わっていたベル研究所のケン・トンプソンは、暇を見つけてMultics用にSpace Travelというゲームを書いた。これは重力の影響を受けながら、宇宙船が太陽系を旅するというものだ。

Multicsのプロジェクトが中断したため、トンプソンはベル研究所内のコンピューターでSpace Travelが動くようにしたかった。しかし、あくまでも遊びなので、研究に使われているコンピューターを使うわけにはいなかない。研究所の中を見回してみると、DEC社製のPDP-7がだれも使っていないようなので、これに移植をして、Space Travelを遊んでいた。

すると、トンプソンの周辺の研究者が面白がって、PDP-7用にファイルシステムなどを開発し始めた。この輪はしだいに大きくなり、PDP-7上に原始的なOSのようなものができあがっていった。これがUNIXの始まりだ。1969年頃のことだ。

ケン・トンプソン(左)とデニス・リッチー(右) Photo by Wikipedia

移植性を確保するために開発されたC言語

この原始的UNIXは、あくまでも研究者の間でのお遊びでしかなかった。しかし、ベル研究所はこのお遊びに注目をした。より性能のいいコンピューターで動くようになれば、OS理論の研究と実践に寄与するのではないか。1970年、ベル研究所のコンピューター科学研究グループは、正式研究開発として、より性能のいいPDP-11/20上のOSを開発することを決定。Multicsをもじって、Unics(ユニックス)と名付けられた。

このUNIXは、1971年頃には一応の完成を見た。しかし、研究グループは次の段階として、それまでに誰も試みたことがなかったことに挑戦し始めた。課題となったのは、このUNIXはアセンブラ(機械語)で記述されているため、PDP-11/20でしか動かないということだった。他のコンピューター上でUNIXを動かすには、そのコンピューター専用のアセンブラでゼロから書きなおしてやらなければならないのだ。

そこで、この研究に参加していたデニス・リッチーは、素晴らしい発想をもちこんだ。それは人間にも理解しやすい高級言語を開発し、これでOSを記述してしまおうというものだった。高級言語は、文章的な文法で記述ができるために、人間に理解がしやすい。しかし、コンピューターには理解ができない。そこで、高級言語で記述したソースコードを、機械語に翻訳してやる必要がある。これがコンパイルで、この翻訳をおこなうのがコンパイラーと呼ばれるソフトウェアだ。

もし、さまざまなコンピューター用のコンパイラーを開発すれば、同じソースコードをさまざまな機種のコンピューターの機械語に翻訳をして、実行することができる。修正が必要なときも、ソースコードを修正して配布すれば、各コンピューターでコンパイルし直すことで、実行できるUNIXとなる。

デニス・リッチーはこのような発想で、C言語を開発した。C言語はUNIXというOSを記述するために開発されたのだ。

最初のUNIXは自然とオープンソース方式になった

こうして、1972年の間には、UNIXは完全にC言語で書きなおされた。1973年11月に、バーデュー大学でOS理論のシンポジウムが開催された。ベル研究所のトンプソンとリッチーはここで論文を発表した。初めて、正式にUNIXが紹介された記念すべき日になった。

すると、その講演を聞いたカリフォルニア大学バークレー校のファブリー教授が、UNIXを分けてもらって使わせてもらえないかと申し出た。バークレー校にはPDP-11がなかったが、ファブリー教授はコンピューター科学部、数学部、統計部の共同購入の形で入手する手はずを整えた。翌1974年1月には、バークレー校にコンピューターとUNIXが記録された磁気テープが届いた。

このとき、使用料や著作権といった問題はだれも口にしなかった。UNIXは科学研究だったのだ。科学者が、科学を発展させるために、論文を公開し、知見を伝えあい、場合によっては研究試料を互いに分かちあうのはあたりまえのことだったのだ。

トンプソンは、他の大学に対しても気前よくUNIXを分けただけでなく、インストール時には手伝いにまでいっている。

トンプソンたちは、ベル研究所でUNIXを改良していき、それをさまざまな大学に配布するようになった。そして、1975年の秋、トンプソンはベル研究所の長期休暇を利用して、その間、バークレー校の客員教授を務めた。そのため、バークレー校でもUNIXはどんどん改良されていった。とくに、バークレー大学院のビル・ジョイとチャック・ヘイリーがUNIX上で優秀なPascalコンパイラを開発すると、他の大学からもこのPascalコンパイラを使いたいという声が上がってきた。Pascalコンパイラを使うには、当然UNIXも必要になる。そこでバークレー校はベル研究所とは別に、UNIXとPascalをいっしょにして各大学に配布するようになる。これがBerkley Software Distribution(BSD)の始まりとなった。

UNIXはベル研究所が配布するもの、バークレー校が配布するBSDの2系統が存在するようになった。
 
その2に続く

米露サイバー戦争 2017 (2) ホワイトハウスのブログとオバマの決断

January 20, 2017 08:30

by 江添 佳代子

ブログに記された解説と改正の詳細 前回に紹介したオバマ大統領の声明文で興味深いのは、やはりロシアへの報復措置が具体的に挙げられた部分である。しかし「どれぐらい重大なことが起きたのか、あまりピンとこない」と感じた人もいるだろう。 実はホワイトハウスのブログ(こちらはオバマ首相ではなく、国家安全保障会議…

2016年サイバーセキュリティ重大トピックス (7) 史上最高の「1Tbps超」DDoS攻撃が発生。誰もが誰にでも巨大DDoSができる時代

January 20, 2017 08:00

by 西方望

多数のネットワーク機器から1ヵ所に大きな負荷を掛けるDDoS(Disributed Denial of Services:分散型サービス拒否)攻撃は非常にやっかいな代物だ。 大規模なDDoSに対しては、即時的・効果的な防御手段はほとんどなく、高速なサーバー、広帯域の回線、多数の機器による負荷分散を備…