
让我们详细说明最后一点.请记住,系统在实时模式下运行,因此您只能访问1MB的物理内存,但另一方面,您可以通过BIOS中断调用以非常简单的方式访问您的HDD.如今, *** 作系统要求的内存比1MB多得多,并且他们希望将处理器切换到保护模式,以便能够访问完整的地址空间(4GB,至少在32位系统上).但是,一旦系统处于保护模式,BIOS中断调用就不再可用,并且HDD的输入/输出必须经过复杂的设置通信(如DMA),并且该设置通常不会发生在引导加载程序中.引导加载程序将从实模式切换到保护模式.它从HDD获取一个扇区进入1MB地址空间,然后切换到保护模式,将该扇区复制到4GB地址空间中的某个位置,最后切换回实模式以从另一个扇区获取另一个扇区.硬盘.一旦获取了所有扇区并将其复制到物理内存,引导加载程序就会跳转到 *** 作系统.
总结一下:
> BIOS查找位于每个设备的第一个扇区上的MBR的设备列表.如果第一扇区的最后一个halword与幻数匹配,则找到MBR. BIOS将MBR复制到物理内存,然后跳转到它.
> MBR嵌入了一个分区表,因此它知道从哪个位置(基本上是HDD的哪个柱头扇区)它应该将更多代码加载到物理内存.例如,这一步可能是加载GRUB.
>假设在GRUB中,多引导规范用于定位OS.有关多重启动的详细信息,请查看以下链接.
您可能想看看这些资源:
> http://en.wikipedia.org/wiki/Master_boot_record
> http://en.wikipedia.org/wiki/BIOS_interrupt_call
> http://wiki.osdev.org/Boot_Sequence
> http://duartes.org/gustavo/blog/post/how-computers-boot-up
> http://www.gnu.org/software/grub/manual/multiboot/multiboot.html
以上是内存溢出为你收集整理的linux – *** 作系统存储在磁盘上的位置以及引导加载程序如何定位它?全部内容,希望文章能够帮你解决linux – *** 作系统存储在磁盘上的位置以及引导加载程序如何定位它?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)