Linux初期時代 (2023)
(lwn.net)- 1988年、Helsinki大学で出会ったLars WirzeniusとLinus Torvaldsは、UnixサーバーとUsenetに共に触れ、Linuxへとつながるオペレーティングシステム探求の出発点を築いた
- 1991年、Linusが386 PCとMINIXを購入した後に始めたマルチタスク実験は、画面に
AとBを交互に表示する小さなプログラムからLinuxカーネルへと拡張された - 初期カーネルはキーボード・シリアルポートドライバ、VT100エミュレーション、モデム接続、ファイル権限、仮想メモリを加え、実際に使えるオペレーティングシステムに近づいていった
- 1991年のcomp.os.minixでの公開とftp.funet.fiへのアップロード、1992年のGNU GPL採用・X11移植・SLS登場、1994年のLinux 1.0リリースが、初期普及の転換点となった
- 1991年の「大規模でプロフェッショナルにはならないだろう」という表現とは異なり、2023年のLinuxは数十億台の機器と、すべての大陸・海洋、軌道上、さらには火星にまで実行範囲を広げている
Helsinkiで始まった縁とUnix体験
- Lars Wirzeniusは1988年秋にUniversity of Helsinkiの計算機科学課程へ入学し、同年にスウェーデン語話者の新入生だったLinus Torvaldsと出会った
- 1年目の終わりにUnixサーバーへのアクセス権を得た後、
rmをrnと打ち間違えたことで、偶然Usenetリーダーを発見した - WirzeniusがLinusにUsenetを教えたことで、2人は多くの時間を費やしてそれを探索した
- 1990年秋、兵役を終えて復学した2人はCとUnixプログラミングの講義を受講し、Unixカーネル構造の理論も共に学んだ
- この過程でQNX、Plan 9のようなオペレーティングシステムカーネルを読み、OS設計について議論した
386 PCと最初のカーネル実験
- 1991年1月、Linusは自作PCを購入した
- CPUは当時としては比較的高性能だった386
- RAMは4MB
- ハードドライブを搭載
- マルチタスクを探求するには386が必要であり、以前に32ビットMotorola 68008 CPUを持つSinclair QLを使っていたため、16ビット286は選ばなかった
- 最初の数か月はPrince of Persiaに多くの時間を費やし、その後、自宅でもUnixに似た環境を使うためにMINIXを購入した
- ゲームを終えた後、Intelアセンブリ言語を学び始め、ある日、1つのタスクが
A、別のタスクがBを画面に表示するマルチタスクプログラムを見せた - この小さなプログラムが、後にLinuxカーネルとして知られる最初のバージョンになった
初期カーネル機能と名前の変化
- Linusはプログラムを拡張しながら、その大部分をCで書き始めた
- 1991年晩春、WirzeniusはLinusのためにCのsprintf()実装を書いた
- Linusがまだ可変長引数リストを使う関数の書き方を学んでいなかったためである
- このコードの中核は、現在のカーネルのsnprintf()に残っている
- 初期カーネルは時間とともに実用に必要な機能を備えていった
- キーボードドライバ
- シリアルポートドライバ
- 画面用VT100ターミナルエスケープシーケンスのエミュレーション
- モデムで大学に電話をかけ、自宅からUsenetを読む機能
- Linusが誤ってハードドライブを使って大学に電話しようとしたことで、マスターブートセクタが
ATDTと大学のモデムプールの電話番号で始まるようになった - この事故の後、カーネルにファイル権限が実装された
公開とGPL採用
- 1991年8月、Linusはcomp.os.minixニュースグループで新しいカーネルについて初めて公に言及した
- 当時の文面には、「freeなOSを作っている」「ただの趣味だ」「gnuのように大規模でプロフェッショナルにはならないだろう」といった表現が含まれていた
- システムの初期名はFreaxだった
- 数週間後、Linusはftp.funet.fiの管理者の1人であるAri Lemmkeに最初のtarアーカイブのアップロードを依頼し、AriがLinuxという名前を選んだ
- 初期バージョンには、元の名前が1つのソースファイルに残っている
- 人々が新しいシステムを試したがるようになり、インストール方法と手順が必要になった
- LinusはPCを1台しか持っておらず、自分のMinixインストール上でLinuxを開発していたため、実際のインストール経験がなかった
- WirzeniusのPCがLinuxが最初にインストールされたPCになった
- 初期Linuxリリースのライセンスは商用利用を禁じていた
- 一部の初期貢献者は、自由ソフトウェアライセンスに変更するよう提案した
- 1991年秋、Richard StallmanがFinlandを訪れ、WirzeniusはLinusをStallmanの講演に連れて行った
- 貢献者たちの圧力、Stallmanの講演、Wirzeniusの説得が重なり、Linusは1992年初頭にGNU GPLを選んだ
- クリスマス休暇の間に、LinusはLinuxに仮想メモリを実装し、メモリの少ない低価格マシンでもLinuxがはるかに実用的に動作するようになった
1992年: 論争、デスクトップ、ディストリビューション
- 1992年はAndrew Tanenbaumとの有名な論争で始まった
- TanenbaumはMINIXの作者で大学教授であり、Linuxとそのアーキテクチャについて意見を述べた
- LinusもMINIXについて意見を述べた
- この論争はflame warと呼ばれたが、振り返ってみるとかなり礼儀正しいものだった
- Linuxの将来の成功により重要だった出来事は、X11がLinuxへ移植されたことであり、1992年はLinuxデスクトップの年となった
- Wirzeniusはカーネルよりもコミュニティ側に貢献することを選び、質問への回答や文書作成を手伝った
- 短期間発行されたLinuxニュースレターも作り、このニュースレターにはLinusの最初のインタビューが掲載された
- このニュースレターは事実上comp.os.linux.announceニュースグループに置き換えられた
- 1992年、最初のLinuxディストリビューションであるSoftlanding Linux System、すなわちSLSが始まった
- 翌年、SLSはSlackwareへとつながり、SlackwareはIan Murdockが1993年にDebianを始める際に影響を与えた
- Debianは、よりコミュニティ主導の開発構造を探るために始められた
大学のオフィス、ネットワーキング、移植
- 1993年、LinusとWirzeniusは大学のティーチングアシスタントとして雇われ、オフィスを共有した
- オフィスにはPCがあり、LinusはそれをLinux開発に使った
- ある日、LinusはPCが遅いと感じ、Linuxカーネルのコマンドラインパーサを速度向上のためにアセンブリ言語で書き直した
- この作業は後に移植性のためCで再実装された
- パーサの速度は重要ではなかった
- 数年後、LinusはQuakeを数日間プレイしたが、表向きの目的はカーネルのメモリ管理のストレステストだった
- ある時点から、LinuxはEthernetとTCP/IPをサポートするようになった
- そのおかげで、モデムなしでUsenetを読めるようになった
- 初期のLinuxネットワーキングコードはゼロから書かれたため、粗い部分があった
- 一時期、Linuxが壊れたパケットを送ってネットワーク上のすべてのSunマシンを停止させたことがあり、Sunカーネルの修正が難しかったため、Linuxのバグが修正されるまで大学ネットワークでのLinux使用が禁止された
Linux 1.0とその後の拡大
- 1994年春までにはLinuxは完成したと感じられ、バージョン1.0のリリースが決定された
- 当時のLinuxは、自分自身をコンパイルし、Usenetを読み、
xeyesプログラムを複数同時に実行できた - リリースイベントが開かれ、フィンランドのコンピュータメディアとテレビ局の撮影チームが参加した
- イベントの大半は、背後でLinux 1.0を意識的にコンパイルさせながら、Linusや他の人々がLinuxとは何か、何に適しているのかを語るという形で進められた
- Linusは、PC向け商用Unixは高すぎたので、自分で書いたほうが簡単だったと語った
- 1995年、LinusとWirzeniusは大学のソフトウェア工学の講義を受講し、大規模な実習プロジェクトをLinux上で進めた
- WirzeniusはCVSの使用を求めた
- 以前の学生たちが、NFS共有ソースツリー上で「このファイルを編集中だ」と叫ぶ方式でバージョン管理しているのを見ていたためである
- この経験のせいでLinusはCVSを嫌うようになり、その後何年もの間、FTPサイトにtarballを置く以上のバージョン管理を拒んだ
- 同年、LinusはDEC Alphaマシンを受け取り、Linuxを初めて新しいアーキテクチャへ移植した
- 他の人々もLinuxを別のアーキテクチャへ移植した
- 1997年、Linusは卒業後に米国へ移り、Transmetaに就職した
「趣味」から世界的システムへ
- その後もLinuxには欠けている機能があり、人々がそれを開発し続けた
- 「open source」という用語が作られ、IBMはLinux開発に多額の資金を投じた
- NetscapeはWebブラウザのバージョンをオープンソースとして公開した
- LWNは創刊以来、この歴史のかなりの部分を週単位で扱ってきた
- 1991年、LinusはLinuxが「gnuのように大規模でプロフェッショナルにはならないだろう」と書いたが、2023年のLinuxはすべての大陸とすべての海洋、数十億台の機器、軌道上、そして火星で動いている
1件のコメント
Hacker News のコメント
面白いですね。1992年に Linux 0.98 から使い始めました。
モデムでいろいろな掲示板に接続しながら電話番号をかけて回っていたのは、まるで『WarGames』の主人公みたいでした。
初めて
pppを使って本物のインターネットにつながった日のこともまだ覚えています。試行錯誤の末にwww.linux.orgにpingを送り、ホスト名が解決されて応答が返ってきたとき、しばらく言葉が出ず、「わあ」としか言えませんでした。当時はマルチユーザーのシェルマシンがかなり一般的で、初期の ISP の一部はそういう形でインターネット接続を提供していました。
私が使っていたのは Internet Access Cincinnati という ISP で、各ユーザーに SunOS(Solaris 以前)を動かす Sun Sparc 10 のシェルを提供していました。POP メールと、Web からアクセスできる
~usernameのホームフォルダももらえました。Linux がこの世界で唯一、安定して信頼できるものになったのは不思議です。起動すれば、時間が経つほど悪意なく良くなっていくと分かります。
そういう意味で Linux は息がつけます。トースターはただパンを焼けばいい。どのパンを買うべきかまで教えてほしくはありません。
当時、絶対に動かなさそうだった WinModem のせいで生まれたトラウマと被害妄想だったのかもしれません。
でも2000年代初めごろからは、中古の Zip ドライブでも Web カメラでも、新しいハードウェアは Linux が対応しているだろうと考える世界に変わったように思います。
今でも適当なマザーボードやハードウェアのおもちゃを怖がらずに買い、だいたい動くだろうと思っています。これまで運が良かったのですが、これはドライバ開発者たちのおかげです。
カーネルにたった一度プルリクエストを送り、特定の種類の SD カードを認識するためのマジックナンバーだけを追加するような開発者たちが、みんなに大きな利益をもたらしています。
戦後の市民社会、経済、外交の発展が人類史上の例外だったのと似ています。
現在の現実が、保護や継続的な維持努力なしに永遠に続くと仮定するのは危険です。
彼が引退した後も、良くなり続ける軌道を維持できるかどうかは確信しにくいです。
この特定のケースでは、共有地の悲劇が逆向きに働いているように見えます。
こうした社会・経済的ダイナミクスとゲーム理論を研究して、再現しようとすべきです。誰かが、Linux がどのように「共有地の悲劇ではないもの」を実現しているのかについて、ゲーム理論の博士論文を書くべきです。
Linux のない世界を経験したことがないほど若いのですが、Linux の誕生時期とは近いため、関係者のかなり多くがまだ存命だというのは不思議な感じがします。
私の職業人生のほとんどは、何らかの形で Linux を中心に回ってきましたし、12歳ごろからの人生全体もそうでした。自分の人生に与えた影響を考えると、かなり驚きです。
Claude Shannon 2001、Edsger Dijkstra 2012、John McCarthy 2011、Niklaus Wirth 2024、Konrad Zuse 1995、Alonzo Church 1995、Jim Gray 2007/2012、Grace Hopper 1992。
Alan Turing も殺されていなければ、私の生きている間に存命だった可能性がありました。
2015年に亡くなった Friedrich L. Baur は、私が通っていた大学にまだオフィスがあり、その前をよく通って名札を見るたびに、これは現実なのかと思っていました。
幸い Donald Knuth はまだ私たちのそばにいます。
https://www.youtube.com/watch?v=x7ozaFbqg00
「より重要なのは、X11 システムが Linux に移植されたことで、1992年が Linux デスクトップの年になった」というわけで、ついに Linux デスクトップの年が確定しましたね :)
良い記事です。
Linux の初期のころはよく覚えています。90年代半ば、University of Waterloo ではかなり関心がありましたが、インストールの問題や特定のシステムで安定して動かす問題についての話も多くありました。
当時はどの OS でも珍しくないことではありましたが、自分でカーネルをコンパイルし、XFree86 と格闘しなければならない時代でした。
Red Hat のようなディストリビューションは、そうした心配を短期間で大きく減らし、全体としてずっと簡単にしてくれました。ドキュメントも素晴らしかったです。
1990年代後半には大学で Red Hat が Solaris、AIX、IRIX と同じくらい一般的になりましたが、それでも大半の人は Solaris には及ばないと見ていました。今では RHEL がそこで使われる主な *nix システムで、一部は Debian を使っています。
当時、商用 Unix に関わるほど年長ではありませんでしたが、振り返ってみても Red Hat は自分たちが誰を狙っているのかを非常にはっきり理解していたように思います。
今日学んだこと: Linusはスウェーデン語を話すフィンランド人で、そういう集団が実在するということ
この音声は1994年からずっと頭の中で鳴り続けている
[https://en.wikipedia.org/wiki/File:Linus-linux.ogg](https://en.wikipedia.org/wiki/File:Linus-linux.ogg)
linus.auというファイルがあったのを覚えている.oggはその頃まだなかったから、おそらくそれがオリジナルだったのだと思うし、英語ではないバージョンもあった(フィンランド語だったかな?)何とか残っていてよかった
あわせて読むとよい本: Just for Fun
https://www.amazon.com/Just-Fun-Story-Accidental-Revolutiona...
人生の大半を通じて、こうした技術的偉業は手の届かない天才たちの作品のように見えていた
でもこの話を読んでみると、互いの探求を支える長期的な友情と、経済的・社会的安定の価値もよく表れている
Linux初期を考えるとき、よく思い浮かぶのは競合相手たちだ。記事には「商用Unixが高すぎたので、自分で使うものを作るほうが楽だった」といった話が出てくるし、おおむねその通りだ
ただ、Coherent Unixもあった。当時、雑誌の裏表紙全面広告で99ドルで売られていたのを覚えている。買おうかどうか、いつも迷っていた
Coherentの大きな欠点の一つはネットワーキングがないことだった。そこへLinuxが登場し、驚くほど短い時間でLinuxがCoherentを追い越し、Coherentは一夜にして消えたように見えた
https://en.wikipedia.org/wiki/Coherent_(operating_system)
「CoherentはUnixのルーツに忠実であり、ローカルエリアネットワーク、グラフィカルユーザーインターフェイス、メニュー、マウス、そして今日のDOSユーザーとUnixユーザーが現代的なソフトウェアに期待するようになった多くの便利機能を避けている」とある
続けて、「CoherentでUnixを学ぶ道のりはでこぼこになるだろう」とし、「Coherentで小規模ビジネスを自動化するのも現実的ではない」と述べている
Coherentはクローズドソースだったので、Linuxのように不完全なシステムを持ってきて改良に参加することはできなかった。初期のLinuxが人々を引きつけたのは、当時のLinuxが優れていたからではなく、人々がこういう作業を好んだからだ
99ドルは現在の価値で約230ドルだ。昔はソフトウェア全般がもっと高かったのは分かるが、おもちゃのように試すための骨組みだけのOSに230ドルというのは、Enterprise Unix™®の価格と比べた場合にだけ「安い」と言える
[1]: https://books.google.ie/books?id=JZxkO0PpksUC&pg=PT61&redir_...
kermitで職場のSunシステムに電話をかけ、向こうからかけ直してもらうようにして通話料を避けていたそうやってUSENETと一般のインターネット接続を手に入れた。面白い時代だった。会社が畳んだのは残念だが、正直1995年ごろにはもう方向性は明らかだった
畳んだ後はSlackwareに移り、今でも使っている。当時のLinuxはほとんど毎日変わっていた
CoherentにはLinuxができない機能が一つあったのだが、USENETで尋ねたら数日以内に誰かがパッチをくれた。386sxでモノクロカードとVGAカードを使って2台のモニターを使えるようにするパッチで、Coherentがやっていたのと同じだった
2000年代にFortune 500企業が入り込んでくる前は、人々はずっと近づきやすかった
386BSDの最初のリリースが1992年だったので、ここでは1〜2年ほどの短い時間枠の話をしていることになる。もちろんFreeBSDとNetBSDもすぐその後にそこから分岐した
[1] https://en.wikipedia.org/wiki/386BSD
[2] https://www.antman.se/abc-klubben/linux/linuxdoc/linus.html
[1] https://en.wikipedia.org/wiki/Interactive_Systems_Corporatio...
startxで自分のコンピュータにUnixのような環境が立ち上がるのは本当に格好よかったFreeBSDのほうがLinuxより優れていると感じたが、他の多くの場合と同じように、アプリの入手性が勝負を分けた
2003年に出たLinux関連の優れたドキュメンタリーがある。タイトルはRevolution OSで、強くおすすめする
https://www.youtube.com/watch?v=k0RYQVkQmWU