分享

操作系统的启动过程

 山峰云绕 2023-04-09 发布于贵州

https://blog.csdn.net/weixin_51760563/article/details/118801743

1.BIOS阶段

计算机在按下开机键后,首先运行的是BIOS程序,BIOS首先进行加电自检,完成对系统的全面检查。确保核心组件如CPU、主板、内存、串并口、磁盘等正常运行。这一检测经常被称为post或power on selftest。

完成加电自检后,BIOS所做的第二项工作就是设备初始化

然后,BIOS将根据用户所指定的引导次序,按照顺序选择引导设备。在选择了合适的引导设备后,BIOS会把引导设备第一个数据块载入内存,并把执行权移交给它。

2.引导加载程序阶段

第一个数据块所记载的是主引导记录(MBR),共512个字节。包括:引导加载程序(Boot Loader)(前446个字节,如GRUB等)、磁盘分区表(DPT,Disk Partition Table)、分区有效性标志(55AA)。引导加载程序负责加载启动硬盘分区中的操作系统。

Linux系统中的引导程序有以下3个作用:

1)编写合适的内核命令行;
2)装载合适的初始虚拟磁盘(简称initrd);
3)装载合适的linux内核并移交控制权给它。

引导程序在设计上通常包括两个阶段:

第一阶段,第一阶段的引导程序通常很小,适合存放在MBR中(因为只有446个字节)。第一阶段引导程序的任务是:定位、装载并把控制权传递给第二个阶段的引导程序,这个程序在文件系统中是看不到的;

第二阶段,第二阶段的引导程序通常就是引导程序自身,它在启动时就运行了某种形式的应用程序,能够读取有关默认设置的配置信息。第二阶段引导程序通常是文件系统中可以识别的二进制文件。

3.内核运行阶段

Linux内核文件都是以压缩格式存放的,在上一步骤成功完成后,Linux内核被加载至内存中,内核文件首先完成自解压,并在ramdisk文件的帮助下,内核拥有了访问磁盘及文件系统等基本设备的驱动程序。随后内核在完成探测可识别的硬件设备并加载相应驱动,以只读方式加载根文件系统等操作后,内核就可以启动位于磁盘上的第一个应用程序init,进而完成系统的初始化。

参考文献:

  1. 冯冬艳.Linux操作系统GRUB故障的识别与修复[J].山西电子技术,2018,{4}(06):53-55.

  2. 王士刚.Linux系统的启动过程研究[J].科技传播,2011,{4}(24):184+191.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多