ソフトウェア

Linux生みの親リーナス・トーバルズの当時のメールで振り返る「Linux」誕生の瞬間

by Eduardo Quagliato

オープンソースコミュニティで最も成功したプロジェクトのひとつである「Linux」は、1991年にヘルシンキ大学の学生であったリーナス・トーバルズ氏によって開発されたOSであり、ウェブサーバーやスマートフォン、IoTデバイスをも支える、現代においてなくてはならない存在です。そんなトーバルズ氏が「Linuxの始まり」を当時のメールをもとに振り返る記述が、カーネギーメロン大学で教授を務めるAlan W Black氏によって公開されています。

LINUX's History by Linus Torvalds
https://www.cs.cmu.edu/~awb/linux.history.html

1991年の7月3日、トーバルズ氏はUSENETMINIXネームスペースに姿を現し、新しいOSの開発を公言するとともに、プログラムのデバッグをMINIXユーザーに求めました。


From: [email protected] (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: Gcc-1.40 and a posix-question
Message-ID:
Date: 3 Jul 91 10:00:50 GMT

こんにちは、ネットの皆さん

私はあるプロジェクトのために(MINIXで)作業をしており、POSIX標準規格について興味を持っています。誰か私に機械が判読できる最新のPOSIXルールを教えていただけないでしょうか?FTPのサイトが好ましいです。



メール文中に登場する「あるプロジェクト」がまさにLinuxであり、1991年の7月3日がLinuxのユーザーレベルでの実装について考え始めたタイミングだったトーバルズ氏はコメント。その時点でいくつかデバイスドライバーは完成しており、ハードディスクも動作する段階だったそうです。


また、当時名前付きパイプについて学んだばかりだったトーバルズ氏は、名前付きパイプの動作確認をメールに追記する形でMINIXユーザーに以下のように求めています。


PS. 私が作った「changing.plan」をインストールしてみたのですが、海外の環境でも動作するのか確証が持てません。海外にいる人で、誰か動作確認していただけないでしょうか?changing.planは毎回新しい「.plan」を出力します。



このメールから約2カ月後の1991年8月25日、Linuxのバージョン0.01がリリースされましたが、実は動作しないものであったとトーバルズ氏。0.01はLinuxの完成を待ちくたびれた人たちへ、開発が進んでいることを表すある種のジェスチャーであったとのこと。以下は、バージョン0.01をリリースする数週間前にトーバルズ氏が送信したメールの抜粋です。


From: [email protected] (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID:
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki

MINIXを使っている皆さん、こんにちは


私は(無料の)オペレーティングシステム(GNUのように大きくプロ向けではない、趣味レベルのもの)をAT-386互換機向けに開発しています。4月から準備を始めていましたが、ついにリリースの準備が整いました。私のOSはMINIXに似ている箇所がある(特に、実用的な理由でファイルシステムの物理的なレイアウトが同じ)ので、MINIXについての好きな点・嫌いな点についてのフィードバックが欲しいです。

現在はBash 1.08とGCC 1.40の移植作業を行っており、動作を確認しています。これは、数カ月以内に実用的なOSが完成するということを意味していて、私は多くの人が欲しがる機能を知りたいです。どんな機能の提案でも歓迎しますが、実際に機能を実装するかどうかは約束できません:-)



メーリングリストのメンバーからの「メモリ管理ユニットは必要なのか」「どれくらいがC言語で構成されているのか」といった技術的な質問に答えながら、トーバルズ氏は9月中旬にLinuxのバージョン0.01をリリースしたとのこと。しかし、バージョン0.01には自信が持てていなかったため、興味がある人向けにソースコードのみ、リリースの告知なしで公開したとのこと。


そしてバージョン0.01のリリースから約2カ月後の1991年10月5日、Linuxのバージョン0.02がリリースされました。


From: [email protected] (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: Free minix-like kernel sources for 386-AT
Message-ID:
Date: 5 Oct 91 05:41:06 GMT
Organization: University of Helsinki

自分でデバイスドライバーを書いていたMINIX 1.1が懐かしくなりませんか?いいプロジェクトがなくて、自分のニーズに合わせて変更できるOSと苦労して向き合いたいと思っていませんか?MINIXですべてが動作することにイライラしていませんか?気の利いたプログラムを動作させるのに徹夜することはもうありませんか?もしそうなら、この投稿はあなたのためのものです:-)

1カ月ほど前にも触れましたが、私はAT-386互換機向けの無料版のMINIXのようなOSの開発に取り組んでいます。ついに実用的な段階に到達しました(あなたが求めるものは満たしていないかもしれません)、そして、そのソースコードを広く公開しようと思っています。バージョンはたった0.02(ひとつバージョンを上げる小さなパッチの準備ができています)ですが、Bash、GCC、GNU makeGNU sedcompressなどの動作に成功しています。

ソースコードはnic.funet.fi(128.214.6.100)サーバーの「/pub/OS/Linux」ディレクトリにあります。ディレクトリ内にはいくつかのREADMEファイルと、Linux上で動作するいくつかのバイナリ(bash、update、gccなど)が置かれています。MINIXのコードを使用していない、完全なカーネルのソースコードが提供されています。ライブラリのソースコードは一部有料なので、現在はLinuxに含まれていないものがあります。バイナリのソースコードは「/pub/gnu」にあります。

中略

「なぜLinuxを開発したの?」という声が聞こえてきます。GNU Hurdがリリース予定ですし、すでにMINIXもあります。これはハッカーによるハッカーのためのプログラムです。私はこのプログラムを楽しんでいますし、他の人もプログラムに触れたり、自分好みにプログラムを変更したりして楽しむかもしれません。Linuxはまだ全体を理解し、使ってみて、変更するには困らない程度に小さなプログラムです。そんなわけなので、皆さんのコメントをお待ちしています。

私はminixのユーティリティやライブラリを書いてきた人からの意見に興味があります。もしあなたの努力が(著作権のもと、もしくはパブリックドメインで)共有できるのであれば、意見を聞き、Linuxに取り入れることができます。私は現在Earl Chews estdio(素晴らしいシステム、Earlさんありがとう)を使用しており、共同開発者も大歓迎です。もちろんあなたの著作権は保護されます。もし私にあなたのコードを利用させてくれるのであれば、連絡をお願いします。



トーバルズ氏はこの時点のLinuxについて「システムと呼べるものかどうか怪しかったですが、きちんと動作し、試した人もいました」とコメント。重大なバグもいくつかあり、0.02は真に実用的なものではなかったとのこと。

0.02の数週間後にリリースされた0.03は実用的なものとなっていたとトーバルズ氏は述べています。0.11ではデマンドローディングやコンソールのビープ音、mkfsやfsckといった現在のLinuxでもよく利用されるディスク操作コマンドに対応しました。0.01のリリースから1年後にはバージョンが0.9台に到達するほど活発な開発が行われました。Linuxの開発が始まってから29年となる2020年現在、GitHubのコミット数は100万件を超えており、オープンソースコミュニティにおいて最大規模のプロジェクトとなっています。


また、Linuxなどのオープンソースコミュニティを支えるLinux Foundationは、2020年8月にLinuxの29年の歴史を振り返る「Linux Kernel History Report」を公開しており、以下のURLからダウンロードすることができます。

Download the 2020 Linux Kernel History Report - The Linux Foundation
https://www.linuxfoundation.org/blog/2020/08/download-the-2020-linux-kernel-history-report/

この記事のタイトルとURLをコピーする

・関連記事
Googleが生んだ「Kubernetes」がポケGOやメルカリを支えるほどの成功を収めた理由とは? - GIGAZINE

UNIX/Linuxの「デーモン」はこうやって作る - GIGAZINE

UNIX/Linuxでよく使われる「Daemon」(デーモン)プロセスの語源とは? - GIGAZINE

Windowsの「タスクマネージャー」を開発した本人が直々に使い方や知られざる機能を伝授 - GIGAZINE

おなじみ「ping」コマンドの生みの親が20年以上前に開発秘話を記したブログ - GIGAZINE

in ソフトウェア, Posted by log1n_yi

You can read the machine translated English article here.