Linux 0.01から35年:最初の公開は「読む」ための招待だった
1991年9月17日、Linux 0.01が公開されました。35年後の今、注目したいのは機能の多さではありません。未完成のソースを読み、限界を理解し、次の一歩に参加できるようにしたことです。

便利なインストーラーも、使い慣れたディストリビューションの選択肢もない時代を想像してください。ある部屋では開発者の実験が動いています。別の場所では、受け取ったコードを自分のコンピューターで動かすために、読者が準備を始めています。この二つの場面の間には、大きな技術的隔たりがあります。
最初のLinux公開は、その隔たりを隠していませんでした。渡されたのは、他の人が調べ、議論し、手を加えられる設計です。ギークカレンダーに記された記念日を機に、「まだ誰もが簡単に使えるわけではないソフトウェアを公開する意味」を考えてみましょう。
Linuxに複数の誕生日がある理由
1991年8月25日、9月17日、10月5日は、それぞれ異なる段階を示しています。8月にはLinus TorvaldsがMINIXのニュースグループで意見を求めました。9月は最初のソース公開、バージョン0.01に対応します。10月には、より実用的になったシステムについて改めて公に知らせています。これらを一度の製品発表にまとめると、構想の紹介とコードの共有、実際の利用の違いが見えなくなります。
Linux 0.01の歴史アーカイブには1991年9月17日という日付があります。同時に、Gitへの取り込みが2007年だったことも記録されています。後年のリポジトリが古い公開日を保存しているのであって、1991年にGitのコミットが行われたという意味ではありません。
Torvaldsは、初期の投稿を集めた1992年の回想では、最初の公開をおおよそ9月中旬と振り返っています。アーカイブの具体的な日付と、本人の大まかな記憶は、異なる種類の証拠です。今日祝うのはソースの公開であり、計画を最初に人々へ伝えた日とは区別できます。
0.01を手に入れると、何ができたのか
当時のリリースノートは、386を搭載したAT互換機向けのカーネルを説明しています。利用するには設定を変更し、ソースをコンパイルする必要がありました。VGAまたはEGAの画面、対応するハードディスクコントローラー、さらにコードに組み込まれたフィンランド語配列のキーボードまで、具体的な前提が並びます。Torvaldsは2台のマシンで動作するカーネルを生成できたと報告しています。
この細かな条件から、試作品と製品の距離が見えてきます。作者のコンピューターで動いたとしても、別の人が簡単に同じ結果を得られるとは限りません。機器への対応、ファイルの準備、構築用ツール、説明のわかりやすさは、それぞれ別の課題です。バージョン番号を付けただけでは解消しません。
カーネルは資源を管理し、プログラムとハードウェアの間を取り持ちます。しかし、実際に使える環境には、ライブラリや各種ツール、アプリケーションも必要です。リリースノートはこれらを区別し、GNUのソフトウェアが重要なツールの供給源であることにも触れています。0.01を現在のディストリビューションの小型版と考えると、公開されたものの範囲を取り違えてしまいます。
MINIXが必要でも、MINIXのコピーではない
当時の説明には、LinuxにはMINIXのコードが含まれていない一方、最初の環境を用意するためにMINIXが必要だとあります。実装そのものと、それを準備する環境を分ければ、これは矛盾しません。既存のシステム上で新しいプログラムを構築しても、そのシステムのコードを引き継いだことにはならないのです。
借りた作業台で機械を組み立てたからといって、その機械が作業台の木材からできているわけではありません。初期Linuxでも、ファイルの準備やビルドを行う足場が必要でした。MINIXのファイルシステムと互換性を持たせることは、両方の環境からデータを扱ううえでも役立ちました。
ソフトウェアの「独立性」を考えるときにも、この区別は有効です。独自のソースを持つこと、自前のツールで構築できること、単独で導入できること、独立した体制で保守できることは、それぞれ別の問いです。新しい設計を公開する日に、すべてを同時に達成する必要はありませんでした。
最初のバージョンは本当に動いた?
ここには、消してはいけない表現の食い違いがあります。1991年のノートは2台のコンピューターでの動作を伝えながら、この公開は主にコードを読むためのものだと説明しています。一方、後年の回想では、Torvaldsは0.01のソースを実際には動かせるものではなかったと表現しています。どちらか一方だけを採用すると、歴史を整えすぎてしまいます。
確実に言えるのは、0.01が実用上の厳しい制約を伴うソース公開であり、不特定の読者が安定して導入できるパッケージではなかったということです。どんな準備や手元の変更、期待の違いが表現の差につながったのかは、この二つの文書だけでは十分に説明できません。
ただし、食い違いから学べることはあります。「作者の環境で動く」「保存されたソースをビルドできる」「第三者が結果を再現できる」は別々の主張です。よい説明は、そのうち何を確認したのかを示します。後の成功を知っているからといって、最初から再現性まで整っていたと考えるべきではありません。
移植性は最初から完成していたわけではない
初期Linuxは386の機能を積極的に利用していました。リリースノートも、それが他のプロセッサーへの移植を難しくすると認めています。また、カーネル本体、ファイルシステム、メモリ管理が同じコードとデータの空間で動くと説明しており、モノリシックな設計の特徴が見て取れます。
つまり、限界のすべてが単なる未実装ではありませんでした。一つの現実のマシンで動かすために選んだ設計もあります。対象を増やすには、そのマシン固有の前提がどこまで設計に入り込んでいるかを見直す必要があります。具体的な一例から始めることと、最初から万能であることは同じではありません。
Dennis RitchieとC、Unixの移植性を扱った記事は、この問題を別の角度から説明しています。システムの多くをCで書いても、プロセッサーへの依存が自動的になくなるわけではありません。言語は変更をしやすくしてくれますが、設計上の選択は特定の機械に強く結びついたままの場合があります。
GPLへの移行は、その後の出来事
現在のLinuxから連想するライセンスを、1991年9月にそのまま当てはめることもできません。0.01の条件はソースの提供と著作権表示の保持を求める一方、配布に対して料金を取ることを禁じていました。手数料も認めない内容で、後のGPLによる取り扱いとは異なります。
Linux 0.12のリリースノートでは、この制限を取り除き、GNUのコピーレフトの条件へ移ることが提案されています。コードの貢献者が異議を伝える機会を設け、予定する発効日として2月1日を挙げています。1992年初めの文書として読むと、最初のソース公開とは別の節目であることがわかります。
歴史として押さえたいのは、コードを公開する判断と、再配布の条件を決める判断が別だという点です。条件は、他の人がどのように参加できるかを左右します。0.01の価値を認めるために、後から整った協力の仕組みまで同じ日に完成していたことにする必要はありません。
読むことで祝える35周年
まず当時のノートを開き、三種類の記述を探してみてください。動くと説明されている部分、未完成とされる部分、特定のハードウェアを前提にした部分です。そのうえでTorvaldsの後の回想と比べれば、資料と、その周囲にできた物語を区別する練習になります。普段使いのコンピューターに古いシステムを導入する必要はありません。
Linux 0.01は、限界がまだ見えている段階で仕事の中身を外に開きました。他の人が理解し、問い直し、改善を始められるようになったのです。35年後に振り返る価値があるのは、その開かれた瞬間です。最初のバージョンに未来のすべてがなくても、次の一歩はそこから始められます。
