Linux 操作系统的启动过程
- 为什么需要知道开机启动流程,掌握的意义?
- 掌握让某个软件开机自动运行
- 开机不能正常启动,是什么原因,或者那个环节出现了问题
- 防止黑客植入木马,去查询黑客会把木马放到哪些地方
1-开机自检
- 通电后,加载主板上的BIOS程序,开始硬件自检
- 硬件自检,检测设备的状态、设置设备的工作模式
- 检测并初始化 CPU
- 检测并初始化内存
- 检测并初始化硬盘
- 检测并初始化输入设备:键盘鼠标
- 硬件自检,检测设备的状态、设置设备的工作模式
BIOS
是电脑启动时加载的第一个软件,它是一组固化到计算机内主板上一个ROM芯片上的程序,它可从CMOS中读写系统信息,包含了 CPU 的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP 特性等等,
2-Boot启动
- boot启动
- 第1引导顺序:hard drive (硬盘)
- 第2引导顺序:cdrom (光驱 )
- 第3引导顺序:removable device 可移动设备(u盘,移动硬盘)
- 第4引导顺序:Network从网络启动(网络中安装服务器启动)
3-系统引导
- MBR载入到内存并开始执行
- 系统找到 BIOS 所指定的硬盘的 MBR 后,就会将其复制到 0x7c00 地址所在的物理内存中
MBR(Master Boot Record,主引导记录)
在硬盘的第一个扇区,所以也把该扇区做主引导扇区,它在硬盘上的位置是(0柱面,0磁头,1扇区)独占一个扇区的空间
MBR 包含了一个小型的引导加载程序,主要作用是检查预启动信息、分区表信
息,并且将控制权交给硬盘主分区(活动分区)上的引导程序(Boot Loader,如 GRUB、LILO、spfdisk)
- 启动GRUB引导程序,选择内核
GRUB是许多 Linux 发行版默认的引导加载程序,并广泛用于管理和启动操作系统
2-内核启动
根据grub 设定的内核映像路径,系统读取内核映像,进行解压缩操作,加载并启动内核
- 从磁盘读取内核映像:磁盘上的文件系统中存有内核映像,包含了操作系统的所有代码和数据
- 解压内核映像:内核映像通常以压缩的形式提供,需要解压后才能被内核读取。
- 跳转到内核入口点:内核入口点是一个特殊的函数,它是内核运行的起始点。当内核启动时,它会跳转到这个入口点开始执行。
3-系统初始化
内核启动后,接下来会进行系统初始化
- 创建进程0(即 init 进程):init 进程是系统的主进程,它的任务是启动其他所有的进程。
- 初始化各种系统设备和服务:这包括网络接口、文件系统、设备驱动等
4-文件系统挂载
系统初始化完成后,接下来的工作就是挂载文件系统。文件系统挂载是将文件系统与计算机的文件系统中的某个目录关联起来,使用户可以访问到文件系统中的内容
- 确定文件系统的类型,如ext4、xfs,需要根据文件系统的类型来确定如何挂载
- 确定挂载点的设备和挂载选项,找到挂载目录对应的设备号和挂载选项
- 挂载文件系统
5-登录提示符
- 文件系统挂载完成后,计算机会显示一个登陆提示符,提示用户可以登录操作系统了。此时,用户可以输入用户名和密码来登录操作系统。