第一阶段:
Boot loader(lilo或grub),内核启动前的一段引导程序,主要做三件事:
1.初始化芯片(最直接理解为CPU)
2.根据系统设置,初始化少量的外围设备(例如从U盘启动)
3.启动选择器(针对多操作系统),加载linux内核
第二阶段:
linux内核启动阶段
1.首先挂载initrd文件,形成我们linux的最小根文件系统(在内核的启动过程中,需要文件系统,而实际上的文件系统存在于硬盘上,linux解决这个问题的办法是,先挂载产生一个最小文件系统initrd,把它装入内存,然后以这个文件系统为依托,去读取完整的文件系统)
2.执行/sbin/init这个文件,产生1号进程(父进程是0号进程:内核)。
执行这一步非常重要,它生成1号进程后,大多数版本的linux内核都会利用1号进程直接或间接的产生其他进程。 而有些内核同时产生出2号进程,不同版本作用不一,我们这个内核2号进程作用是(在用户层面上)管理内存分页。
第三阶段:
1.execute /etc/init.d/* 执行/etc/init.d/目录下所有的程序
2.execute /sbin/getty 用来初始化标准输入输出标准错误,0,1,2
然后执行/bin/login,产生出登录界面
3.manger the orphen process管理孤儿进程(操作系统运行中一直都运行)