この間書店で気が向いて手にとって眺めてみて、ちょうどVESAのBIOS経由で解像度を切り替える部分を読んで「これは面白そう!」と即買いした本。
とりあえずコードを書いたりはせずに、内容だけをざっと通して読んでみた。
【良いところ】
- フロッピーのブートから説明した本はそうそう無いので、ある意味貴重
- BIOSの叩き方や、16ビットと32ビットプロテクトモードの切り替え、セグメント分けによる保護機能など、下回りの仕組みが解説されてるので下回りの動作に興味のある人には良い情報源
- 私もintel CPUが具体的にこういった形でいろんな機能を用意しているとは知らなかった。Windowsのカーネルモードでのプログラム案件やっていた時期にこの本を読んでいれば、もう少し仕事の効率が上がったかも。カーネルとCPUに近い部分の動きの理解が深まったはずだし。
- 順を追って、GUIやマルチタスクを持つ(簡易的にしろ)OSを作り上げていく順序立てがしっかりしていて読み飽きることも少なそう
【残念なところ】
- 平易な言葉の言い回しがかえって鬱陶しい
- プログラム初心者や中学生でも読めるようにした、とあるので仕方ないのだろうが、ある程度知識を持つ人には読んでいて回りくどい。ある程度の有識者向けの注釈が少し入っていたけど、もっと入れても良かったかも。
- C言語部分のプログラムが読みづらい
- 関数名や変数名とか、中身についても筆者のクセがかなり出ていたように思う。パッと見て何をやろうとしてるのかが掴みづらい。特に関数名…。
- 筆者作成のツールを使わないと作れないようになっている
- ネット上の汎用ツールでは使えない部分があったからやむなく自作、ということなんだろうけど…。ほんとにGNUや既存のツールだけでは作れないのだろうか?ほかのOS開発プロジェクト(monaOSとか)はどういうふうにしてるんだろう?
- プログラムサイズにこだわり過ぎ?
- バイナリサイズが小さい方がムダが無い、という筆者の主張はその通りだけど、ちょっと本文中でこだわり過ぎてる箇所もあるような。高速化についてはそういうやり方もあるか、と勉強になったけど。
全体としては間違いなく良書。今どきこれだけの情報をまとめた書籍は無いと思うから。
DOSやWin3.1の時代、また8ビットCPUなどでプログラムした経験のある人にはアセンブラやBIOSなどある種の「懐かしさ」も味わえると思うし、組み込み系やOSに近いレイヤでのプログラム(デバイスドライバなど)をしている人にとってもマルチタスクや保護機能などの部分は知っていて損は無い内容だと思う。
私の場合は特に、MSXでZ80アセンブラでFM音源ドライバや漢字表示ルーチンなど作ったり、仕事ではWindowsのデバイスドライバを作ったりとアセンブラやCPU、OSカーネルに近いところのプログラム経験があったせいで余計に興味を持って読めたところはあるかな。
30日でできる! OS自作入門 | |
川合 秀実
おすすめ平均 |
コメント