加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – GRUB是否切换到保护模式?

发布时间:2020-12-13 18:16:51 所属栏目:Linux 来源:网络整理
导读:我想询问是否是GRUB在启动过程中将CPU切换到保护模式,或者是 Linux内核.还有我想问的是 – 内核本身(vmlinuz)是一个ELF还是二进制格式?谢谢. 解决方法 GRUB确实会使您处于保护模式. GRUB Multiboot Specification (version 0.6.96) Section 3.2告诉你这个
我想询问是否是GRUB在启动过程中将CPU切换到保护模式,或者是 Linux内核.还有我想问的是 – 内核本身(vmlinuz)是一个ELF还是二进制格式?谢谢.

解决方法

GRUB确实会使您处于保护模式.

GRUB Multiboot Specification (version 0.6.96) Section 3.2告诉你这个

‘CR0’

Bit 31 (PG) must be cleared. Bit 0 (PE) must be set. Other bits are all undefined.

而CR0 Register mapping告诉你系统应该处于保护模式.

Linux不是一个多引导内核,并不依赖于一些引导程序在PM中进行切换,它遵循Linux Boot Protocol.但是linux是自己保护的模式,而不依赖于引导加载程序

检查:http://lxr.linux.no/#linux+v2.6.39/arch/x86/boot/main.c

这里调用go_to_protected_mode();当然后调用protected_mode_jump(),然后进行CR0的填充(设置位0)

(另一位说分页被禁用)

编辑

我可以想到的是,GRUB can detect linux boot protocol(GRUB2和legacy也应该),并在内存上加载linux,但不切换到保护模式.看看这个链接:http://www.gnu.org/software/grub/manual/grub.html#GNU_002fLinux和本链接页面的第16节.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读