当前位置: 首页 > 科技观察

Linux操作系统启动流程

时间:2023-03-12 07:58:31 科技观察

前言在上一章中,我们学习了操作系统启动相关的几个概念。今天,我们将讨论操作系统的启动过程。注:本文为之前学习Linux时的学习笔记,部分内容参考书籍《曝光:Linux企业运维实战》。感谢吴广科老师和景峰教育的优质教学。Linux操作系统启动流程本文以CentOS系列为例,详细讲解Linux操作系统启动流程。02CentOS6启动流程1.加载BIOS电脑开机后,首先会进行BIOSPOST,根据BIOS中设置的启动设备(一般为硬盘)启动。2、读取MBR加载BIOS信息后,计算机会搜索BIOS指定的硬盘,读取该磁盘的MBR存储记录信息,并启动系统。3.GRUBboot选择内核在单用户模式下启动/重置密码4.加载内核电脑读取内存映像,当屏幕输出“OK,bootingthekernel”时。系统将内核放在内存中,调用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操作变化,设置网络配置,启动swap分区,设置/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操作系统系统。至此,操作系统的完整启动过程就完成了。03CentOS7的启动过程CentOS7和CentOS6的启动过程类似,只是说到init程序,改成了systemd。CentOS7启动顺序:UEFi或BIOS初始化,运行POST选择启动设备bootloader,centos7是grub2loader的配置文件:/etc/grub.d/,/etc/default/grub,/boot/grub2/grub.cfg加载内核选项加载initramfs初始化伪文件系统内核初始化,centos7使用systemd代替init执行initrd.target的所有单元,包括挂载/etc/fstab从initramfs根文件系统切换到磁盘根目录systemd执行默认target配置,配置文件/etc/systemd/system/default.targetsystemd执行sysinit.target初始化系统和basic.target准备操作系统systemd在multi-user.target下启动local和server服务systemd执行multi-user.target/etc/rc.d/rc.localsystemd在multi-user.target下执行getty.target,登录服务systemd执行图形化需要的服务。下图是我在网上看到的。总结的很详细,分享给大家。仅供学习,如有版权问题,请联系我们。感谢您转发微信公众号“开源Linux”这篇文章,您可以通过以下二维码关注。转载本文请联系OpenSourceLinux公众号。