「自作エミュレータで学ぶx86アーキテクチャ」を読んだ。

以前から気になってはいたが表紙がアレ受け狙いな感じが嫌で読んでなかった、「自作エミュレータで学ぶx86アーキテクチャhttps://book.mynavi.jp/ec/products/detail/id=41347 を読んだ。アマゾンのキンドルアンリミテッドの格安セールで対象だったから。

同じマイナビ出版の「OS自作入門」「CPUの創り方」と方向性は似ていて、まじめにやるとちょっと難しそうだけど、スケールダウンした教材なら普通の本屋に置ける解説書になるよね、という感じ。難易度でいうとこの「自作エミュレータ…」が一番易しい。情報系大学の実習でやっても全員ついてこれる程度だと思う。表紙と中身の相関の無さもこの本が一番。

読まなかった理由の本当のところは ”x86アーキテクチャ” というキーワードが一番に出ていたから。でも、実際はx86(386)の基本的な機械語命令の動作解説が半分で、あとはPCの起動の触りのディスクのパーディションがとかBIOSが読み込んでとか、そういうところが半分くらい。方針はアセンブラの王道でアセンブラでコーディング→デバッガで動作確認なんかより「自作エミュレータで動作を追う」ほうが理解が進むでしょうということで、作成するエミュレータは32ビットのリアルモードx86としてるけれど、実行できるインストラクションは30数種類でニモニック数だと20程度。メモリはMMU無しの1MB実装に対して、コード領域は512バイトとかなり限定的。何もqemuと同じものを作りましょうとかではなくて、きわめて小規模にC言語で書かれているので拡張は非常に容易。386のエンハンストモードまで拡張できるかは努力次第。

題名のx86アーキテクチャを学ぶっていうのは正しくて、なにも80386とAT互換機のアーキテクチャのすべてを学ぶわけではない。そして作成する自作エミュレータというかシミュレータはx86なPCのフル実装をするわけではなく、学ぶ対象のx86アーキテクチャそのものでもない。それはインストラクションセットが386のサブセットになってるってものであって、WindowsやDOSが動くものではない。とりあえず、この仮想マシンは一応ノイマン型アーキテクチャになってるし、どう応用するかは別にしても、この構造の仮想マシンの組み方を知っていると知見が広がる。写経しても良いし、読み物程度に流しても良いと思った。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中