- VU Amsterdamの計算機科学名誉教授 Andrew S. Tanenbaum が、オペレーティングシステム教育とOS設計に影響を与えた MINIX により ACM Software System Award を受賞
- MINIX 1.0 は、1987年に教科書 Operating Systems: Design and Implementation とともに作られた IBM PC 向けのマイクロカーネルベース UNIX オペレーティングシステムだった
- 初期の MINIX は約 12,000行のコードで、マイクロカーネル、メモリマネージャ、ファイルシステム、主要な UNIX ユーティリティを含み、2000年に自由なオープンソースソフトウェアとなった
- MINIX は Linux に着想を与え、MeikOS の基盤となり、広く使われているマイクロチップ内部でも動作している
- ACM Software System Award は、持続的な影響を残したソフトウェアシステムに授与される賞で、賞金は 35,000ドル、IBM が財政支援している
MINIXで認められた受賞
- VU Amsterdamの計算機科学名誉教授 Andrew S. Tanenbaum が MINIX により ACM Software System Award を受賞
- MINIX は複数世代の学生に オペレーティングシステムの原理 を教えるために使われ、Linux を含むオペレーティングシステム設計にも影響を与えた
MINIX 1.0の始まりと構成
- Tanenbaum は1987年、教科書 Operating Systems: Design and Implementation に合わせて MINIX 1.0 を作った
- 当時人気だった IBM PC 向けの小型マイクロカーネルベース UNIX オペレーティングシステムだった
- 初期の MINIX は約 12,000行のコードで構成され、次の要素を含んでいた
- マイクロカーネル
- メモリマネージャ
- ファイルシステム
- 主要な UNIX ユーティリティプログラム
- MINIX は2000年に 自由なオープンソースソフトウェア となった
Linuxと他のシステムに残した影響
- MINIX は Tanenbaum の教科書の成功を支えただけでなく、さらに広い影響を残した
- Linux に着想を与え、Linux はクラウドサーバー、携帯電話、IoT機器を動かす成功したオープンソースオペレーティングシステムへと成長した
- MINIX は Meikotransputer ベースのコンピュータ向け MeikOS オペレーティングシステムの基盤となった
- 広く使われている マイクロチップ の内部でも MINIX が動作している
- 後継バージョンである MINIX 3.0 は、資源が限られたコンピュータ、組み込みコンピュータ、高い信頼性が必要なアプリケーションを対象としている
マイクロカーネル設計の拡大
- Tanenbaum の マイクロカーネル設計 の提唱は、MINIX の直接的な影響とは別に、複数世代のオペレーティングシステム設計者に影響を与えた
ACM Software System Awardの性格
- ACM Software System Award は、概念的貢献、商業的受容、またはその両方を通じて持続的な影響を与えたソフトウェアシステムを開発した組織または個人に授与される
- 賞金は 35,000ドル
- Software System Award の財政支援は IBM が提供している
1件のコメント
Hacker News のコメント
この出来事は絶対に忘れられない。たしか Stanford だったと思うが、Netflix 創業者/CEO の Reed Hastings の講演を聞いていて、彼が Netflix のアイデアをどう思いついたのかを説明していた。
ある学生が「いつインターネットへ移行すべきだと気づいたのですか?」と尋ねると、彼は「それは最初からアイデアに含まれていた。ネットワークが今日のようになることは分かっていた。コンピュータサイエンスの教科書に『高速道路を走る、テープを満載したトラックの帯域幅を決して過小評価してはならない』という言葉がある。ネットワークが私たちの望む水準に達するまでは、まず DVD を配送する必要があると考えた」と答えた。
それを見て「わあ!あの引用と図を覚えている」と思い、教科書を探してみたら、Tanenbaum のネットワーク教科書にそのまま載っていた。逸話はさておき、この人物はカーネル論争は言うまでもなく、業界全体に非常に大きな影響を与えた。
優れた教育者に本当にふさわしい賞で、祝うべきことだ。昔読んでいた彼の 分散システムの教科書 は今でも持っているし、Minix が勝って、あのマイクロカーネルモデルが FOSS *nix エコシステムの基盤になっていたらよかったのに、と今でも思っている。
知らない人のために付け加えると、Andrew は選挙人団の世論調査モデルで米国選挙を分析・予測する選挙科学ブログ Electoral Vote [1] も運営している。米国政治サイトの中ではかなり良い部類だ。
[1]:https://www.electoral-vote.com/evp2024/Info/welcome.html
感情に流されないが機知に富んだ日々の記事を読むだけでも、米国市民としてかなり事情に通じていられるほどだ。
コンピュータアーキテクチャの授業でひどく苦戦していて、中間試験の一つでは 5% しか取れなかった。推薦図書を Andrew の本に替え、毎日2時間読む以外は何もしなかったら、期末で 100% を取った。
本当に驚くほど取り組みやすい本だった :-)
コンピュータサイエンスを親しみやすく、楽しいものにしてくれる優れた教育者に、非常にふさわしい賞だ。
Structured Computer Organization は教科書のはずなのに、文章があまりによくて、スリラーのように最初から最後まで読んでしまった。
たとえば Knuth についてこう言う人は多くないだろう。もちろん、Knuth が彼なりのやり方で偉大であることを貶めるつもりはない。
AST の本、とくに Minix を直接扱う本は、The Night Watch 論文が語る哲学と同じ層にあると思う。
結局のところ、その論文は抽象化によって無知になることではなく、現実に慣れることで得られる安心感について、無力感ではなく、学習された恐れのなさについての文章だ。
カーネルレベルのコードを動かしながら、プロセッサチップのピンにオシロスコープやロジックプローブを当ててデータラインを見るようなデバッグをすることはほとんどないだろうが、こういうことを平然とやる人を、私たちは皆一人くらいは知っている。それでも、シリコンにほんの少し近い知識と慣れ、近くに置かれたプロセッサのデータシート、見知らぬものではないメモリセグメンテーションモードといった感覚は、ソフトウェア開発者にとって大きな助けになる。
誰もが一度は試してみる価値のある飛躍であり、それによって、実際にどう動いているのかを理解するのを妨げる心理的な壁を取り払うことができる。
MINIX が、ほぼすべての現代の Intel CPU の中で Management Engine の一部として隠れている点も見逃せない。あまり知られていないこの事実のために、最も広く配布されたオペレーティングシステムの一つになっている。
実際にどの Minix バージョンを使ったのかも気になる。Minix v3.1 は本とともに2005年に出て、3.2 は2012年、3.3 は2014年に出た。
Linus Torvalds と Andrew Tanenbaum の論争は技術史における重要な転換点になり得たが、MINIX は歴史の中でもっと大きな位置に上がる巨大な機会を逃したように思う。
それらの大半が何らかの形の Linux やリアルタイム OS を動かしていると考えると、MINIX と Linux のどちらがより広く行き渡っているのか知りたくなる。
1988年か1989年に Operating Systems: Design and Implementation を読み、洞察に富んだ楽しい経験だった。
当時は、何らかの Unix 風オペレーティングシステムが「自由に」提供されればいいのに、と願っていただけだった。ここでの「自由」は、後で知ることになる公式な定義ではなく、直感的な意味だった。それが Minix になる可能性もあった。
彼の Computer Networks は、コンピュータサイエンスを学んでいた頃にいちばん好きだった本の一つだった。
数年後、ビジネススクールで分散システムの講義を担当することになり、その本を基に教材を組み立てた。今見てもなお有効だと感じる。
ネットワーキングを深く掘り下げたことはないが、幅広い知識はずっと残っていて、繰り返し役に立っている。この点が自分を他のエンジニアと区別してくれていると言える。
ただし Modern Operating Systems は素晴らしく、大学時代に同僚へ勧めたときも同じような反応を聞いた。
この時点で システム研究 がほとんど止まってしまったように思えて、少し残念だ。
2024年頃には、携帯電話、デスクトップ、ノートPC、NAS の間でプロセスをほぼ問題なく自由に移動できる分散オペレーティングシステムを使っていると思っていた。
専用機器ではないものを作りたいなら、既存の有用なソフトウェアと互換性がなければならない。既存ソフトウェアの変更を求める新しいパラダイムシフトは、成功までの道のりが非常に険しい。それでもオペレーティングシステムには漸進的な進歩が非常に多い。
真の分散オペレーティングシステムというアイデアは、多くの人が考えたことがあるはずだ。既存のオペレーティングシステムは最終的にその方向へ進化していくと、かなり確信している。すでにあちこちに断片が見え始めている。
その論文以降、多くのことが起きたが、彼は正しく、私たちは可能性を本当に広げて探究しようとする試みをやめてしまったのではないかという不吉な感覚がある。ただし、それは分野そのものというより、学界の状況に関係しているのかもしれない。
誇大なブームが押し寄せるまでは、機械学習を添えた GPGPU 応用で学会招待を山ほど受けていたわけでもない。学界のヘゲモニーと研究費追いの冷徹な現実のせいで、残念ながらシステム研究にはあまり大きな関心が向かなかった。
誰かがこうした面白いアイデアを実装しようとしても、スタックの他の部分で Pixel や iPhone と競争できないとして厳しく評価されるだろう。Rabbit を見ればいい。
あなたが述べているものは現代のシステム研究の中心的テーマであり、大手クラウドプロバイダーは社内でこの種のものをすべて実装している。
消費者は概してユーザー体験をより気にする。コンテンツをサーバーに同期してすべてのデバイスで使えるようにするソフトウェアのほうが、不安定なネットワーク上でプロセスをリアルタイムに移動しようとするより、はるかに負担が少ない。
多くのシステム研究者はクラスタリング、ネットワーク透過性、分散システムに完全に取りつかれていて、それらをオペレーティングシステムの頂点と見なしていた。なぜそうなのかは理解できなかった。格好いいというのは完全に理解できるが、サーバー・ノートPC・携帯電話・ネットワークシステムが一つのシステムのように動作することが、なぜそこまで重要なのかは最後まで見えなかった。
そのドラゴンを追うことに多くの努力が浪費されたと思う。格好いいものを研究するのはよいことだし、その過程で有用なものも生まれただろうから、浪費という言葉はおそらく正確ではないかもしれない。しかし十分な正当化があったとは感じないし、もしかするともっと有効に使えたのかもしれない。
複数のシステムを最下層で単一イメージのように見せなくても管理できるようにするマルチシステムツールとプログラミングモデルという代替案は、TCP/IP 以降の学界ではあまり大きな支持を受けず、主に産業界が発展させた。
Tanenbaum に関するもう一つの素晴らしい事実は、彼が electoral-vote.com の背後にいた人物だという点だ。
誰もが自分のモデルを持ち、Nate Silver、いや Poblano と言うべきか、が2008年に席巻する前は、2004年の Bush と Kerry の米大統領選を理解するにはここへ行くべきだった。世論調査と統計を理解するうえで、多くの人にとって非常に役立った。
すでに知っているかもしれないが、知らない人のために強調しておきたい。
Tanenbaum 教授には今では共著者の Bates 教授もいる。Bates は UCLA/Cal Poly の歴史学教授だ。サイトは毎日公開されており、以前は平日のみ、それも選挙期間中だけ更新されていた。