Linux系统的启动流程
理解Linux操作系统启动流程,能有助于后期在企业中更好的维护Linux服务器,能快速定位系统问题,进而解决问题。
上图为Linux操作系统启动流程
1.加载BIOS
计算机电源加电质检,首先加载基本输入输出系统(Basic Input Output System,BIOS),BIOS中包含硬件CPU、
内存、硬盘等相关信息,包含设备启动顺序信息、硬盘信息、内存信息、时钟信息、即插即用(Plug-and-Play,PNP)
特性等。加载完BIOS信息,计算机将根据顺序进行启动。
2.读取MBR
读取完BIOS信息,计算机将会查找BIOS所指定的硬盘MBR引导扇区,将其内容复制到0x7c00地址所在的物理内存中。
被复制到物理内存的内容是Boot Loader,然后进行引导。
3.GRUB引导
GRUB启动引导器是计算机启动过程中运行的第一个软件程序,当计算机读取内存中的GRUB配置信息后,会根据其配置
信息来启动硬盘中不同的操作系统。
4.加载Kernel
计算机读取内存映像,并进行解压缩操作,屏幕一般会输出“Uncompressing Linux”的提示,当解压缩内核完成后,屏幕
输出“OK, booting the kernel”。系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的
初始化函数并初始化各种设备,完成Linux核心环境的建立。
5.设定Inittab运行等级
内核加载完毕,会启动Linux操作系统第一个守护进程init,然后通过该进程读取/etc/inittab文件,/etc/inittab文件
的作用是设定Linux的运行等级,
Linux常见运行级别如下:
•0:关机模式
•1:单用户模式
•2:无网络支持的多用户模式
•3:字符界面多用户模式
•4:保留,未使用模式
•5:图像界面多用户模式
•6:重新引导系统,重启模式
6.加载rc.sysinit
读取完运行级别,Linux系统执行的第一个用户层文件/etc/rc.d/rc.sysinit,该文件功能包括:设定PATH运行变量、设定
网络配置、启动swap分区、设定/proc、系统函数、配置Selinux等。
7.加载内核模块
读取/etc/modules.conf文件及/etc/modules.d目录下的文件来加载系统内核模块。该模块文件,可以后期添加或者修改及删除。
8.启动运行级别程序
根据之前读取的运行级别,操作系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。其中
以S开头表示系统即将启动的程序,如果以K开头,则代表停止该服务。S和K后紧跟的数字为启动顺序编号。
上图为运行级别服务
9.读取rc.local文件
操作系统启动完相应服务之后,会读取执行/etc/rc.d/rc.local文件,可以将需要开机启动的任务加入到该文件末尾,系统
会逐行去执行并启动相应命令。
开机运行加载文件
10.执行/bin/login程序
执行/bin/login程序,启动到系统登录界面,操作系统等待用户输入用户名和密码,即可登录到Shell终端,输入用户名、
密码即可登录Linux操作系统,至此Linux操作系统完整流程启动完毕。
系统登陆界面
拓展阅读@
扫一扫下面的二维码,关注我们,获取更多精彩活动资讯,有好礼相送哦~
【腾讯云】618云上GO!云服务器限时秒杀,1核2G首年95元!
免责声明:本文所有内容均为网上征集,仅供学习交流,整理文章用于传播相关技术,如有侵权行为,请联系删除
[En]
Disclaimer: all the contents of this article are collected on the Internet, only for learning and communication, organize the article for the dissemination of related technology, if there is any infringement, please contact to delete
Original: https://www.cnblogs.com/liangjing-pseudonym/p/Learning-Linux.html
Author: 敏宝宝
Title: 2021年3月-第01阶段-Linux基础-Linux系统的启动流程
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524445/
转载文章受原作者版权保护。转载请注明原作者出处!