bootloader与实模式到保护模式关系?

bootloader与实模式到保护模式关系?最近在学习操作系统,然后自己也看了几本书,30天自制操作系统和一个操作系统的实现,其实我比较喜欢计算机底层相关知识,也想如果自己能写一些操作系统内核真好,但是在关于操作系统启动方面就一直问题重重,比如bootloader与实模式到保护模式关系?这些很多东西就恨不能理解,其实我学过汇编,但是很多东西就是理解不到。理论我觉得来讲,启动盘的512引导扇区,在这512扇区里面直接弄一个跳转到操作系统内核不就行了吗?为什么还涉及很多实模式呀,保护模式这些问题,bootloader这些,就让我很不解,也不明白bootloader与实模式到保护模式关系?一个操作系统实现这本书写了很多实模式到保护模式的东西,但是一直看不太懂,进步很慢~

阅读 2.6k
1 个回答
XP实现切换的动作是在NTLDR里完成的,但跟你理解的不一样的是,不是说一下子切换到保护模式就OK了,而是在实模式和保护模式之间来回切换很多次。原因是:NTLDR里是没有硬盘驱动的,读盘是通过INT 13实现的,而INT 13只在实模式下能用,怎么办?所以NTLDR先算出来要读的扇区的位置(在保护模式下),然后切换到实模式调用INT 13,读完以后再返回回来。因为要频繁调用INT 13,所以会在保护模式和实模式之间切换多次,这种设计从Win2000开始到XP一直都是这样的,因为Win2000和NT4有源码泄露,去看一下就明白了。如果是XP和Win7混装(先装XP),也有类似的动作。直到处理完所有读盘请求以后,才彻底切换到保护模式。

作者:北极
链接:https://www.zhihu.com/questio...
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转过来供你参考

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题