JOS 3週目

修論発表を破壊したので来週こそは頑張りたい。

2/3

やったこと

  • HW: boot xv6
    • 一晩置いたらすんなりできた。

やること

  • boot loader の動きを追う (boot/main.c)

2/5

やったこと

  • BIOS 起動から kernel 読み込みまでの流れを整理
    • BIOS ROM の始点 0xffff0 から BIOS が起動する。
    • BIOS 初期化の後ブートセクタ (512 byte) を 0x7c00 ~ 0x7cff に読み込む。
    • 32-bit protected mode にスイッチし 0x7c00 にロングジャンプしてブートローダが起動する。
    • 1 page (4096 byte) 分 ELF ヘッダーを読み込んで検証する。
    • PHT (Program Header Table) を読みつつプログラムセグメントをそれぞれロードする。
    • 最後に ELF ヘッダーの entry point をコールしてカーネルが起動。
  • VMA と LMA の理解
  • Exercise 6, 7, 8

やること

  • cprintf() を追う

2/8

やったこと

  • Lab 1 の提出課題であるバックトレース表示の mon_backtrace()
    • ebp, return eip 表示の実装

やること

  • debuginfo_eip() の実装
  • args 数の謎… "Why can't the backtrace code detect how many arguments there actually are? How could this limitation be fixed?"