1 ポイント 投稿者 GN⁺ 2024-06-23 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2024-06-23
Hacker News のコメント
  • この出来事は絶対に忘れられない。たしか Stanford だったと思うが、Netflix 創業者/CEO の Reed Hastings の講演を聞いていて、彼が Netflix のアイデアをどう思いついたのかを説明していた。
    ある学生が「いつインターネットへ移行すべきだと気づいたのですか?」と尋ねると、彼は「それは最初からアイデアに含まれていた。ネットワークが今日のようになることは分かっていた。コンピュータサイエンスの教科書に『高速道路を走る、テープを満載したトラックの帯域幅を決して過小評価してはならない』という言葉がある。ネットワークが私たちの望む水準に達するまでは、まず DVD を配送する必要があると考えた」と答えた。
    それを見て「わあ!あの引用と図を覚えている」と思い、教科書を探してみたら、Tanenbaum のネットワーク教科書にそのまま載っていた。逸話はさておき、この人物はカーネル論争は言うまでもなく、業界全体に非常に大きな影響を与えた。

    • https://en.m.wikipedia.org/wiki/Sneakernet に、元の出典につながる手がかりがいくつかある。
    • 会社名を Netflix にしておきながら「インターネットはただの流行だ」と言う場面を想像してみてほしい。
  • 優れた教育者に本当にふさわしい賞で、祝うべきことだ。昔読んでいた彼の 分散システムの教科書 は今でも持っているし、Minix が勝って、あのマイクロカーネルモデルが FOSS *nix エコシステムの基盤になっていたらよかったのに、と今でも思っている。
    知らない人のために付け加えると、Andrew は選挙人団の世論調査モデルで米国選挙を分析・予測する選挙科学ブログ Electoral Vote [1] も運営している。米国政治サイトの中ではかなり良い部類だ。
    [1]:https://www.electoral-vote.com/evp2024/Info/welcome.html

    • electoral-vote.com は今では単なる選挙科学ブログだけではない。Andrew と共同執筆者の Christopher Bates が毎朝、前日の政治ニュースと、それが米国政治に与え得る影響を非常に明快に要約して投稿している。
      感情に流されないが機知に富んだ日々の記事を読むだけでも、米国市民としてかなり事情に通じていられるほどだ。
  • コンピュータアーキテクチャの授業でひどく苦戦していて、中間試験の一つでは 5% しか取れなかった。推薦図書を Andrew の本に替え、毎日2時間読む以外は何もしなかったら、期末で 100% を取った。
    本当に驚くほど取り組みやすい本だった :-)

    • 20年ほど前のコンピュータサイエンスの授業2つでも Tanenbaum の本 を使っていた。優れた教科書で、自分にもかなり理解しやすいと感じた。
    • わあ、どの本だったの?
    • 気になるのだけど、元の推薦図書は何だったの?
  • コンピュータサイエンスを親しみやすく、楽しいものにしてくれる優れた教育者に、非常にふさわしい賞だ。
    Structured Computer Organization は教科書のはずなのに、文章があまりによくて、スリラーのように最初から最後まで読んでしまった。
    たとえば Knuth についてこう言う人は多くないだろう。もちろん、Knuth が彼なりのやり方で偉大であることを貶めるつもりはない。

  • AST の本、とくに Minix を直接扱う本は、The Night Watch 論文が語る哲学と同じ層にあると思う。
    結局のところ、その論文は抽象化によって無知になることではなく、現実に慣れることで得られる安心感について、無力感ではなく、学習された恐れのなさについての文章だ。
    カーネルレベルのコードを動かしながら、プロセッサチップのピンにオシロスコープやロジックプローブを当ててデータラインを見るようなデバッグをすることはほとんどないだろうが、こういうことを平然とやる人を、私たちは皆一人くらいは知っている。それでも、シリコンにほんの少し近い知識と慣れ、近くに置かれたプロセッサのデータシート、見知らぬものではないメモリセグメンテーションモードといった感覚は、ソフトウェア開発者にとって大きな助けになる。
    誰もが一度は試してみる価値のある飛躍であり、それによって、実際にどう動いているのかを理解するのを妨げる心理的な壁を取り払うことができる。

  • MINIX が、ほぼすべての現代の Intel CPU の中で Management Engine の一部として隠れている点も見逃せない。あまり知られていないこの事実のために、最も広く配布されたオペレーティングシステムの一つになっている。

    • なぜ L4 や seL4 のようなものではなく Minix を使ったのだろう?
      実際にどの Minix バージョンを使ったのかも気になる。Minix v3.1 は本とともに2005年に出て、3.2 は2012年、3.3 は2014年に出た。
    • ときどき、MINIX が Linux に似た FLOSS ライセンスで配布されていたら、今日の世界はどう違っていただろうと考える。
      Linus Torvalds と Andrew Tanenbaum の論争は技術史における重要な転換点になり得たが、MINIX は歴史の中でもっと大きな位置に上がる巨大な機会を逃したように思う。
    • 複数の ARM マイクロコントローラやシステムオンチップが数量面では支配的なように思えるので、これが本当に正しいのか気になる。
      それらの大半が何らかの形の Linux やリアルタイム OS を動かしていると考えると、MINIX と Linux のどちらがより広く行き渡っているのか知りたくなる。
    • ACM は AST が賞を受ける前に、この事実と距離を置くよう求めるべきだ。
  • 1988年か1989年に Operating Systems: Design and Implementation を読み、洞察に富んだ楽しい経験だった。
    当時は、何らかの Unix 風オペレーティングシステムが「自由に」提供されればいいのに、と願っていただけだった。ここでの「自由」は、後で知ることになる公式な定義ではなく、直感的な意味だった。それが Minix になる可能性もあった。

    • 80年代に学位課程で読まなければならなかった教科書の中で最高だった。付録に入っていた Minix のソースコード が、よく書かれた大規模な C コードに初めて触れるきっかけだった。
    • 学位課程の教材の一つで、本当に楽しく読んだ。
  • 彼の Computer Networks は、コンピュータサイエンスを学んでいた頃にいちばん好きだった本の一つだった。
    数年後、ビジネススクールで分散システムの講義を担当することになり、その本を基に教材を組み立てた。今見てもなお有効だと感じる。

    • 学部のコンピュータサイエンス全体を通じて、いちばん好きだった教科書だった。今でも本棚に挿してある。
      ネットワーキングを深く掘り下げたことはないが、幅広い知識はずっと残っていて、繰り返し役に立っている。この点が自分を他のエンジニアと区別してくれていると言える。
    • Tanenbaum に関するスレッドではあるが、個人的には Forouzan の Data Communications and Networking のほうが説明がうまく、各ネットワーク層の詳細もよりよく扱っていると感じる。
      ただし Modern Operating Systems は素晴らしく、大学時代に同僚へ勧めたときも同じような反応を聞いた。
  • この時点で システム研究 がほとんど止まってしまったように思えて、少し残念だ。
    2024年頃には、携帯電話、デスクトップ、ノートPC、NAS の間でプロセスをほぼ問題なく自由に移動できる分散オペレーティングシステムを使っていると思っていた。

    • 研究とイノベーションは今も多いが、完全に新しいソフトウェアプロジェクトという形でだけ現れるわけではない。新しいオペレーティングシステムを作るコストが、単に途方もなく大きい。
      専用機器ではないものを作りたいなら、既存の有用なソフトウェアと互換性がなければならない。既存ソフトウェアの変更を求める新しいパラダイムシフトは、成功までの道のりが非常に険しい。それでもオペレーティングシステムには漸進的な進歩が非常に多い。
      真の分散オペレーティングシステムというアイデアは、多くの人が考えたことがあるはずだ。既存のオペレーティングシステムは最終的にその方向へ進化していくと、かなり確信している。すでにあちこちに断片が見え始めている。
    • 私のように、昔から Rob Pike の見解を心に留めてきた人のように聞こえる。http://www.herpolhode.com/rob/utah2000.pdf
      その論文以降、多くのことが起きたが、彼は正しく、私たちは可能性を本当に広げて探究しようとする試みをやめてしまったのではないかという不吉な感覚がある。ただし、それは分野そのものというより、学界の状況に関係しているのかもしれない。
      誇大なブームが押し寄せるまでは、機械学習を添えた GPGPU 応用で学会招待を山ほど受けていたわけでもない。学界のヘゲモニーと研究費追いの冷徹な現実のせいで、残念ながらシステム研究にはあまり大きな関心が向かなかった。
    • 研究が止まったのではなく、巨大テック企業による支配 のために、消費者向けデバイスを作るインセンティブが減ったのだ。
      誰かがこうした面白いアイデアを実装しようとしても、スタックの他の部分で Pixel や iPhone と競争できないとして厳しく評価されるだろう。Rabbit を見ればいい。
      あなたが述べているものは現代のシステム研究の中心的テーマであり、大手クラウドプロバイダーは社内でこの種のものをすべて実装している。
    • こうしたものはインフラ関連の役割で見るべきだ。たとえば VM や Kubernetes のミニオンを空けるとき、VM とコンテナのライブマイグレーション は定期的に行われている。
      消費者は概してユーザー体験をより気にする。コンテンツをサーバーに同期してすべてのデバイスで使えるようにするソフトウェアのほうが、不安定なネットワーク上でプロセスをリアルタイムに移動しようとするより、はるかに負担が少ない。
    • この種のものは、私にとってはいつも、とても格好いいが有用性は微妙、という箱に入っていた。
      多くのシステム研究者はクラスタリング、ネットワーク透過性、分散システムに完全に取りつかれていて、それらをオペレーティングシステムの頂点と見なしていた。なぜそうなのかは理解できなかった。格好いいというのは完全に理解できるが、サーバー・ノートPC・携帯電話・ネットワークシステムが一つのシステムのように動作することが、なぜそこまで重要なのかは最後まで見えなかった。
      そのドラゴンを追うことに多くの努力が浪費されたと思う。格好いいものを研究するのはよいことだし、その過程で有用なものも生まれただろうから、浪費という言葉はおそらく正確ではないかもしれない。しかし十分な正当化があったとは感じないし、もしかするともっと有効に使えたのかもしれない。
      複数のシステムを最下層で単一イメージのように見せなくても管理できるようにするマルチシステムツールとプログラミングモデルという代替案は、TCP/IP 以降の学界ではあまり大きな支持を受けず、主に産業界が発展させた。
  • Tanenbaum に関するもう一つの素晴らしい事実は、彼が electoral-vote.com の背後にいた人物だという点だ。
    誰もが自分のモデルを持ち、Nate Silver、いや Poblano と言うべきか、が2008年に席巻する前は、2004年の Bush と Kerry の米大統領選を理解するにはここへ行くべきだった。世論調査と統計を理解するうえで、多くの人にとって非常に役立った。

    • electoral-vote.com は今も活発に運営されている: https://www.electoral-vote.com/
      すでに知っているかもしれないが、知らない人のために強調しておきたい。
      Tanenbaum 教授には今では共著者の Bates 教授もいる。Bates は UCLA/Cal Poly の歴史学教授だ。サイトは毎日公開されており、以前は平日のみ、それも選挙期間中だけ更新されていた。