当前位置:网络安全 > Linux操作系统启动过程

Linux操作系统启动过程

  • 发布:2023-09-30 11:57

计算机读取内存映像,当屏幕输出“OK,启动内核”时。系统将内核放置在内存中,调用start_kernel()函数启动一系列初始化函数并初始化各种设备,完成Linux核心环境的建立。 前言 在上一章中,我们学习了与操作系统启动相关的几个概念。今天我们来讨论一下操作系统的启动过程。 注:本文是我之前学习Linux的学习笔记。部分内容引用自《曝光:Linux企业运维实战》书。感谢吴广科老师和京峰教育优质的教学。 Linux操作系统启动流程 本文以CentOS系列为例,详细讲解Linux操作系统的启动过程。 02 CentOS 6启动流程 1.加载BIOS 计算机开机时,首先进行BIOS开机自检,并根据BIOS中设置的启动设备(通常是硬盘)启动。 2.读取MBR 加载BIOS信息后,计算机将搜索BIOS指定的硬盘,读取该磁盘的MBR存储记录信息,并引导系统。 3.GRUB启动 选择引导内核/执行单用户模式密码重置 4. 加载内核 计算机读取内存映像,当屏幕输出“OK,启动内核”时。系统将内核放置在内存中,调用start_kernel()函数启动一系列初始化函数并初始化各种设备,完成Linux核心环境的建立。 5.设置系统运行级别 内核加载后,会启动第一个守护进程init,然后通过读取该进程来读取/etc/inittab文件,设置inittab运行级别。 常见的Linux运行级别如下: 1. 0:关机模式 2. 1:单用户模式 ​​3. 2:无网络支持的多用户模式 ​​4. 3:字符界面多用户模式 ​​5. 4:保留,不保留6、5:图形界面多用户模式 ​​7、6:重启系统,重启模式 6.加载rc.sysinit(系统初始化) 读取运行级别后,系统将执行第一个用户级别文件/etc/rc.d/rc.sysinit。该文件的功能包括:设置PATH运行变化、设置网络配置、启动交换分区、设置 /proc 、系统功能、配置SELinux等。 7.加载内核模块读取/etc/modules.conf文件和/etc/modules.d目录下的文件夹来加载系统内核模块。以后可以添加、修改或删除该模块文件。 8.启动运行级程序 根据步骤5中读取到的运行级别,操作系统会运行rc0.d到rc6.d中相应的脚本程序,完成相应的初始化工作并启动相应的服务。 9.读取rc.local文件 操作系统启动相应的服务后,会读取并执行/etc/rc.d/rc.local文件。您可以将启动时需要启动的任务添加到文件末尾。系统会逐行执行并启动相应的命令。如下所示: 10.执行/bin/login程序 执行/bin/login程序启动到系统登录界面,如下图所示。输入用户名和密码登录Linux操作系统。至此,操作系统完整的启动过程就完成了。 03 CentOS 7启动流程 CentOS 7和CentOS 6的启动过程类似,只不过涉及到init程序时,改为systemd。 CentOS 7 启动顺序: UEFi 或 BIOS 初始化,运行 POST 加电自检 选择启动设备 引导加载程序,centos7是grub2 加载加载器配置文件:/etc/grub.d/、/etc/default/grub、/boot/grub2/grub.cfg 加载内核选项 加载initramfs初始化伪文件系统 内核初始化,centos7使用systemd代替init 执行www.sychzs.cn的所有单元,包括挂载/etc/fstab 从initramfs根文件系统切换到磁盘根目录 systemd执行默认的target配置,配置文件/etc/systemd/system/www.sychzs.cn systemd 执行 www.sychzs.cn 来初始化系统,执行 www.sychzs.cn 来准备操作系统 systemd 在 www.sychzs.cn 下启动本地和服务器服务 systemd在www.sychzs.cn下执行/etc/rc.d/rc.local Systemd在www.sychzs.cn下执行www.sychzs.cn和登录服务 systemd 执行图形化所需的服务下图是我在网上看到的。总结的很详细,分享给大家。它仅用于学习。如有版权问题,请联系我们。谢谢 本文转载自微信公众号《开源Linux》,可通过以下二维码关注。转载本文请联系开源Linux公众号。

相关文章