百科问答小站 logo
百科问答小站 font logo



linux内核切换成分页模式后,ljmp $__BOOT_CS,$1f 这行代码有什么意思? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

这个东西,你找一个能调试的模拟器就可以看出来,比如bochs之类。

在执行ljmp $__BOOT_CS,$1f之前,虽然代码已经把CPU切换成保护模式,页表也都建立完成了,但当前执行的代码仍然处于16位实模式地址下,当前的代码的段地址和段偏移地址都是16位的。

通过Long Jmp来做一个跳转,会切换段地址,这个时候代码才真正进入保护模式。




  

相关话题

  向下扩展的段,为什么偏移量是从limit+1 ~ 0xFFFF? 
  如何看待 2018 年 1 月 2 日爆出的 Intel CPU 设计漏洞? 
  求问“命令行的需求,命令行的本质,命令行究竟解决什么需求,命令行究竟又能带来什么好处”,到底是什么呢? 
  为什么 Linux 指针越界时程序会立即被中断,而 Windows 不会? 
  如果有人给你两万美元让你黑自己的公司,你会怎么做? 
  Intel 为什么会成为 Linux 内核最大的贡献者? 
  如何看待华为称其对 Linux 贡献全球第一,Linux 内核审核员呼吁华为公司不要刷 KPI ? 
  操作系统虚拟地址转换为物理地址是如何避免冲突的? 
  苹果的 Rosetta 2 的实现原理大概是怎样的? 
  如何在Macbook Pro Retina上使用Linux(主要关于分辨率)? 

前一个讨论
为什么修改esp寄存器会触发异常?
下一个讨论
相同的硬盘条件下,ext4能存储比NTFS更多的文件吗?





© 2025-05-05 - tinynew.org. All Rights Reserved.
© 2025-05-05 - tinynew.org. 保留所有权利