当我们按下开机键,启动 Linux 的时候,屏幕会闪现一串串的信息,一行行的快速划过,这些信息就是 Linux 内核所做的工作,当所有工作都确认成功,我们就能顺利的进入操作系统,开机启动的工作,大致可以分为下面这几个部分。
计算机的主板通电之后,它做的第一个工作就是访问 BIOS
,通过 BIOS 中的设置进入你的一个存储设备,通常是硬盘(也可以是 U盘,我们在安装操作系统的时候就是把系统放在 U盘,然后设置 BIOIS 从 U盘进入读取系统)进入存储设备后,第二步工作是读取 MBR
,MBR 存放在磁盘前512个字节,它会告诉主板这个磁盘的哪个分区是 引导分区
,可以启动系统内核,在主板找到引导程序,顺利的启动了 Linux 的内核,剩下的工作就都是 Linux 内核的工作。
init 进程是 Linux 操作系统的主进程,它的进程号为1,是 Linux 开启的第一个程序,init 进程执行了一系列的初始化脚本,具体如:设置时区
、文件系统
、挂载盘符
、网络配置
等等... 这些启动的服务,存放在 /etc/init/
目录。在不同的运行级别
配置中,init 进程执行是初始化工作是不同的,Linux 的运行级别配置通过 /etc/inittab
文件规划。
Linux 操作系统有 7 个运行级别,不同的 Runlevels
表示了不同的开机模式,有点像按 F8 可以进入 windows 的安全模式,只是 Linux 的这些默认比 windows 操作系统要稍微丰富。这 7 个级别的代号分别是从 0 ~ 6
。
在这些模式中,/etc/inittab
文件能配置的只有 2.3.5
,假如我们配置为 2
,那么以后的操作系统默认启动之后就是 命令行界面
而非 图形化界面
,我们大部分的服务器模式都是这个配置。
这样,其他级别就没有意义了吗?例如 0 或 6
?也不是的,更改操作系统的运行级别,也能通过 init
命令。
这个命令的作用是修改当前操作系统的运行级别,例如 init 3
那么就是切换到命令行界面,init 5
就是切换到图形化界面,而 init 0
就是关机 (当然后面我们还有更安全的关机操作)区别于 /etc/inittab 文件的永久配置,init 命令就是临时的更改系统的运行级别。
当这一系列的初始化工作执行完毕之后,系统就会弹出登陆框,这时也就完成了整个启动流程。