地址0x100000处的startup_32怎么样?

地址0x100000处的startup_32怎么样?

我正在阅读有关 Linux 内核如何准备进入保护模式的内容。一切都可以理解,直到在 boot/pmjump.S:74 中,我们跳转到 EAX 中的 0x100000。

在此输入图像描述

该控件应该转到 boot/compressed/head_64.S 中的startup_32 标签,这是32 位入口点。

但是,startup_32 位于 .head.text 部分,该部分从地址 0x0 开始。 (往下看)

在此输入图像描述

因此,startup_32 的地址实际上是 0x0。但是当我们跳转到 0x100000 时,控制是如何到达那里的呢?

相关内容