文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

操作系统是怎么一步步启动起来的?

2024-11-29 19:34

关注

和我们写的helloworld程序一样,操作系统本身也是一个程序,被编译后作为文件保存在磁盘上。

图片

我们的程序是被操作系统加载到内存运行的,在前一篇文章《程序是怎么一步步运行起来的》中有过讲解:

图片

既然普通程序是被操作系统加载运行起来的,那么操作系统又是被谁加载到内存运行起来的?

图片

想知道问题的答案,我们要从内存说起。

内存只有在加电后写入数据才能保存信息:

图片

内存断电后这些信息就丢失了:

图片

当计算机启动时内存中一片荒芜,显然CPU不能执行来自内存中的指令:

图片

那么在你按下开机按键时CPU执行来自哪里的指令呢?答案是来自ROM或其它非易失性内存:

图片

这些存储设备中保存了一小段指令,计算机启动时CPU会执行这一小段程序。

CPU怎么知道这段程序保存在哪里呢?答案是CPU会从一个提前设置好的位置开始执行指令,在IA-32架构在CPU会从0xffff0这个位置开始执行这段程序。

这一小段程序就是我们熟悉的BIOS(Basic Input/Output System),更现代的是UEFI(Unified Extensible Firmware Interface)。

图片

BIOS这段程序有什么作用呢?这段程序用来检查硬件,各个硬件是否能正常工作等,CPU、内存、硬盘等,也就是所谓的自检,如果恰好你拆过机器忘记把内存条装回去,那么这一小段程序就会检测出系统中没有安装内存并给出告警提示。

图片

BIOS程序除了检查硬件之外在最后一步有一项重要的工作就是识别出操作系统保存在了哪里,也就是找到所谓的启动设备,这一般都是磁盘。

找到启动设备后开始把磁盘前512字节的数据拷贝到内存,这512字节就是所谓的MBR:

图片

其中包含了:

此时BIOS执行完毕,CPU开始执行MBR中的这段boot loader程序:

图片

这段程序的目的是根据磁盘分区表加载一个更大的boot loader。

图片

这个更大的boot loader功能更加强大复杂,如果你安装的是多操作系统,那么当这个更大的boot loader开始执行时会给你一个选项,在这里可以用户可以选择启动哪个操作系统。

图片

在这里可以看到MBR中的boot loader程序加载了一个更大的boot loader程序,也因此这两个boot loader分别被称之为First stage boot loader和second stage boot loader,也就是一阶段引导程序和二阶段引导程序。

图片

你可能会有疑问,为什么要有多阶段引导程序呢?为什么不能一阶段引导程序直接加载操作系统呢?

原因就在于MBR这个512字节的引导程序功能过于简陋,只能把磁盘中一段连续的数据copy到内存,加载操作系统这种多文件组成的大型程序需要解析文件结构,因此需要另一段功能更为强大的程序也就是二阶段引导程序的帮助。

二阶引导最终识别出操作系统所在的位置并把操作系统加载到内存中。

图片

此时CPU才开始真正执行操作系统,操作系统和我们写的程序一样也有一个初始化的过程,这个过程的最后会创建出一系列用户态进程,此时操作系统系统启动完毕可以接受用户的输入。

图片

当然在现代使用UEFI的现代系统中就不需要MBR中的一阶引导程序了。

以上就是操作系统启动的基本过程。

来源:码农的荒岛求生内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯