type
status
date
slug
summary
tags
category
icon
password
Property
May 16, 2025 11:16 AM
由于操作系统本身时存放在硬盘中,并非能在bios引导后直接在内存中运行,所以才有了BIOS引导操作系统的这个步骤。
在主板上电之后,BIOS需要去找到引导程序的位置,这个位置固定在(0磁头0柱面1扇区)的位置,这个扇区也被称为主引导扇区(MBR)。一个扇区大小固定为512字节。也就是boot_loader的大小也必须在512字节以内。
有趣的是主引导扇区有一个约定,那就是最后两个字节必须是0xAA55, 也就是实际留给bootloader的大小只有510字节,不过这也非常够用了。
上文一直有说到一个词叫做BootLoader,这个其实按照字面意思理解就可以,就是一个启动操作系统的程序。BootLoader主要就写一些控制硬盘的代码,把硬盘里的一些数据给放在内存里。不过内存也不是什么位置都可以放的,有些内存是给显卡用,有些是硬件保留的。留给开发者使用的内存当然也是定死的辣。默认执行完引导扇区的代码后,就会去指向0x7c00该内存地址的指令。所以操作系统都是写入在0x7c00这个内存地址里的。
后面的东西以后在说,不过知道这些之后,恭喜你,至少你已经知道了怎么在计算机上编写一个裸机程序了,配合中断表写个helloworld完全不是问题。
- 作者:sdttttt
- 链接:https://www.sdttttt.site/article/1f20e50d-3291-8038-81b0-de11691e995b
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。