0170-Multiboot2 啟動(dòng)頭
2023-08-18 10:48 作者:jiangbo4444 | 我要投稿
環(huán)境
Time 2022-11-11
WSL-Ubuntu 22.04
QEMU 6.2.0
NASM 2.15.05
前言
說(shuō)明
參考:https://os.phil-opp.com/multiboot-kernel/
目標(biāo)
編寫(xiě)一個(gè)符合 multiboot2 規(guī)范的啟動(dòng)文件。
multiboot2 規(guī)范
https://www.gnu.org/software/grub/manual/multiboot2/multiboot.html#Header-tags
規(guī)范定義文檔如上,其中的 3.1.1,3.1.2,3.1.3 介紹了啟動(dòng)文件需要符合的格式。

可以看到上面定義的都是無(wú)符號(hào)數(shù),其中的 checksum(校驗(yàn)和)+ magic + architecture + header_length 需要等于零。要使無(wú)符號(hào)數(shù) u32 等于 0,可以使其剛好產(chǎn)生溢出,結(jié)果回到 0,即(0x100000000)。
匯編代碼
編譯和查看機(jī)器碼
總結(jié)
了解了 multiboot2 的啟動(dòng)規(guī)范,定義和實(shí)現(xiàn)了其 header 匯編程序。
附錄
標(biāo)簽: