Linux系统启动过程分为三部分
- BootLoader运行阶段
- Linux初始化阶段
*系统的正常运行阶段
第一个阶段:
BootLoader启动,初始化硬件,加载Linux内核,启动Linux内核,并传递Linux内核启动需要的参数,此后BootLoader交出系统的控制权,以后的步骤再和BootLoader无关;
第二个阶段:
Linux内核启动,完成初始化工作后,加载根文件系统,之后运行根文件系统的init作为第一个进程(运行于用户空间),并启动内核守护进程(kthreadd)作为第二个进程(运行于内核空间)。
第三个阶段:
系统进入正常运行状态,用户空间的各个进程由1号进程启动,内核空间的各个进程由2号进程启动。并可以由程序加载不同的文件系统以及运行不同的文件系统中的程序,当用户空间的程序进行系统调用(system call)的时候,将切换到内核空间执行。
在系统正常的情况下,已经进入到第3个阶段。在这个阶段中,Linux内核空间与用户空间交替在CPU执行代码。