Linux系统启动流程

1、读取的BIOS
BIOS(Basic Input/Output System),基本输入输出系统,该系统存储于主板的ROM芯片上,计算机在开机时,会最先读取该系统。
2、POST
POST(Power-On-Self-Test)是BIOS功能的一个主要部分,当读取完BIOS之后会有一个短暂的POST过程,POST负责完成对 CPU 、主板、内存、软硬盘子系统、显示子系统(包括显示缓存)、串并行接口、键盘、CD-ROM光驱等的检测,如果一切正常才会继续下一个阶段。
3、加载BIOS
若第二阶段没有任何异常,就会加载BIOS程序到内存当中。BIOS中包含了CPU的相关 信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了
4、读取MBR
硬盘上第0磁道第一个扇区(即0磁道0扇区)被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,里面存放了预启动信息、分区表信息以及MBR有效性检查信息。
MBR具体信息如下:
(1) Boot Loader 占用446字节,存储有操作系统(OS)相关信息,如操作系统名
称,操作系统内核位置等,它的主要功能是加载内核到内存中运行。BootLoader
引导加载程序一般是GRUB
(2) Partition Table 分区表信息,占用64字节
(3)最后2bytes用于MBR的有效性检查
5、GRUB启动
GRUB(Grand Unified Bootloader),多系统启动程序。Boot Loader被加载到内存后,此时的控制权就交给了GRUB。
grub启动过程可以分为三步:
第1阶段:GRUB只有446字节,无法实现太多功能,所以利用该阶段的文件去加载1.5阶段的文件(/boot/grub/下的文件)
第1.5阶段:用来加载识别文件系统的文件,识别完系统后才可以找到/boot目录。
第2阶段 :GRUB程序会根据/boot/grub/grub.conf文件查找Kernel的信息,然后开始加载Kernel程序,当Kernel程序被检测并在加载到内存中,GRUB就将控制权交接给了Kernel程序(事实上这个过程还将initrd文件拷贝到内存中了)
6、初始化initrd、加载内核
其实initrd文件其实是一个虚拟的根文件系统,里面有bin、lib、lib64、sys、var、etc、sysroot、 dev、proc、tmp等根目录,它的功能就是将内核与真正的根建立联系,内核通过它加载根文件系统的驱动程序,然后以读写方式挂载根文件系统,至此, 内核加载完成。内核加载完成后便执行/sbin/init文件,拉起用户空间的第一个进程(pid为1的进程),之后就将控制权交接给了init程序

7、运行Init进程,进行OS初始化
init首先运行/etc/init/rcS.conf脚本,通过执行/etc/rc.d/rcS.conf首先调用了/etc/rc.d/rc.sysinit,对系统做初始化设置。
/etc/rc.d/rc.sysinit具体初始化设置如下:
1、获得网络环境
2、挂载设备
3、开机启动画面Plymouth(取替了过往的 RHGB)
4、判断是否启用SELinux
5、显示于开机过程中的欢迎画面
6、初始化硬件
7、用户自定义模块的加载
8、配置内核的参数
9、设置主机名
10、同步存储器
11、设备映射器及相关的初始化
12、初始化软件磁盘阵列(RAID)
13、初始化 LVM 的文件系统功能
14、检验磁盘文件系统(fsck)
15、设置磁盘配额(quota)
16、重新以可读写模式挂载系统磁盘
17、更新quota(非必要)
18、启动系统虚拟随机数生成器
19、配置机器(非必要)
20、清除开机过程当中的临时文件
21、创建ICE目录
22、启动交换分区(swap)
23、将开机信息写入/var/log/dmesg文件中
init执行完/etc/rc.d/rc.sysinit后,将会执行/etc/inittab来设定系统运行的默认级别。
关于运行级别
不同的级别会启动的服务不一样,init会根据定义的级别去执行相应目录下的脚本,Linux的启动级别分为以下几种
  0:关机模式
  1:单一用户模式(直接以管理员身份进入)
  2:多用户模式(无网络)
  3:多用户模式(命令行)
  4:保留
  5:多用户模式(图形界面)
  6:重启


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值