Kernel 加载内核后,syslinux是否切换到保护模式?

Kernel 加载内核后,syslinux是否切换到保护模式?,kernel,bootloader,Kernel,Bootloader,加载内核后,syslinux是否切换到保护模式?syslinux引导内核后的机器状态是什么。我假设您谈论的是syslinux加载Linux内核 看一看 Linux内核有一个小的实模式设置代码(可在中找到),它执行一些在转换到保护模式之前必须完成的操作(大多数操作都是查询实模式BIOS以获取一些信息)。引导加载程序在低内存(低于640k)中加载此部件 较旧的内核足够小,可以容纳不到640k的连续低内存,因此引导加载程序在低内存中加载整个内核,并且可以在实模式下执行所有操作。较新的内核更大(通常在4

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

我假设您谈论的是syslinux加载Linux内核

看一看

Linux内核有一个小的实模式设置代码(可在中找到),它执行一些在转换到保护模式之前必须完成的操作(大多数操作都是查询实模式BIOS以获取一些信息)。引导加载程序在低内存(低于640k)中加载此部件

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

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


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

Syslinux需要访问超过640KB的内存,因此在从磁盘加载内核(和initrd)时,它必须已经切换到受保护模式。机器状态如何,最后对于linux内核,可以,机器应处于受保护模式,处理器状态如linux引导协议所述。上下文是针对任何通用内核的,比如说一个自制的原型,在这种情况下会是什么情况。与GRUB一样,它将遵循多引导规范。