明けまして

12月31日からOS自作本の3日目のソースファイルをGAS(Gnu Assembler)を用いて書いてやろうと試みていたけれど、ようやく32bit プロテクトモードに突入 && 32bitバイナリを動作確認したよ!

なぜこんなに時間がかかっていたかというと、

  1. GASで絶対ジャンプする方法がわからなかった(12月30日:コメント頂きましたとおりすがりさん、ありがとうございました!)
  2. HDDとしてマウントしていたのにも関わらず、シリンダやヘッダの指定方法をFloppyのものと同様に指定していた (1日〜2日)
  3. 風邪をひいてしまった(2日〜)
  4. memcpy がバグだらけだった (5日〜6日)
  5. qemuモニタの存在を知って色々遊んでいた(5日〜6日)
  6. GASでのセグメントジャンプの方法を勘違いしていた(5日〜6日)

と、色々な理由があったりする(^ー^;
まぁ、行き詰まった分、勉強にはなった。それと、qemuモニタのレジスタダンプ機能と、メモリダンプ機能がすごいのに気がついて、途中から使いまくっていた。せっかくなので、後でまとめようかと思う。

お買い物

つくばに戻る(略して帰筑!)途中、ヨドバシアキバでお買い物してきた。
まずは Binary Hack。

Binary Hacks ―ハッカー秘伝のテクニック100選

Binary Hacks ―ハッカー秘伝のテクニック100選

ちょっと前にelfバイナリについて軽く調べたけれど、そのあたりのことについてかなりまとまっているようだ。OS自作本を進めるにあたっても使えそうなので購入。

次は Write Great Code vol.2。

Write Great Code〈Vol.2〉低いレベルで考え高いレベルで書く

Write Great Code〈Vol.2〉低いレベルで考え高いレベルで書く

これ、ちょっと立ち読みしたけれど、なんで今まで手が伸びなかったんだろう、っていうくらい良い本。お目当てはアセンブリの章とコンパイラが吐き出すアセンブリコードを検証する章。

忘れてはならん

先月終了したインターンシップでやりのこした仕事があるので、そいつを今週中に終わらせる。