为GRUB引导加载程序

时间:2016-11-01 22:00:35

标签: x86 operating-system kernel bootloader grub

我正在努力弄清楚这是做什么的

.set ALIGN,    1<<0             # align loaded modules on page boundaries
.set MEMINFO,  1<<1             # provide memory map
.set FLAGS,    ALIGN | MEMINFO  # this is the Multiboot 'flag' field
.set MAGIC,    0x1BADB002       # 'magic number' lets bootloader find the header
.set CHECKSUM, -(MAGIC + FLAGS) # checksum of above, to prove we are multiboot

所以我有所有这些注释行,但我找不到为什么这样。第一组对齐加载模块的结果如何ALIGN全局变量的结果是1而MEMINFO是2.我找不到。

1 个答案:

答案 0 :(得分:0)

迈克尔与Multiboot Specification的链接显示了究竟发生了什么。 FLAGS符号(在您的情况下包含0xB0000000)指定操作系统映像请求或需要引导加载程序的功能。由于ALIGN符号而设置的位0指定与操作系统一起加载的所有引导模块必须在页面(4KB)边界上对齐。由于MEMINFO符号而设置的位2指定需要存储器信息。