はじめて読む486―32ビットコンピュータをやさしく語る 蒲地 輝尚 (著)を読んだ。
どっかのWebだか、誰かからか忘れたけど、「PCのプログラミングをやってるなら、読んどけ」ってな感じで紹介されたので、気にはなってたんだけど、某所にぽっくり積んであるのをみつけたので拝借して読んだ。
まぁぶっちゃけて言えば、Intel系のCPUのプロテクトモードに関するお話。
普段、Windows上でプログラムを書く際にはほとんど気にしていない、OSのそれもごく低レベルのお話を詳しく親切に書いてある。
OSの知識が一通りあって、この本があれば、486上でOSを書き始めることができるかもしれない。
OSの機能として、あんなことやこんなことがあるってのは知ってたけど、実際には、こうやって実装されているのね。CPUのこんな機能を使って実装してるのね。ってなことを理解できる。
この本が発行されたのが、1994年で、本の内容が大体、Windows3.1とWin32sとかWin32cとかの話まで。DOSエクステンダーも結構詳しく書いてある。歴史を知る意味でもとっても興味深い。
まぁいきなりNTのOSの機能の話をされても複雑すぎてちょっと困り果てるので、このレベルで抑えてあるというのは、おらには丁度よかったのかもしれない。
サンプルコードがいっぱい載っていて実際にプログラミングをやらなければならない人にも役に立つ本だと思う。まぁおらは、読み物として読んでいるので、このあたりのコードはざっと目を通して本文の理解を助ける程度にしか活用していないが、やっぱりコードがあるのと無いのとじゃぜんぜん違うからねぇ。
OSを作る人にとっては必須な知識かもしれないが、おらのようにOSの上でアプリケーションを書くのが仕事の場合は、予備知識というか雑学というか、知識の奥行きを深めるという意味でとっても面白く読めました。
この本OSの知識が無い人が読むと、気を失うかも。。。
アセンブラの本じゃないです。まさにOSの本です。
おらとしては、もうちょっと最適化技法について書いてあるとよかったかな。
486のあと、Pentium, PentiumPro, MMX, Pentium2, 3, 4と進化していくわけだけど、ちょっとマルチCPUに関しての話に興味を持ったのでその手のお勉強でもしようかなぁ。
やっぱり、Intelのページで英語のドキュメント見ないとだめかな。面倒だなぁ。
そういえば、以前、IA‐64プロセッサ基本講座 池井 満 (著)をざっと読んだけど、「こんな面倒なアセンブラかいてられるか」と思った。ここまで来るとコンパイラの最適化機能でやらないと無理なんで、この486の話と、MMXとMMX2くらいが人間アセンブラの限界かなぁと。。。
まぁIA-64も人間アセンブラの方がパフォーマンスを出せる分野はあるんだけどね。