按下电源后的几秒钟,CPU 在干嘛?

js 原创
2022-11-12 电脑百科网

本文来自微信公众号:编程技术世界 (ID:xuanyuancoding),作者:轩辕之风 O

来电了

“来电了,来电了,起来干活了”,一大早,我还在睡梦中就被吵醒了。

我是 CPU 一号车间的阿 Q,好久不见,不知道大家有没有想我呢?

“今天不是星期六吗?怎么还要作业”,我有些不高兴,本以为能睡一个懒觉,谁知道大周末的程序员还开机,这是来加班了吗。

一边诉苦,一边还得赶忙起来干活。

来到我所在的作业车间,提取指令的小 A、分析指令的小胖和负责结果回写的老 K 都现已到了,就差履行指令的我了。

咱们几个各就各位,做起了预备作业。

“小 A,报告一下各个寄存器的值”,我吩咐小 A,这是咱们每天开端作业前必做的查看项。

每次一通电,咱们的电路就会发动自检作业,把所有的寄存器全部重置,假如哪里有反常的话,就会把过错记录到 EAX 寄存器中,假如发现 EAX 的值不是 0,那可就大事不好了。

“报告,寄存器已确认:”

看起来没什么问题,尤其是 CS 和 IP 这两个寄存器,决定着一瞬间该从哪里开端履行代码呢。

咱们是一个 64 位的 CPU,平常都是作业在保护形式下,运用虚拟地址来拜访内存,由厂里的内存办理单元 MMU 负责给转换成实在的物理地址。

不过在刚刚开机的这会儿功夫,虚拟地址翻译所需求的页目录、页表这些信息都还没预备好,MMU 还无法作业,这时分咱们只能运用 16 位的寄存器,作业在实地址形式下,运用段 + 基址的方式来跟内存打交道,最多只能运用 1MB 的内存空间,实在是有点局促。

开端履行

“大家都预备好了吗,打起精神来,要预备开端今天的作业了哦!”

“Q 哥,这刚刚通电,内存条那家伙应该仍是一片空白吧,咱们要去履行哪里的指令啊?”,小 A 问到。

“这你不必担心,在主板上,咱们 CPU 隔壁不远处有个叫 BIOS 的店员,是一个 ROM 芯片,咱们现已跟他约定好了,一通电他就映射到地址空间中,你虽然依照 CS:IP(0xF000:0xFFF0)指向的当地开端取指令就对了,他会安排好的”

“原来是这样”,小 A 点了点头,似懂非懂的样子。

正式开端干活了,小 A 娴熟的从 F000:FFF0 处,也便是 0xFFFF0 处取到了第一条指令:jmp xxxx

好家伙,上来便是一个大跳转,咱们一下来到了 BIOS 那家伙地盘的中心,开端履行他预备的程序了。

接下来履行的这一堆指令我现已做过无数次了,对主板上各单位进行检测,看看有没有反常情况,还有初始化咱们作业需求的中断向量表等等,我早现已驾轻就熟了。

“哥几个忙着呐”,咱们正忙的如火如荼,发现有人在门口围观,回头看去,原来是隔壁二号车间、五号车间、八号车间的几个家伙。

“你们几个这么闲,要不来帮咱们干会儿活?”

“哎,你想得美,你们一号核是引导处理器(BSP),待遇比咱们好,这开机发动的活儿咱们怎么能抢呢?”,二号车间的虎子阴阳怪气的提到。

真是仰慕他们,比咱们 1 号车间上班时间晚,每次都可以多睡会儿。

MBR

我持续履行 BIOS 中的代码,全部查看完毕,没什么反常,要预备发动操作系统大佬了。

接下来,我查看了 BIOS 中装备的发动次序,排在第一位的是硬盘兄弟。

于是我把硬盘老哥第 0 盘第 0 道第 1 扇区的内容读取到了内存中的 0x7C00 位置,他们把这玩意叫做主引导记录 MBR,总共 512 个字节。

听硬盘那哥们说,这是操作系统老迈在装置的时分,写到他那里的。

他还告诉我,这个位置很重要,曾经就有病毒占据了这个位置,最终没办法只好重装系统。

MBR

读取到了 MBR 后,还得查看最终两个字节有必要是 0x55 和 0xAA,看起来没什么问题,是一个合法的 MBR,咱们又跳到了 0x7C00 的位置开端履行。

操作系统

总算来到操作系统的地盘儿了,在操作系统的指示下,咱们切换了作业形式,开端在保护形式下作业了!

刚刚切换到保护形式下,MMU 仍然无法做地址翻译作业,咱们仍是只有直接运用物理地址跟内存联系,所以得赶忙把页目录和页表预备妥当才行。

忙活了一阵子之后,总算把需求的东西都弄好了,我激动的打开了内存分页的开关,通知 MMU 部分开端作业,现在咱们可以运用虚拟地址拜访内存了,这感觉棒多了!

这时,一旁围观的二号车间、五号车间、八号车间那几个家伙见状赶忙遛了回去,因为他们知道,立刻就该他们作业了。

咱们持续履行操作系统的代码,给咱们 CPU 其他所有核都预备好了数据和指令,创建了多个线程出来,把他们也叫起来一起作业,咱们这个八核 CPU 总算全面开动起来,一下子热闹了不少。

再后来,不知履行了多少指令,创建了多少线程,才把操作系统老迈完好的运行了起来,成功完成了这一次的发动。

这便是通电后,咱们 CPU 开端作业的日常,我现已记不清这是第多少次发动了,也不知道,咱们还能发动多少次・・・

CPU怎么看性能?CPU天梯图2016最新版 GTX1050Ti配什么CPU GTX1050Ti配什么主板和多大功率电源 FX-6330配什么主板 AMD FX-6330搭配什么主板好? 最便宜吃鸡配置多少钱?《绝地求生》最低配置要求 西部数据承诺为出现故障的闪迪 Extreme 移动硬盘发布固件更新 黑手党3配置要求高吗?《黑手党3》最低配置与推荐配置
热门文章
为你推荐