Linux系统启动流程
李汶昊
lwh@
目录
关于Linux若干个名词
Linux内核和 Linux系统
Ubuntu、Debian、RedHat 、 Fedora、 Centos
Android openwrt
Centos系列PC架构主机启动流程
加载BIOS
读取MBR
Bootloader
Kernel
initramfs
switchroot
/sbin/init(systemd)
Login/
Display Manager
为什么要使用initramfs?
主要是为了减小Linux内核的大小,通常内核中只包含最核心的功能和模块,很多功能并没有编译进内核,以模块的方式存在于文件系统,当需要使用该功能的时候动态加载内核模块,不需要时从内核中移除。
但是这样形成一个类似先有鸡还是先有蛋的问题?
模块放到文件系统中但是有些文件系统又是需要内核先加载文件系统模块才能读取使用
解决方法:启动程序grub把initramfs文件载入内存,然后内核解压该文件,加载其中的驱动模块,再驱动其他的文件系统
Init进程(/usr/lib/systemd/systemd)
加载各种设备驱动
挂载真实文件系统
Switch root
真实系统/sbin/init
Initramfs文件怎么来?
1. 安装完系统后,由dracut脚本自动生成
以Centos7为例/boot/initramfs--
:高性能网关上临时文件系统
先卸载已mount的硬盘文件系统
以ramfs格式重新挂载/sysroot
挂载真实文件系统
目录
SysV init:
优点:原理简单,易于理解,依靠shell脚本控制
缺点:服务顺序启动,过程较慢,不能根据需要来启动服务
work start 或者/etc/ start
Init以守护进程方式存在,是所有其他进程的祖先,通过它让计算机进入可操作模式
Linux系统启动流程 来自淘豆网m.daumloan.com转载请标明出处.