1

加载内核后 syslinux 是否切换到保护模式?syslinux 启动内核后的机器状态是什么。

4

1 回答 1

2

我假设您正在谈论加载 Linux 内核的 syslinux。

看看Documentation/x86/boot.txt

Linux 内核有一个小的实模式设置代码(位于arch/x86/boot/),它做了一些必须在转换到保护模式之前完成的事情(其中大部分是在实模式 BIOS 中查询一些信息)。引导加载程序将此部分加载到低内存(低于 640k)中。

较旧的内核足够小以适应小于 640k 的连续低内存,因此引导加载程序将整个内核加载到低内存中,并且可以在实模式下执行所有操作。较新的内核更大(通常在 4M 左右),因此它们必须加载到高内存中(1M 以上)。为此,引导加载程序必须更改为保护模式以将内核放在那里,更改回实模式以调用 BIOS 从磁盘读取更多扇区,并在跳转到内核设置代码之前更改回实模式(其中最后一次将再次转换到保护模式)。

因此,要回答您的问题,它会做相反的事情:它在加载内核后保护模式切换到实模式。

处理器状态如我上面链接到的文档中所述:实模式 CS 指向实模式设置代码的开头加上 0x20(使 CS:IP 指向第二个 512 字节实模式设置代码扇区的开头) ,其余的段寄存器指向实模式设置代码的开始(第一个扇区),以及填充在实模式设置代码的前两个扇区中的标头中的几个参数。通用寄存器的内容无关紧要。

于 2011-06-20T01:21:56.160 回答