文章摘要: 摘要内容。
加载内核
- 操作系统接管硬件之后,首先读取
/boot目录下的内核文件。
启动初始化进程
- 内核文件加载之后,就开始运行第一个程序
/sbin/init,用于初始化系统环境。 - 由于
init是第一个运行的程序,因此init的进程编号(PID)就是1,其他所有进程都是init的衍生,都是init的子进程。
确定运行级别
init进程的任务是去运行这些开机启动的程序,但是需要根据不同场合启动不同的程序。- 启动时根据“运行级别”,来确定要运行哪些程序。
init进程首先读取/etc/inittab文件,该文件是运行级别的配置文件。
加载开机启动程序
- 7种预设的“运行级别”各自有一个目录,存放需要开机启动的程序,其
/etc/rcN.d目录中列出的程序都设为链接文件,指向/etc.init.d目录,真正的启动脚本都统一放在这个目录中。 init进程将逐一加载开机启动程序,即运行目录中的启动脚本。- 好处是若要手动关闭或重启某个进程,则直接到
/etc/init.d/目录下寻找启动脚本即可
用户登入
- 开机启动程序加载完毕之后,等待用户登录。
进入login shell
- 所谓shell,就是命令行界面,用户可以直接于操作系统对话。
- 用户登入是打开的shell,就被称为“login shell”。
打开non-login shell
- 即用户进入操作系统之后,手动开启的另一个shell,该shell不会再次读取配置文件。