トーバルズ氏が語ったLinux誕生初期やキャリア、Rust採用への考え--Open Source Summit
2021/10/11
Linus Torvalds氏はおよそ30年前、Linuxを生み出した。そして同氏は、9月に開催されたThe Linux Foundationの「Open Source Summit」において、VMwareのバイスプレジデント兼最高オープンソース責任者であり、友人でもあるDirk Hohndel氏とLinuxの歴史について語り合った。
両氏はまず、Linuxの本当の誕生日について話した。Hohndel氏は、Torvalds氏が「Linuxの誕生日を、誰もが用いていた8月25日ではなく、『実際には9月だ』と再定義した」点を指摘した。実際のところ、筆者はこの点についてTorvalds氏本人と話をしたことがある。それによると、Linuxの「公式誕生日」は4つの中から選ぶことができるという。
Torvalds氏はこうした状況を問題とは見なしておらず、以下のように述べた。
われわれは、しっかり定義された適切な誕生日というものを有したことがない。そして、6週間にわたってパーティーが続くというのは私にとって喜びでしかない。というのも、発表そのものについて初めて公式に話した際には、コードは用意できておらず、9月17日に初めてコードをオンラインにアップロードした際にも、しっかり準備をしたものだったとは考えていない。ただ、提供すると数人に約束していた手前、提供したにすぎなかった。このため、公式発表はしていない。その次にコードをアップロードした日を誕生日とすれば、6週間という期間内に誕生日を複数散りばめることができ、毎年その期間中に派手にパーティーを開けるようになる。
同氏は、Linuxを世に送り出した後、どんなことが起こると予想していたのだろうか。サーバーやデバイス、クラウドのOSとして世界を席巻することでなかったのは明らかだ。
Torvalds氏は当時を振り返り、「私は大学生だったが、Linuxを大学でのプロジェクトにしたことはなかった。Linuxについて誰かと話を交わしたこともなく、バージョン0.01のリリースについて電子メールを5人に送信しただけだった」と述べた。同氏はこの5人に「約束通り、アップロードしたよ」と告げただけだったという。
同氏は「私は当時、21歳であり、人生の半分くらいはプログラミングをしていた。そしてLinuxは、プログラミングに対する興味から遂行してきたそれまでのプロジェクトの1つと同じような道をたどる、つまり意味あるものを作り上げたと実感する程度に有益な成果が得られれば、別のプロジェクトを見つけ、そちらにくら替えしようと考えていた。というのもプロジェクトの意義を立証できれば(中略)十分満足でき、それ以上の興味を感じなくなるためだ」と説明した。
もちろん、実際にはそうならなかった。Torvalds氏が認めているように、「オープンソースがすべてを変えた」ためだ。同氏は、「プロジェクトの将来を決めるのが私だけだったのであれば、おそらく打ち捨てていただろう。しかし質問が寄せられるようになり、さらにはパッチも送られてくるようになったため、モチベーションが維持された。そして30年後の今があり、モチベーションは現在も維持されている。というのも、私自身について言えば、30年のうちの29年はそういったことが行われてきたのだ。また、それ以来追加してきた機能はいずれも、他の人々が必要としていた、あるいは希望していたか、興味を抱いていたものだった」と述べた。
Hohndel氏は昔を振り返り、「バージョン0.11がリリースされた後、私は最初のパッチを送ったのを覚えている。あなたは私のパッチをすべて書き直していた。そう、私のような人々からのコードは絶対にそのまま適用しようとしなかった。あの時のあなたはコードを見た後で、適切な方法で実装していた。そしてありがたいことに、どこかの時点でそうした行動をやめてくれた」と述べた。
Torvalds氏は「他の人々からのパッチを取り込んでいくという決断は極めて難しい。というのも、そういったコードが性に合わないためだ。といってもあなたの(コード)標準が悪いというわけではなく、見慣れたものではないためだ。このため、人々からパッチを送られるようになってからの最初の3~4カ月間は、パッチに目を通し、彼らが何を求めているかを理解するために熟読した。その後でコードを完全に書き直していた」と説明した。
その作業量は言うまでもなく大量だった。そしてあまりにも大変な作業だった。Torvalds氏はこの日、「私はそうした作業をあまりにも長く続けすぎたかもしれない。しかし、私は基本的に無精者だ。このため、ある時点でそのようなことは愚かしいと判断した」と告白した。その後、同氏は「パッチを適用し始めるようになり、皆はとてもハッピーになった。というのも、パッチをアップストリームに送ったとしても、アップストリームのメンテナーがそのパッチを捨て去って書き直してしまうというのは開発者にとって非常にフラストレーションのたまる話なのだ。まるで自分が取るに足らない人物だと言われているように感じられる」とHohndel氏は語った。
Torvalds氏は(自分でパッチを書き直す行為が)「コミュニティーのためにならない」と気付いたのだという。同氏は、「メンテナーが少しリラックスし、『オーケー、私はそんなに支配欲の強い人間じゃない』と告げることがとても重要なのだ。また私は実際のところ、人の書いたパッチを書き直すよりも他のことに時間を使いたいと思っている」と語った。
Hohndel氏は「私が彼にあるパッチを送付した時のことだが、とても笑える出来事があった。彼は『これじゃうまくいかない』と返信してきたのだ。このため私は愚直に『試してみたのか?』と尋ねてみた。すると同氏は、いいや、読んでみた。オーケー、クールだと返してきた」と付け加えた。Hohndel氏は1991年後半からずっとLinuxのコントリビューターを続けている。同氏がクールだったのは明らかだ。
その後、Torvalds氏は初めての職を得た。同氏は「Linuxによって必要となった作業の1つは、386のアーキテクチャーと機能すべてについて学習することだった」と回想した。また同氏は、Linuxを通じてさまざまな人とのつながりを得た。そしてx86互換チップ「Crusoe」を製造するシリコンバレーの小規模新興企業(Transmeta)と巡り会った。同氏は、「私は、386の実際の動作方法を本当に理解している極めて数少ない人間の1人だった。多くの人々はある程度の動作方法を知っている。しかしおそらくIntelの社外で、極めて細かいレベルでの動作方法を理解している人物はそうそういないだろう」と述べた。
このため、同氏は学業を終えていなかったにもかかわらず、1997年にカリフォルニア州ベイエリアに居を移し、就職した。同氏によると、それは「素晴らしいことだった。というのも先延ばしにしていた論文の執筆を片付け、米国に居を構えるための事務作業に取り掛かる唯一のきっかけになったためだ」という。
なお、Crusoeは技術的には成功したものの、Transmetaは残念ながら同チップから収益を得ることができなかった。
しかし、Torvalds氏は「自分以外のあらゆる人々が3年ごとに転職する」というシリコンバレーのテクノロジー文化が自らに合っていないということを在職中に実感した。同氏は、「私は退屈な人間であり、1つのことを実行したいだけの人間だ。つまり、私は1つのことしか考えられない性格なのだ」と述べた。つまり、その1つのこととは主にLinuxだったのだ。
このため、同氏は2003年にTransmetaを退社し、The Linux Foundationの前身であるOpen Source Development Labs(OSDL)に参加した。同氏はそこで、ほぼすべての時間を使ってLinuxに取り組むことになる。
Torvalds氏はそれに満足している。その過程で同氏は多くの素晴らしい友人に出会った。同氏は特に「1991年に出来上がったカーネルに今でもかなりの人々が関わっているという点を非常に誇らしく感じている。文字通り30年前も前からなのだ。Dirk(Hohndel氏)もその1人だ。しかし、当時の人々がどれだけ少なかったとしても、今も複数の人々がいるという事実があり、『そうだ彼がいた。彼はLinuxがLinuxである前からそこにいた』と言える。私はそのこと自体が、このコミュニティーが全体的に素晴らしいものであり続けているのかを示す証であると考えている。そして、それがとても楽しいのだ」と述べた。
Torvalds氏は、RustがLinuxにどのように採り入れられていくのかについても語った。Hohndel氏は、「Rustはセキュリティにフォーカスしている多くの人々が温めてきた有望な言語であるため、同言語でカーネルモジュールを記述するという考えには非常に興味をそそられる。私は何から何までC言語を使うあなたのようなプログラマーが、カーネルにRustのモジュールを取り込むというこのアイデアに対応している点にとても驚いた」とこの件について切り出した。
Torvalds氏はこれに対して、「私はCを素晴らしい言語だと考えている。Cは私にとって、極めて低水準でハードウェアを制御するための手段なのだ」と答えた上で、「これはハードウェアに非常に近い言語であるため、どんなことでもできる。ただ、チェーンソーでジャグリングするような危険を伴う。また、数多くの落とし穴があり、それらは簡単に見落とされてしまうことも理解している。このためカーネルにおいては、良いことばかりというわけではない。低水準でのメモリー管理、例えばプロセスの仮想メモリーマップを文字通り設定管理するといった作業では優れている。しかしその他多くの状況においては望ましい言語ではない。Rustは私が見た言語の中で、特定の問題を実際に解決できる可能性のある初めての言語だ。その問題とは、マシンコードを読み取れ、Cのコードと調和させられるような極めて低水準でマシンを制御するというものではなく、ドライバーやファイルシステム周りのコードを記述するというものだ」と述べた。
こういったレベルの作業では、Rustを使ってドライバーやファイルシステム、ルーチンを開発する方がずっと安全だ。とは言うものの、Torvalds氏は皆に対して「カーネル内のRustに関する議論は長い間続いているが、終わったわけではない」とくぎを刺した。とはいえ、それは採用されることになる。同氏は「おそらく2022年には一部のモジュールがRustで記述されるだろうし、メインラインのカーネルに統合されるようになるかもしれない」と述べた。
対談の最後は、次回のOpen Source Summitをフィジーで開催してほしいというTorvalds氏の希望で締めくくられた。The Linux FoundationのエクゼクティブディレクターであるJim Zemlin氏は、1991年の電子メールを非代替性トークン(NFT:Non-Fungible Token)にしてオークションに出品すればイベントの費用をまかなえると提案した。Torvalds氏はひとしきり笑った後、恐ろしいものを見たかのように「私は暗号関連やNFTといったクレイジーな物事に関わらないようにしている。彼らはまともじゃない!」と返した。