01 开机后最开始的两行代码是什么?
你好,我是闪客。
从这一讲开始,我将带你一起进入操作系统的梦幻之旅!
一提起操作系统,是不是感觉很硬核?不过你别担心,每一讲的内容都很精练,而且你也不要带着很大的负担去学习,只需要像读小说一样,跟着我一讲一讲地看下去就好。
这一讲我们要讨论的问题是,开机后执行的第一行操作系统代码是什么?在这行代码之前又发生了什么?看完这一讲,你就知道答案了。
当你按下开机键的那一刻,在主板上提前写死的固件程序 BIOS 会将硬盘中启动区的 512 字节的数据,原封不动复制到内存中的 0x7c00 位置处,并跳转到这里运行。

如果你能理解我上面说的话,那么恭喜你,接下来你只需要跟着代码一点点往后推导和品味,就会慢慢建立起整个操作系统的大厦。
但如果上面的这个过程你很困惑,那可能会在这卡一阵子。不过没关系,很多人都会卡在这个原本很简单的问题上,然后就从入坑到放弃了,我曾经也在这卡了很久。
接下来,我们一步一步地梳理。
开机后初始化指向 BIOS
首先,CPU 中有个 PC 寄存器,这里面存储着将要执行的指令在内存中的地址。当我们按下开机键后,CPU 就会有个初始化 PC 寄存器的过程,然后 CPU 就按照 PC 寄存器中的数值,去内存中对应的地址处寻找这条指令,然后进行执行。