C/C++系列之系统启动流程

       注: 以上是自己的学习心得,不一定正确,有错误还望指出,若能帮到你,深感荣幸。谢谢!

   首先我们来理解下磁盘,磁盘由磁盘盘面、机械手臂、磁盘读取头主轴马达所组成,数据是写在磁盘上面的,而磁盘盘面上有磁柱,磁区,扇区,磁头。

  首先,磁盘盘面的组成,磁盘的最小单位是扇区,每个扇区是

 512  个字节,而扇区的编号是0-63,由编号0-63扇区构成磁区,由于磁盘是圆形,这个时候这个磁区看上去是个扇形,而由中多个磁区构成了磁柱,也就是一个空心圆,就像我们看到的圆形跑道(假设跑道是圆形的),而这些许许多多的磁柱就构成了磁盘面

而由这些磁盘面构成了整个磁盘,这里需要给大家提醒的是,我们常常听到的磁柱面,以前我在自学的时候,我将磁柱面当成了磁面,其实磁柱面是,垂直方向上的所有磁柱的集合。有这么一个计算磁盘容量的公式:

    磁盘容量 = 磁头数量X磁柱数量X扇区X0.5MB;

 现在我们步入正题,以前我很疑惑一个问题,那就是硬件本身就是一个冰冷的东西,它为什么就能加载操作系统呢? 随着慢慢学习,我才发现,磁盘上面的第一个扇区的重要性,第一个扇区和其他扇区是一样的都是512个字节。在这第一个扇区内保存的是主要启动记录,即MBR(Master Boot Recoder)  .和分割表,为什么说第一个扇区是很重要的呢? 因为当开机的时候,会主动去读取第一个扇区中的MBR记录,这样才能知道应用程序放在那里,而分割表保存的是我们磁盘分区的记录。而每条分割记录占16个字节,而分割表只有64个字节,这也就决定了,分割表中只能存放四条分割记录。而这些又与系统启动有什么关系呢?而且又是谁在读取MBR中的记录,执行系统启动程序呢?这里又要涉及到BIOS,首先BIOS是一个存储在硬件上的软件程序,当电源开启时,会被执行,也就是计算机通电之后第一个执行的程序,而bios程序又是怎么找硬盘的呢? 这个时候就是CMOS了,它是一个嵌在主板上的存储器,保存着硬件的参数,这个时候BIOS会自动去读取磁盘第一个扇区的MBR记录,

 而MBR记录的是什么呢?这个时候我就可以知道MBR记录中存储的是开机管理程序,由它决定着系统启动时应该加载的程序。也就是加载操作系统内核,直到操作系统运行环境加载完毕。等加载完毕后,我们的操作系统依旧启动起来了。如果有错误,还望指教我的QQ是:1145919989


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值