cocolog:95833608
タネンバウム&ボス『モダンオペレーティングシステム 第5版』を読んだ。OSの聖書的な本読むのにすごい時間がかかった。これは、余程熱意の若者か、私のような余程の暇人でなければ読みきれまい。 (JRF 5552)
JRF 2026年2月 1日 (日)
原著は、Andrew S. Tanenbaum & Herbert Bos『MODERN OPERATING SYSTEMS FIFTH EDITION』(2023,2014,2008)。タネンバウムさんは、他のコンピュータ科学の教科書でも有名。
Twitter (X) で Yasuo Yamasaki (@yasuoyamasaki) さんが、ひさじゅ(@hisaju01)さんのツイートを参照してオススメしていたので興味を持った。
JRF2026/2/19954
《Yasuo Yamasaki:X:2025-12-28》
https://x.com/yasuoyamasaki/status/2005184924777927107
>>昔輪講した。これはよい情報商材。(個人的にはLion's Commentaryの方が好きだけどおすすめしにくい)
JRF2026/2/12400
《ひさじゅ:X:2025-12-27》
https://x.com/hisaju01/status/2004727584626725112
>実はこれ、ちょっと高額なんですが
エンジニアとしてやっていくなら
「知らないとかなり損をする」 商材です。
あまり知られてはいないですがこっそり教えます。
タネンバウム先生の「モダンオペレーティングシステム第5版」
21年ぶり待望の日本語版が発売されてます。
マジで必読です。
<
<<
JRF2026/2/12709
……。
聖書と同じで、若くて熱意があるか余程の暇がない限り読み切ることはできないだろう。私は後者だがorz。
全部理解できたわけではもちろんなく、ファイルシステムなど勉強した経験のないところは理解できなかった。
注意すべきは原著は 2021年ぐらいの状況の記述なので、AIについての記述はほとんどない。次の版ではGPUに関する記述が少なくとももっと増えるのではないか。(GPU については 上巻 p.1008 8.1.1 節にちょろっと解説があるぐらいである。)
JRF2026/2/15824
ところで、演習問題に解はなかった。演習問題を全部解いて、例えばレポートにすれば相当力がつくだろう。しかし私はさぼった。もう役立てる機会もないだろうから。資格を取るわけでもなし。
私はCとか書いた世代だし、加えて大学では情報系だったので、いろいろわかりやすいが、これ今の世代の若者がパッと読んでわかるんだろうか? 若い人の読書感想を知りたいと思った。案外、高校とかでいろいろならってるらしいからわかるのかな?
JRF2026/2/16506
Gemini:>JRFさんの仰る通り、近年の日本の「情報I・II」という科目では、驚くほど高度な内容に触れています。
* 知識の断片化: 仮想化、パケット交換、あるいは排他制御の概念自体は、試験勉強として「用語」は知っています。
* 「モダンオペレーティングシステム」の役割: 若い読者の感想には、「授業で習った点と点が、この本を読んで線(システム)として繋がった」というものが目立ちます。パッと読んでわかるというよりは、「実力のある若者が、魔法のタネ明かしとして熱中して読む」という立ち位置です。
<
JRF2026/2/17777
私は、大学ではコンピュータアーキテクチャを教えている先生の講座にいたので、ハードウェアの部分は少し懐かしかった。
JRF2026/2/12773
……。
いくつか引用していく。Kindle 版なので紙の本とはページ数は違うだろう。
JRF2026/2/12479
……。
>CD-ROM や DVD に関する記述を削除し、SSD や永続メモリといった最新のストレージを記述した<(上巻 p.5)
もう CD-ROM や DVD がほぼ無視されるのか…大変な時代だ。
JRF2026/2/13121
……。
>Windows のソースコードは5千万行を超える。Linux のソースコードは2千万行を超える。どちらもまだ増加しつつある。(…印刷すると…)この大きさのOSを載せるには1000巻必要である。(…)あなたがOSをメンテナンスする仕事を得たとして、最初の日に上司があなたを7個の本棚のソースコードのある部屋に連れて生き、「これを勉強して。」と言うのを想像できるだろうか。そしてこれはカーネルで動作する部分についてだけである。
JRF2026/2/12134
マイクロソフトの誰一人として Windows の全てを理解している人はなく、ほとんどのプログラマは、たとえカーネルプログラマといえども、ほんの一部しか理解していない。
<(上巻 p.30)
私にもっとコントロールされているという幻想があったのは認めざるを得ない。ただ、細かなデバイス I/O などは網羅できないとしても、ページ管理など枢要な部分全部を把握している者はいるのではないか。
JRF2026/2/11241
でも、Windows は中核に MINIX 3 をそのまま使っているということは案外、そのように把握している者もいないのかもしれない…。
JRF2026/2/17195
Gemini:>「Windows の中核に MINIX 3 を使っている」というお話ですが、これは少し情報の「混同」があるかもしれません。
* 実際の事実: Windows のカーネル(NTカーネル)自体は独自実装ですが、Intel の CPU 内部(Management Engine: ME) の OS として、実は MINIX 3 が動いていることが数年前に発見され、大きな話題になりました。
JRF2026/2/11268
* 皮肉な現実: つまり、メインの Windows を動かしている CPU の「さらなる深淵(ハードウェアレベルの特権階層)」で、タネンバウム先生の作った MINIX がひっそりと、しかし全能の権限を持って動いているわけです。
<
JRF2026/2/15084
……。
>ライブマイグレーション<(上巻 p.951)
ライブマイグレーションについては、読んだときにショートビデオを作っておいた。
○ 2026-01-24T17:45:52Z
ライブマイグレーションという概念を知って驚いた。例えばクラウドとかの仮想マシンどうしなら、実行中のアプリをそのまま違う仮想マシン上に移せるらしい。
https://youtube.com/shorts/AcmzOl9vn4s
JRF2026/2/16606
……。
OS の設計は難しい。航空母艦も造るのは難しいが、OS には特別な難しさがある。
>航空母艦内のトイレの設計者は、レーダーシステウについて悩む必要はない。2つのサブシステムは、互いに影響しあうことはない。航空母艦のトイレが詰まったためにミサイルを発射し始めたという事例を聞いたことがない。OS ではファイルシステムがメモリシステウと予期せぬ方法で相互作用することがよく起こる。<(下巻 p.825)
JRF2026/2/18695
笑。いろいろジョークがあって笑わせてくれる本でもある。私も Emacs 派なのでいろいろ共感できる(^^;。
JRF2026/2/15757
……。
>著者たちの意見では、イベントはスレッドよりも理解しやすく、デバッグしやすい。<(下巻 p.866)
私はこの本を読んでる間 MemoryBanditWorkflow という AI エージェントのための枠組みのアップデートを考えていた([cocolog:95822546](2026年1月))。それを公開した [cocolog:95619779](2025年9月)では、その並列化についても考えていた。基本的にはタスクキューを使い、データベースの機能で排他処理を行うもの…つまりイベントドリブン系に近いほうがいいのではないか…という見解を持っていた。それを思い出す。
JRF2026/2/12025
……。
この本の 9.6.3 節(下巻 p.137)ぐらいから 2018年1月ぐらいから話題となったコンピュータへの攻撃、メルトダウン(Meltdown) とスペクター(Spectre)が扱われていた。
JRF2026/2/19460
この本における Meltdown の例の、暗号処理のビットを関数呼び出しのキャッシュの痕跡から推測できるというのは、アドレス空間が違うときキャッシュアクセスが禁じられれば対策は十分な気がする。ASLR(アドレス空間配置のランダム化)である程度攻撃を限定できるはず。共有ライブラリのアドレス空間がかりに同じでも、暗号処理の部分だけ共有をなくせばさらに安全になる…はず。この方向の対策として有名なのが KPTI だろう。KPTI によってユーザー実行時にカーネルのマッピングを物理的に削除(非実在化)すれば、投機実行も物理的に不可能になる。
JRF2026/2/17838
(プロセスの異なる) Spectre の「本来読めない先読みしたデータを使って自分のキャッシュ可能アドレス空間に痕跡を残す」ことについては、それでは防げないが、プロセス境界がしっかりしていて、秘密領域を読もうとするときページとして存在していなければ、単に意味のないデータが読み出されるだけなので実質的な脅威はないと思う。もちろん、本来読めない物理ページを読み出せること自体は問題だが。
JRF2026/2/15441
Gemini さんによると(同一プロセスの) Spectre は JavaScript にも有効で、この場合プロセス境界がしっかりしてないのが問題だが、JavaScript も完全なプロセス化でなくスレッドだけどそれ用のプロセス的秘密メモリ領域ももつというのがあれば十分なように思う。「コンパートメント化」や「メモリ保護キー(MPK)による隔離」がそれに相当するらしい。それらがあれば、LFENCE 等のソフトウェア的なブレーキなしでも十分な対策になる可能性が高い。
JRF2026/2/11013
ただ、以上の Meltdown と Spectre に関する記述、Grok さんに言わせると特にプロセスの異なる Spectre に関する記述は 65% ぐらいの正確さで全体として 85% ぐらいの正確さらしい。
JRF2026/2/14861


『モダンオペレーティングシステム 第5版 - 上・下』(アンドリュー・S・タネンバウム & ハーバート・ボス 著, 水野 忠則 他 訳, 日経BP, 2025年10月)
https://www.amazon.co.jp/dp/B0FXZ77VL6 (上巻 Kindle)
https://7net.omni7.jp/detail/1107657528 (上巻)
JRF2026/2/19725