为什么一开始就向Bootloader发送1MB的数据?

Why is 1MB of data sent to Bootloader in the start?

我正在尝试制作我的第一个内核,我找到了有关它的教程,但无法理解为什么这 1MB 的数据最初发送到 Linker.ld 文件中的引导加载程序。我已经在互联网上搜索但找不到答案。如果可以,请帮帮我。 这是代码:

    ENTRY(start)

    SECTIONS {
    . = 1M;

    .boot :
    {
        KEEP(*(.multiboot_header))
    }

    .text :
    {
        *(.text)
    }
}

来自 GNU LD 手册:

The special linker variable dot `.' always contains the current output location counter. [...] Assigning a value to the . symbol will cause the location counter to be moved.

所以 . = 1M; 在放置任何部分之前将当前位置计数器设置为 0x100000。

没有数据被“发送”到引导加载程序。该行告诉链接器,就好像该程序从地址 0x100000 开始存在一样。