linux系统开机流程
基本步骤:上电->bios->MBR引导->GRUB菜单->加载内核->运行init进程初始化->启动/etc/rc.d*脚本与相关配置文件->执行rc.local里面的用户自定义引导启动程序->开启终端
详细步骤
1、上电:上电自检测,检测CPU;内存;主板;硬盘等等
2、bios:(Basic Input Output System)记录了芯片相关设置,CPU与接口设备通信频率等等
3、MBR引导:存在于可启动磁盘的0磁道0分区,占用512字节,作用在于告诉计算机所选定的可启动设备的那个分区加载引导程序
一:Boot loader:占用446字节,存储操作系统等信息,如名称;系统内核位置。作用是将内核->内存中运行
二:Partion Table:分区表,占用64字节 ,每个分区占16个字节,所以只有4个分区
三:分区有效性占用2字节
4、GRUB菜单:分为GRUB和LILO两种,主流的是GRUB,因为兼容windows和linux。
注意:MBR将引导程序加载到GRUB,GRUB加载到内存,但此时文件系统没有挂载,所以说现在加载到的位置是指定的位置。而不是按照文件系统去找的位置
5、加载内核:探测硬件->加载驱动->挂载根文件系统->切换根文件系统->运行sbin/init(这里有一个经典的,文件系统没有所以挂载不了,所以采用initrd,是虚拟盘,利用讴歌虚拟盘来加载模块)
6、执行init进程进行初始化:主要是初始化环境
7、启动/etc/rc.d*脚本与相关配置文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)