一、前言
今天起开始分享关于操作系统的相关知识,本人也是菜鸟一个,正处于学习阶段,这整个操作系统篇也是我边学习边总结的一些结果,希望能给正在学习或者有意向学习操作系统的童鞋带来帮助。
二、有关知识
在进入代码之前,先给大家普及一些硬件知识,如果你已经具备了这方面的知识,可以直接略过这部份。
1.计算机怎么启动操作系统的?
首先,我们思考一个问题,为什么一个硬盘安装系统之后打开计算机电源之后就能正常加载启动呢?这看起来似乎很智能,似乎计算机像活的一样会自动去硬盘中找系统代码并自行加载。其实不然,在计算机的世界里一切也都是离不开规则的。而基于这些硬件所定的规则或者协议,我们将启动代码放到协议规定的地方,这时候启动就会加载这部分代码。听起来好像有点乱,我们继续看。
2.主引导扇区
很多安装过系统的童鞋都应该知道引导盘这个东西,就是在我们启动电脑的时候可以通过bios来设定是通过U盘启动还是通过硬盘启动。对于硬盘来说,硬盘的第一个扇区是 0 面 0 道 1 扇区,或者说是 0 头 0 柱 1 扇区,这个扇区称为主引导扇区。如果计算机的设置是从硬盘启动,那么, ROM-BIOS 将读取硬盘主引导扇区的内容,将它加载到内存地址 0x0000:0x7c00 处(也就是物理地址 0x07C00),然后 jmp 跳到那里接着执行: