init.d
graph LR
A["Linux启动流程"]
A --> B1["第一阶段:硬件启动"]
A --> B2["第二阶段:启动引导"]
A --> B3["第三阶段:GRUB引导"]
A --> B4["第四阶段:内核引导"]
A --> B5["第五阶段:系统初始化"]
%% 第一阶段
B1 --> B1a["上电"]
B1a --> B1a1["CS=0xFFFF, IP=0x0000 → 执行0xFFFF0"]
B1 --> B1b["BIOS"]
B1b --> B1b1["POST:初始化组件"]
B1b1 --> B1b1a["CPU Init"]
B1b1 --> B1b1b["Chipset Init"]
B1b1 --> B1b1c["Board Init"]
B1b --> B1b2["驱动"]
B1b2 --> B1b2a["键鼠驱动"]
B1b2 --> B1b2b["自检驱动"]
B1b2 --> B1b2c["显示驱动"]
B1b --> B1b3["启动管理"]
B1b3 --> B1b3a["PXE"]
B1b3 --> B1b3b["硬盘"]
B1b3 --> B1b3c["CDROM"]
B1b3 --> B1b3d["USB"]
%% 第二阶段
B2 --> B2a["MBR"]
B2a --> B2a1["主引导记录 (446字节)"]
B2a --> B2a2["分区表 (64字节)"]
B2a --> B2a3["结束标志 0x55AA (2字节)"]
%% 第三阶段
B3 --> B3a["boot.img"]
B3a --> B3a1["加载core.img到0x7C00"]
B3 --> B3b["core.img"]
B3b --> B3b1["diskboot.img模块"]
B3b --> B3b2["kernel & module"]
%% 第四阶段
B4 --> B4a["/boot/vmlinuz(内核镜像)"]
B4 --> B4b["创建进程0:INIT_TASK"]
B4 --> B4c["trap_init() 中断初始化"]
B4 --> B4d["mm_init() 内存初始化"]
B4 --> B4e["sched_init() 调度器初始化"]
B4 --> B4f["vfs_caches_init() VFS缓存初始化"]
B4 --> B4g["start_kernel() 进入用户态"]
%% 第五阶段
B5 --> B5a["init功能"]
B5a --> B5a1["/sbin/init, /bin/init, /bin/sh, /etc/init"]
B5 --> B5b["init类型"]
B5b --> B5b1["CentOS5: sysv"]
B5b --> B5b2["CentOS6: upstart"]
B5b --> B5b3["CentOS7: systemd"]
B5 --> B5c["Runlevel(运行级别)"]
B5c --> B5c0["Level 0: 关机"]
B5c --> B5c1["Level 1: 单用户模式"]
B5c --> B5c2["Level 2: 多用户无NFS"]
B5c --> B5c3["Level 3: 完整多用户"]
B5c --> B5c4["Level 4: 保留"]
B5c --> B5c5["Level 5: 图形界面"]
B5c --> B5c6["Level 6: 重启"]
B5 --> B5d["/etc/fstab 启动挂载配置"]
B5 --> B5e["用户登录"]
B5e --> B5e1["ssh 登录"]
B5e --> B5e2["图形化登录"]
B5 --> B5f["虚拟终端 tty1~tty6"]