Dance with Agents

Androidの土台に眠っているのは、大学生が趣味で書いたLinuxというカーネルだった

『UNIXという1つの土台の上に、いまのiPhone・Mac・Linux・Androidが建っている』で、Linuxは「Unixのソースコードを使わず、ゼロから独立して書かれたカーネル」だと書きました。では、そのLinuxそのものは、誰が、なぜ書いたのか。 答えは、1991年、ヘルシンキ大学の一学生が趣味で始めた個人プロジェクトです。


教材用OSだった、MINIXへの物足りなさ

Linuxより前に、Unixに似た小さなOSがすでにありました。オランダの計算機科学者アンドリュー・タネンバウムが、自身の教科書『Operating Systems: Design and Implementation』の教材として1987年に作った、MINIXです。ソースコード(プログラムの原文)は読めるものの、教材という位置づけ上、自由に改造して配り直すことは想定されていませんでした。実際に自由なライセンス(BSDライセンス)に切り替わったのは2000年4月になってからで、これはLinuxが生まれてから9年も後のことです。

タネンバウム本人も、後年のインタビューで「リーナス・トーバルズはMINIXを手に入れ、そのソースコードを発展させ始めた学生だった。彼はMINIXを動かすためだけにわざわざPCを買い、MINIXのニュースグループ(当時のオンライン掲示板)にも参加して、そこで多くの時間をLinuxの開発に費やしていた」と振り返っています。ヘルシンキ大学の学生だったリーナス・トーバルズは、MINIXを土台に、自分の望む形に自由に改造できるOSを、独自に書き始めました。

1991年8月25日、掲示板に投稿された一文

1991年8月25日、トーバルズはMINIXのニュースグループに、次のような投稿をします。「MINIXを使っている皆さんへ。386/486のATクローン機向けに、(無料の)OSを作っています。ただの趣味なので、GNUのように大きく本格的なものにはなりません」。すでにbash(コマンドを打ち込むための基本ソフト)とgcc(プログラムの原文を、機械が実行できる命令に変換するソフト)を移植できていて、数か月以内には実用的になりそうだとも書き添えています。

「大きく本格的なものにはならない」という一文が、いまや世界中のサーバー・スマートフォン・家電にまで行き渡ったOSの、最初の言葉だったわけです。

名前は、本人の希望通りではなかった

トーバルズは当初、このプロジェクトを「Freax」(free+freak+Unix系OSによくある語尾のx、を組み合わせた造語)と呼んでいました。半年ほどこの名前で自分のマシン上に置いていたのですが、公開するために置いたヘルシンキ工科大学のFTPサーバー(ファイルを置いて配布するためのサーバー)の管理者アリ・レムケが、この名前を気に入らず、本人に断りなくアップロード先のディレクトリ名を「linux」に変更してしまいました。トーバルズ本人の回顧録『Just for Fun』によれば、これがそのまま定着し、現在の名前になったといいます。

カーネル単体では、OSとして動かない

Linuxという言葉が指しているのは、正確にはカーネル(ハードウェアを直接操作して、ソフトウェア全体を動かしている中核部分)だけです。カーネルは、ハードウェアの資源をどのプログラムにどう割り当てるかを差配する、いわば交通整理役で、これ単体ではOSとして動きません。文字を打ち込むための仕組み(シェル)や、プログラムを機械が実行できる形に変換する仕組み(コンパイラ)といった、周りの部品が揃って初めて、使えるOSになります。

その周りの部品は、GNU公式サイトが説明している通り、トーバルズがLinuxを書き始めるより前から、リチャード・ストールマンが1983年に始めたGNUプロジェクトによってほとんど揃っていました。実際、トーバルズ自身も最初の投稿で、GNUのbashとgccを移植済みだと書いています。GNU公式サイトの言葉を借りれば、「Linuxが登場した1992年、それはGNUというOSに最後まで欠けていた大きな穴を埋めた」わけです。この経緯から、GNUプロジェクトは「Linux」ではなく「GNU/Linux」と呼ぶべきだと主張しています。

GPLで自由なコードとして手放した

1992年、トーバルズはLinuxを、自分で決めた制限付きのライセンスから、GNUプロジェクトが使っているGNU General Public License(GPL)に切り替えます。GPLは、誰でも自由にソースコードを使い・改造し・配り直せるが、配り直すときは同じ自由を次の人にも保証しなければならない、というライセンスです。この切り替えによって、企業も個人のボランティアも、同じルールの上で安心してLinuxの開発に加われるようになりました。トーバルズ自身、後年「自分がやった中で最良の決断だった」と振り返っています。

一人の趣味から、企業も参加する巨大プロジェクトへ

Linux Foundationが2017年に公表した調査によれば、Gitでの管理が始まった2005年以降だけでも、1,400社を超える企業に所属する15,600人以上の開発者がLinuxカーネルの開発に関わってきました。「大きく本格的なものにはならない」という1991年の言葉とは裏腹に、いまのLinuxは、一人の学生の趣味からは想像もつかない規模の共同作業に育っています。

Androidの根っこは、Linuxカーネル

もう1つ、身近な例があります。Androidです。Android公式ドキュメントが明記している通り、Androidは「上流のLinux LTS(長期サポート)カーネルをベースにしている」OSです。ただし、これはAndroidの中身がまるごとLinuxだという意味ではありません。Linuxが担っているのはカーネル(ハードウェアを直接操作する中核部分)だけで、その上にはAndroid独自の実行環境やアプリの仕組みが何層も重なっています。 Windows・Macは知っていても、Linuxという名前を意識したことがない人は多いはずですが、世界中で使われているAndroidスマートフォンの土台でも、1991年にヘルシンキで書かれ始めたのと同じ血筋のカーネルが動いています。

まとめ

  • Linuxは1991年、ヘルシンキ大学の学生リーナス・トーバルズが、教材用OSのMINIXに物足りなさを覚えて始めた個人プロジェクト
  • 名前は本人が望んだ「Freax」ではなく、FTPサーバー管理者が付けた「linux」がそのまま定着した
  • Linux(カーネル)単体ではOSとして動かず、GNUプロジェクトが用意していたシェルやコンパイラと組み合わさって初めて使えるOSになった
  • 1992年にGPLへ切り替えたことで、企業も個人も自由に開発へ参加できるようになり、一人の趣味が巨大な共同開発へと育った
  • Androidも、公式にLinuxカーネルを土台にしている(ただし中身のすべてがLinuxというわけではなく、その上にAndroid独自の層が重なっている)

Linuxの生みの親であるリーナス・トーバルズは、この14年後の2005年にもう1つ、いまや世界中の開発現場で使われている道具を作ります。『いまや世界中で使われているGitは、わずか10日間で書かれたものだった』で、その経緯をたどります。

コンピュータ史の記事

コンピュータ史のページへ →