Linux的启动流程

 

首先介绍一下Linux的启动流程,分为四部:1.BIOS启动;2.BOOTLOADER启动;3.KERNEL启动;4.INIT启动

BIOS启动主要工作如下:
1.加电自检硬件
2.选择启动设备(硬盘,光驱,软驱,U盘等)
3.读取启动设备的信息,如硬盘的MBR信息

BOOTLOADER主要工作如下:
GRUB是BOOTLOADER的核心,他写在硬盘的两个地方:MBR和硬盘分区中

Stage1
POST交权给了MBR,MBR执行代码,判断是否是grub,如果是且配置了stage1.5,则加载stage1.5,否则就转去加载启动扇区

Stage1.5
这个阶段主要是识别文件系统和加载Stage2,  /boot这个分区可能是不同的格式

Stage2
stage2通过上一步找到了驱动文件系统,并读取grub.conf
它负责显示启动菜单和提供用户交互接口,并根据用户选择或默认配置加载操作系统内核。

KERNEL(内核)主要工作如下:
1.查找硬件
2.加在必要的硬件驱动
3.用只读的形式挂载根分区
4.启动init进程(系统的第一个进程,所有进程的父进程)

INIT进程主要工作如下:
ININ这个进程是读取/etc/inittab这个文件来进行工作,流程如下(以图形界面启动为例)
1.id:5:initdefault (运行级别,3为字符界面,5为图形界面)
2./etc/rc.d/rc.sysinit(启动热拔插设备;设定KERNEL参数;设定系统时间;载入键盘;启动SWAP;读写挂载根分区;启动RAID,LVM和磁盘配额;挂载其他文件系统;清除开机的临时文件)
3./etc/rc.d/rc5.d ,rc.local(启动运行直接5相应的服务和程序,启动开机脚本)
4./sbin/mingetty(启动虚拟终端TTY0-6为字符,TTY7为图形)
5./etc/X11/prefdm(启动图形界面)

你可能感兴趣的:(Linux的启动流程)