我正在从头开始编写引导程序和内核,我的目标是创建一个既可以由GRUB也可以由我的引导程序加载的内核。不过,问题不在于内核。我不知道如何在0x100000加载内核,这是grub加载内核的地方。 0x100000的大小不足以容纳16位寄存器,并且太大而无法使用分段(使用BIOS中断读取磁盘时使用地址缓冲区es:bx)。
所以我的问题是,GRUB如何将内核加载到内存中?
我正在通过《 Little Os Book》构建内核,据我所知,由于内核是在链接描述文件中指定的,因此内核已加载到1MB地址。
您可以签出书籍here,阅读链接内核