一个合格的Linux运维工程师就必须知道系统启动流程,不管是在面试中还是系统故障排错或多或少都会涉及到启动流程。
本文参考《鸟哥的Linux私房菜》第三版
在了解系统启动流程之前先了解几个概念:
Linux的组成部分:Kernel+rootfs(根文件系统)+程序
- Kernel的功能:进程管理、内存管理、网络管理、驱动管理、文件系统管理、安全功能等
- rootfs:根文件系统,包含各种库
- 程序:各种外围程序
Kernel的组成:
- 核心文件:内核文件,/boot/vmlinuz-VERSION-release;
- 模块文件:内核的特点是模块化的可动态装载和卸载的,因此有模块文件,/lib/modules/VERSION-release/;
- ramdisk:基于内存的磁盘;
Linux操作系统要想启动就必须先把内核放到内存当中解压缩执行,内核运行后就加载根文件系统rootfs,而根文件系统是放在硬盘上的,要想和硬盘通信就必须有硬盘驱动,而内核是没有硬盘驱动的,到这里不就无法进行了吗?此时ramdisk基于内存的磁盘就发挥作用了