Linux 启动流程

Linux 系统主要启动步骤:

    0. 加载BIOS(Basic Input Output System, 基本输入输出系统), 并获取第一个启动设备的代号

    1. 读取第一个启动设备的MBR 信息,启动 Boot Manager
        Linux 通常使用功能强大,配置灵活的 Grub或Lilo 作为 Boot Manager。

    2. 加载系统内核, 并尝试驱动所有硬件设备

    3. 核心启动init 进程
        init 进程是 Linux 的根进程,所有的系统进程都是它的子进程。

    4. init 进程读取 /etc/inittab 文件中的信息,并进入预设的运行级别,
        按顺序运行该运行级别对应文件夹下的脚本。脚本通常以start 参数启动,并指向一个系统中的程序。
        通常情况下, /etc/rcS.d/ 目录下的启动脚本首先被执行,然后是/etc/rcN.d/ 目录。例如您设定的运行级别为3,那么它对应的启动0目录为 /etc/rc3.d/ 。

    5. 根据 /etc/rcS.d/ 文件夹中对应的脚本启动 Xwindow 服务器 xorg
            Xwindow 为 Linux 下的图形用户界面系统。

    6. 启动登录管理器,等待用户登录
            Ubuntu 系统默认使用 GDM 作为登录管理器,您在登录管理器界面中
            输入用户名和密码后,便可以登录系统。

ps:      ubuntu系统目前已经没有/etc/inittab配置文件,而是采用upstart来启动或者停止服务,引入了事件的概念。
            init程序读取的文件是/etc/event.d

            在每一个/etc/rcX.d[X from 0 to 6]中,S开头的服务表示开机时执行,K开头的服务表示关机时停止
            所有服务启动或停止的脚本都放在/etc/init.d
           "the scripts in /etc/rcX.d are executed each time the system enters the runlevel X, and the scripts are all symbolic links where targets are locates in /etc/init.d/

            可以在/etc/rc.local中新增你想开机就启动的动作。