ようやく読み終わりました。 #amazon||> ||< アセンブラや、C言語とアセンブラの連携は何となく分かる・・・その上で、OSやカーネルに興味があるけどそもそもx86アーキテクチャを知らない・・・という自分には丁度良い入門書だったと思います。 ただ不満点というか・・・個人的に理解しきれなかったというか。 - 7章のタスク切り替え以降、一つのサンプルコードの実行に必要なコード量が増えると共に、1-6章までの機能を詰め込んだ形になってきたため、コード理解がきつかった。というか理解しきれなかった。 - サンプルコードが動かない?7章と9章で、サポートサイトからDLしたオリジナルのコードですら、動かなかった。正確に言えばユーザープロセスとして動作するはずのコードが動いていないっぽい。ブートコードやタイマー割り込みのコードなどは動いている。 1-4,5章くらいまでは、x86の機能を一つずつ取り上げて、「小さなコードでサンプル実行」→「あ、なるほど~」と理解できました。しかし7章になって、1-6章までの機能+7章でのタスクスイッチングの機能の全部入りのソースコードになってしまい、追いづらく+弄りづらく+デバッグしづらくなってしまいました。7章以降はタスクスイッチングやページングなど重めの機能を取り上げている事もあるので、どうしてもサンプルコードが複雑になるのは仕方ないとは思うのですが、もうちょっと「小さく作って実験→理解してから大きく作る」という流れは維持できなかったかなぁ~とその点が残念です、というか理解しきれなかった自分が悔しいなぁと。 ただ、こちらの本を併せて読めば、↑で理解しきれない部分もとりあえず図入りで解説されていたりします。まさに「あわせて読む」で効果が実感できた本です。 #amazon||> ||< こちらのサンプルコードは、MS-DOS時代のものなので今や動かせません。ただし「作りながら学ぶ~」の方は9章を除く全てがアセンブラで書かれているのに対し、こちらはアセンブラとCの混在、ということで、C言語の部分は若干読みやすく・理解しやすくなっているように思われました。動かす事はできませんが、「あ、『作りながら学ぶ~』で全部アセンブラで書かれていたところが、こっちの本ではこんな風にアセンブラとC言語に分けて書いてあるんだな~」という読み方をして楽しむ事はできると思います。