kernel - 启动地址。为什么?

时间:2015-03-07 15:11:03

标签: linux-kernel kernel

上下文

阅读内核的启动方式。

我在那个页面上: http://www.linuxjournal.com/article/2239

它表示内核加载为0x10000。

问题:

为什么这个地址?

1 个答案:

答案 0 :(得分:6)

从0x00007E00到0x0007FFFF的区域为480.5 KiB,保证可用于操作系统的空闲RAM。 了解not all physical addresses are free, usable RAM非常重要。有些保留用于BIOS数据,用作视频内存或其他原因。

看到廉价的BIOS和硬件忽视标准或试图做出智能黑客但最终破坏事情并不罕见。这个记忆区域对所有恶作剧都是安全的,它是加载数据的好地方,而且看起来效果确实很好。

您可能知道,引导扇区通常位于0x00007C00到0x00007DFF之间,正如您的文章所提到的,Linux将此扇区重定位到0x00090000,然后从0x00010000开始加载内核的其余部分。这是一个很好的位置,因为它是低内存中最大(几乎半个MiB)的大块RAM,保证可以免费使用。