linux启动流程
先通过一张图来简单了解下整个系统启动的流程,整个过程基本可以分为POST-->BIOS-->MBR(GRUB)-->Kernel-->Init-->Runlevel。下面会详细说明每个过程的作用。
post加电自检-》mbr引导--》grub加载内核-》kernel装在内核
linux :kernel+rootfs
kernel:进程管理,内存管理,网络管理,驱动程序,文件系统,安全功能
rootfs:程序和glibc
库:函数集合,function,调用接口(头文件负责描述)
程序:二进制执行文件
内核设计流派:
单内核:linux
把所有功能集成于同一个程序
微内核
每种功能使用
linux内核文件
组成部分
核心部分:/boot/vmlinuz-2.6.32-696.el6.x86_64
核心文件:/boot/vmlinuz-VERSION-release
ramdisk:辅助的伪根系统 :放的是必要的驱动模块
CentOS 5: /boot/initrd-VERSION-release.img
CentOS 6,7: /boot/initramfs-VERSION-release.img
模块文件:/lib/modules/VERSION-release
1.加载BIOS的硬件信息,获取第一个启动设备 2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息 3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱 动所有的硬件设备 4.核心执行init程序,并获取默认的运行信息 5.init程序执行/etc/rc.d/rc.sysinit文件 6.启动核心的外挂模块 7.init执行运行的各个批处理文件(scripts) 8.init执行/etc/rc.d/rc.local 9.执行/bin/login程序,等待用户登录 10.登录之后开始以Shell控制主机
POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部 分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接 口、键盘、CD-ROM光驱等硬件情况的检测。 ROM:BIOS,Basic Input and Output System,保存着有关计 算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和 系统启动自举程序等。 RAM:CMOS互补金属氧化物半导体,保存各项参数的设定 按次序查找引导设备,第一个有引导程序的设备为本次启动设备 bootloader: 引导加载器,引导程序 windows: ntloader,仅是启动OS Linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内 核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把 系统控制权移交给内核 LILO:LInux LOader GRUB: GRand Unified Bootloader GRUB 0.X: GRUB Legacy, GRUB
MBR: 446: bootloader,
64: 分区表,
2: 55AA
GRUB: primary boot loader : 1st stage,1.5 stage secondary boot loader :2nd stage,分区文件 kernel: 自身初始化:
探测可识别到的所有硬件设备
加载硬件驱动程序(借助于ramdisk加载驱动)
以只读方式挂载根文件系统
运行用户空间的第一个应用程序:/sbin/init