Linux启动进程

Linux启动进程是启动Linux时执行的一个复杂的初始化过程。它在很多方面类似于BSD系统和别的类Unix系统的启动过程。
启动一个Linux系统涉及到很多阶段和软件组件，包括硬件初始化、执行启动加载程序、加载和启动Linux内核镜像，和执行很多启动脚本和守护进程。对于不同的阶段和组件它们存在不同的变化和途径；比如GRUB、LILO、SYSLINUX或者Loadlin等能被用来当作启动加载器，同时启动脚本可以是传统的init风格，也可以是系统配置能被执行的现代替代方案比如systemd或Upstart。

内核阶段

Linux内核处理所有操作系统进程，如内存管理、任务调度、I/O、进程间通信和系统总体控制。这分为两个阶段：
首先，内核（作为压缩映像文件）被加载到内存中并进行解压缩，并且创建了一些基本的功能，如基本内存管理。 然后最后一次切换到主内核启动过程。
一旦内核完全运行，并且作为其启动的一部分，在加载和执行时，内核会查找一个运行的init进程，它单独设置用户空间以及用户环境所需的进程和最终会话。然后允许内核自身闲置，受其他进程调用。

initramfs

initramfs自Linux内核的2.5.46版本开始加入这个概念，其意图是尽可能地替换以前Linux核心在启动过程中执行的功能。 早期用户空间的典型用途是检测需要哪些设备驱动程序来加载主用户空间文件系统，并从临时文件系统加载它们。

Init进程

Init是Linux的根进程。进程号为1，它是所有进程的父进程。

SysV init

init是系统所有进程的父进程。它由内核创建，它将启动其他所有进程。