ubuntu linux开机启动自动加载ko驱动程序_linux 系统的开机启动过程

c9b64bba35e0fb0d0f28fce8da481d86.png

POST –> 开机加电BIOS自检 –> MBR引导–>GRUB引导菜单–> 加载内核 –> rootfs –> switchroot –> 启动/sbin/init进程–>读取(/etc/inittab, /etc/init/*.conf) 文件 –> 设定默认运行级别 –> 系统初始化脚本 –> 关闭或启动对应级别下的服务 –> 登录系统

第一步:POST (加电自检)

加电后,首先会对硬件进行自检,主板会自动读取ROM中的程序,然后加载。检查各硬件是否正常存在,正常运行。如果硬件有故障分为两种:第一,非严重的故障做出画面提示或者报警声音,让用户手动去处理;第二,严重故障则会出现停机或者频繁机器重启。如果没有故障,POST完成自己的任

第二步:BIOS(系统引导过程Boot Sequence)

BIOS 程序是嵌在主板的 ROM 芯片上的。

接过POST 后,BIOS启动初始化硬件的工作,包括键盘、屏幕、内存检测,通然后过ROM加载自检程序,然后按照 CMOS RAM 中设置的启动设备查找顺序,来寻找可启动设备 。

第三步:MBR引导

在硬盘上第0磁道第一个扇区被称为MBR,即主引导记录,决定启动介质按照BIOS所设定的系统启动流程,根据引导次序(Boot Sequence)自上而下的寻找对应存储设备上操作系统的MBR。

第四步:GRUB引导菜单

根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。

第五步:加载内核 Kernel

内核一般都是压缩的,所以它的首要要进 行解压缩,然后检查和分析系统的硬件并初始化内核里的硬件驱动程序。内核刚加载到内存的时候,文件系统还不能使用,它使用的是 Boot Loader 加载进内存的 initramfs。系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立,基于Linux的程序应该可以正常运行了。

第六步: rootfs –> switchroot

内核加载完成,则加载根文件系统

第七步:启动/sbin/init进程

在加载完核心后,进行完硬件侦测与驱动程序加载后,内核会启动第一个进程/sbin/init, init进程将会读取/etc/inittab,init进程是系统所有进程的起点,只有启动这个进程 ,后面需要的进程才会启动

/etc/inittab最的主要任务就是准备软件所需的运行环境,包括系统的主机名称、网络配置、语系处理、文件系统格式及其他服务的启动等等,而所有的配置运行都会在/etc/inittab中的配置.

/etc/inittab来设定系统启动的运行的默认级别

第八步:读取(/etc/inittab, /etc/init/*.conf) ,进行系统初始化,设定默认运行级别

/sbin/init 最主要的功能就是准备软件运行的环境,包括系统的主机名称、网络配置、语系处理、文件系统格式及其他服务的启动等,而所有的动作都根据在/etc/inittab中的配置而进行的.init首先运行/etc/init/rcs.conf的脚本

第九步:系统初始化脚本

设定完系统默认运行级别后,接下来就是调用/etc/rc.d/rc的脚本

第十步: 关闭或启动对应级别下的服务

用户自定义开机启动程序 (/etc/rc.d/rc.local),这里设定用户需要在开机自动后启动哪些程序。

第十一步: 登录系统

系统初始化完毕,init会给出用户登录提示符或者图形化登录的界面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值