加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

按下开机键后的4.98秒

发布时间:2021-04-07 12:49:45 所属栏目:外闻 来源:互联网
导读:人一定是大牛,大牛要么不回答这个问题,要么就不会简单地回答这个问题。而我呢,自认为刚好处于两者之间,现在又特别想把自己知道的分享出来,所以你在这里找到了答案。 我想当你探寻这个问题的答案时,搜到的大多数是这样的描述: BIOS 按照启动顺序,把控
  • 人一定是大牛,大牛要么不回答这个问题,要么就不会简单地回答这个问题。而我呢,自认为刚好处于两者之间,现在又特别想把自己知道的分享出来,所以你在这里找到了答案。

我想当你探寻这个问题的答案时,搜到的大多数是这样的描述:

BIOS 按照“启动顺序”,把控制权转交给排在第一位的存储设备:硬盘。然后在硬盘里寻找主引导记录的分区,这个分区告诉电脑操作系统在哪里,并把操作系统被加载到内存中,然后你就能看到经典的启动界面了,这个开机过程也就完成了。

这种描述简直太魔幻了,为什么是 BIOS 主导这一切?怎么叫按照启动顺序?这个分区咋就被加载到内存了,又咋告诉电脑操作系统在哪里了?我无法忍受这样的魔幻描述,我非要把它说得清清楚楚。

首先学一个东西,一定要有一个前置的知识,我们把它当做已知的,我不可能从原子组成分子开始讲原理。那学习计算机启动过程的前置知识是什么呢?我要求你已知以下几点:

  1.  内存是存储数据的地方,给出一个地址信号,内存可以返回该地址所对应的数据。
  2.  CPU 的工作方式就是不断从内存中取出指令,并执行。
  3.  CPU 从内存的哪个地址取出指令,是由一个寄存器中的值决定的,这个值会不断进行 +1 操作,或者由某条跳转指令指定其值是多少。

好了,只需要知道这三点前置知识,你就能专业地解释计算机的启动过程了。

一、为什么是 BIOS 主导?

都说开机后,BIOS 就开始运行自己的程序了,又硬件自检,又加载启动区的。我就不服了,为什么开机后是执行 BIOS 里的程序?为啥不是内存里的?为啥不是硬盘里的?

好的,不要怀疑前置知识,CPU 的工作方式,就是不断从内存中取指令并执行,那为什么会说是执行 BIOS 里的程序呢?这就不得不说说内存映射了。

二、内存映射

CPU 地址总线的宽度决定了可访问的内存空间的大小。比如 16 位的 CPU 地址总线宽度为 20 位,地址范围是 1M。32 位的 CPU 地址总线宽度为 32 位,地址范围是 4G。你可以算算我们现在的 64 位机的地址范围。

可是,可访问的内存空间这么大,并不等于说全都给内存使用,也就是说寻址的对象不只有内存,还有一些外设也要通过地址总线的方式去访问,那怎么去访问这些外设呢?就是在地址范围中划出一片片的区域,这块给显存使用,那块给硬盘控制器使用,等等 。

这样说,其实就不符合我们的前置知识了,所以可以有一种不太正确的理解方式,那就是内存中的这块位置就是显存,那块位置就是硬盘控制器。我们在相应的位置上读取或者写入,就相当于在显存等外设的相应位置上读取或者写入,就好像这些外设的存储区域,被映射到了内存中的某一片区域一样。这样我们就不用管那些外设啦,关注点仍然是一个简简单单的内存。这就是所谓的内存映射。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读