为什么一开始就向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 开始存在一样。
我正在尝试制作我的第一个内核,我找到了有关它的教程,但无法理解为什么这 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 开始存在一样。