1/18 xv6-UEFI ブートローダー実装 log
PXE はネットブートなので、禁止すれば良い
Bootlodaer でファイルをメモリにロードする
メモリのエントリに入っていく
start.cでエントリポイントに入っている?
Kernnel.ldにジャンプするポイントがある
text の先頭に飛び込むんじゃないかな
gdbとqemuで、スタート位置を見ることはできる
uefiがどこから始めるのかはわからない
ローダーがkernelをロードしたあと、そこにbreakpointをおく
xv6のfile system
virtio_diskがある、これでファイルシステムを読み込んでる?
Fs.img はオンメモリー
メモリ上で動いている?
xv6はメモリ上だけで動いていて、virtioはboot時には使ってないんじゃないかな
kernel imageの中に、ファイルシステムが入っているんじゃないか
kernelのオブジェクトにfs.imgが入っているはず
普通は、メモリ上にファイル置いて、そのファイルシステムをロードする
なので、virtで後から持ってくる必要はないはず
gdbでデバッグ
control+Cで進める
qemu-gdb
qemuには、-S でバッグストップするオプションついてる
メモリマップを途中から変えてる
途中から仮想メモリになる
0x40000000 から始まる
kernel imageはどこだろう
-kernel で読み込まれていて、0x40000にあるはずだけど、gdbで見るとぶっ壊れてる?
Kernel を最初にロードしないとダメ
それからentoryに入る
getmemorymap
Kernelの後ろにfsをくっつける方法がある
リロケートからloadfile 呼んでるんじゃないかな
つまり、kernelをロードするところから
xv6-x86_64 を参考にブートローダーをかく