OSを作りながら、コンピュータの本質に迫る。全1072ページにわたる重厚かつ濃密なOS入門書
本書の初版は2019年に発売され、
本稿では、本書の巻頭に収録された監修者・
発刊によせて
みなさんこんにちは! 私は
今あなたが手に取っている
順を追って説明させていただきます。2019年に初版の
今回改訂版を書かれるということで、私はふたたび監修の機会をいただけました。改訂のメインがどこなのかを伺ったところ、64ビットモード対応だと教えていただきました。それはとてもいいなと思い、私は早速原稿を読みはじめました。……しかし途中で、私はかなり不安になりました。レガシーBIOSの説明がそのまま残っていて
その不安は第4部に入って一気に解消されます。ここからUEFIで起動するOSの実装がはじまるからです。そしてしばらく読んでいるうちに、私は驚きの事実に気づきます。
いや、だって64ビットモードに対応すると言ったら、普通は作るOSを32ビットモード版ではなく64ビットモード版に差し替えるのだろうと思うわけです。説明としてもそれが自然でしょう。しかし本書では、32ビットモード用のOSはそのまま残して、64ビットモード用のOSを別個に作るという方法をとっているのです。当然ですがページ数はかなり多くなっていて、編集部の担当さんからは多少内容を削って縮小するかもしれないと示唆されていました。しかし私は
本書では1冊の本の中に、
そもそも本書が成立したのは奇跡みたいなところがあります。もし最初から著者の林氏が普通に64ビットモード用にOSを書いていたらどうだったでしょうか。あとから改訂で32ビットモード用のOSを追加したいと言っても、出版社は相手にしてくれないでしょう。だから最終的に2つのOSを載せるのだとしたら、最初は32ビットモードで書く必要がありました。もし林氏が最初からこのプランで本を書いていたのだとしたら、その戦略は天才的です。私が生意気な前文を書くことまでプランに含まれていたかもしれません。いやさすがにそんなことはないだろうと思っているのですが、でも本当のところは林氏のみが知るところであります。
32ビットモード用のOSと64ビットモード用のOSを比較することの意義について説明させてください。x86に64ビットモードが追加されたとき、他にいくつもの改良がされています。単にビット数がちょっと変わった程度の変更ではなかったのです。
しかしコンパイラや開発ツールなどの対応が優秀で、アプリケーション開発においては32/
私たちのようなOS開発を趣味とする者にとっては、これらの差異は進化なのかどうかという点が気になります。つまり、以前よりも使いやすくなっているのだろうかということです。64ビットモードになったことで、アドレス空間は十分に増えて、整数レジスタのビット幅が増えて、しかもついでにレジスタ数も8本から16本に増やしてもらえました。また、SSE2命令はレジスタベースの命令体系になって演算の高速化がやりやすく、とても進化を感じます。さらに、UEFI化によって64ビットモードのままサービス関数を呼ぶことができるようになりました。ただし、込み入った約束事も追加されています。
これらの差異を実感するには書き比べてみるのが一番です。どこがどう便利になったのか、新たにどんな設定項目ができたのか、書き比べればはっきりと実感できます。そしてこれをやろうと思ったら、
改訂前の
コンピュータの仕組みを説明しているだけの本なら、他にもたくさんあることでしょう。しかしそれを読み終わった後で、ではこの知識を活用してOSを作ってコンピュータを思い通りに動かしてみようなどと思っても、何から手を付けたらいいのかまったくわからず、結局別の書籍を手に取って最初からやることになります。それが普通ですが、明らかに二度手間です。でも本書は違います。そのままOSを作成する流れになっているからです。それまでに説明された知識がどう生かされるのか、はっきりと実感することができるのです。本書を読めば分かりますが、OSを作り始める直前までの知識は説明されているので、ここまで来ておきながら別の書籍を探してきてそちらを読むのはもったいないのです。
コンピュータの仕組みを説明するとしたら、そこはやはり機械語やアセンブラを基礎として説明することになります。実際、コンピュータはC言語やPythonで動いているわけではないのですから、C言語などの高級言語で説明するのは不正確です。そしてアセンブラで説明をした場合、流れとしてはそのままアセンブラだけでOSを実装していくことが自然ですし理想でしょう。レジスタなどもちゃんと意識してプログラムを書きます。著者の林氏はアセンブラのみでOSを書ききるだけの特別な才能があり、だからこそ本書は成立したのだとも言えます。
私はアセンブラというプログラミング言語が好きで、だからニヤニヤと笑みを浮かべながら監修をしてきたわけですが、林氏はそういう好き嫌いなどでアセンブラを選択したのではなく、本書の
なお、本書ではUSBについての説明はありません。したがって、USB接続のキーボードはUEFIのブートサービス終了後はおそらく認識できないでしょう。ですからUSB接続のキーボードしかない環境の場合は、実機ではその部分だけはうまく動かせないことになります。多くのノートPCはキーボードが内部でPS/
USBコントローラやUSBデバイスの制御は非常に複雑で、それを本書の詳しさで説明するとさらにページ数が大幅に増えることが予想されます。それを思えば、あえてUSBキーボードに手を出さなかったのは賢明というか、やむを得ないと私には思われます。
さてここを読んでいる方々の最大の関心事は、この本をさらに読み進めるかどうかを決めるための判断材料だろうと思います。私としては、この歴史に残る1冊をぜひコレクションに加えていただくことをおすすめします。きっと若干の悩ましさを感じられるのは、すでに初版をお持ちの方でしょう。イントロダクションから第3部までは大きくは変わっていないため、そこが悩ましいのではないかと思われます。しかし歴史的な構成になったのはこの改訂版のほうなので、熱心な初版の読者としてはやはりこれを逃してはもったいないと私は思います。……でも初版のほうだって重要です。初版が十分な評価を得たからこそ、この改訂版は成立しているとも言えるのです。つまり本書は著者・
2026年9月 川合秀実