Linux系統啓動流程
緩存
Linux內核的特性之一:使用緩衝和緩存來加速對磁盤上文件的訪問安全
系統初始化進程(內核級別):POST-->bootsequence(BIOS)-->bootloader(MBR)-->kernel(ramdisk)-->rootfs(readonly)-->/sbin/init
內核功能:進程管理,內存管理,網絡協議棧,文件系統,驅動程序,安全功能
組成部分:
核心文件:/boot/vmlinuz-VERSION-release
ramdisk:
CentOS 5:/boot/initrd-VERSION-release.img
CentOS 6,7:/boot/initramfs-VERSION-release.img
掛載真正的根文件系統後退出
內核啓動後加載一個臨時根文件系統(其中僅放一個特定的驅動,動態建立而來)
模塊文件(驅動):/lib/modules/VERSION-release
(/lib/modules/3.10.0-229.el7.x86_64/kernel/kernel[fs])
CentOS 系統的啓動流程
POST
(加電自檢)(代碼在主板上的只讀ROM:CMOS:BIOS:Basic Input and Output System上,用來檢測各個硬件是否存在)
ROM+RAM
-->Boot Sequence:
按次序查找各引導設備,第一個有引導程序的設備即爲本次啓動要用到的設備
bootloader:引導加載器,程序
Windows:ntloader
Linux:
LILO:Linux Loader
grub:grand uniform bootdoader
grub 0.x:grub legacy
grub 1.x:grub2
功能:提供一個菜單,容許用戶選擇要啓動的系統或不一樣的內核版本:把用戶選定的內核裝載到RAM中的特定空間中,解壓,展開,然後把系統控制權移交給內核;
--> MBR:master boot record
512bytes:
446bytes:bootloader
64bytes:fat 分區表
2bytes:55AA 表示MBR有效不然無效
-->grub:
bootloader:第一階段
partition:第1.5階段,文件系統驅動(做用?)
partition:/boot/grub 第二階段
-->Kernel:
自身初始化:
探測可識別到的全部設備
加載硬件驅動程序(有可能會藉助於ramdisk加載驅動)
只讀方式掛載根文件系統
運行用戶控件的第一個應用程序:/sbin/init
網絡
-->init程序類型:
CentOS 5:SysV init
配置文件:/etc/inittable
CentOS 6:Upstart
配置文件:/etc/inittable
/etc/init*.conf
CentOS 7:Systemd
配置文件:/usr/lib/systemd/ /etc/systemd/system/ide