Linux 开机启动流程

启动 Linux

当我们按下开机键,启动 Linux 的时候,屏幕会闪现一串串的信息,一行行的快速划过,这些信息就是 Linux 内核所做的工作,当所有工作都确认成功,我们就能顺利的进入操作系统,开机启动的工作,大致可以分为下面这几个部分。


内核引导

计算机的主板通电之后,它做的第一个工作就是访问 BIOS,通过 BIOS 中的设置进入你的一个存储设备,通常是硬盘(也可以是 U盘,我们在安装操作系统的时候就是把系统放在 U盘,然后设置 BIOIS 从 U盘进入读取系统)进入存储设备后,第二步工作是读取 MBR,MBR 存放在磁盘前512个字节,它会告诉主板这个磁盘的哪个分区是 引导分区,可以启动系统内核,在主板找到引导程序,顺利的启动了 Linux 的内核,剩下的工作就都是 Linux 内核的工作。


init 进程

init 进程是 Linux 操作系统的主进程,它的进程号为1,是 Linux 开启的第一个程序,init 进程执行了一系列的初始化脚本,具体如:设置时区文件系统挂载盘符网络配置 等等... 这些启动的服务,存放在 /etc/init/ 目录。在不同的运行级别配置中,init 进程执行是初始化工作是不同的,Linux 的运行级别配置通过 /etc/inittab 文件规划。


运行级别

Linux 操作系统有 7 个运行级别,不同的 Runlevels 表示了不同的开机模式,有点像按 F8 可以进入 windows 的安全模式,只是 Linux 的这些默认比 windows 操作系统要稍微丰富。这 7 个级别的代号分别是从 0 ~ 6

  • 0. 表示关机
  • 1. 单用户模式
  • 2. 禁止网络的命令行模式
  • 3. 命令行模式
  • 4. 未定义、系统保留
  • 5. 图形界面
  • 6. 重启

在这些模式中,/etc/inittab 文件能配置的只有 2.3.5,假如我们配置为 2,那么以后的操作系统默认启动之后就是 命令行界面而非 图形化界面,我们大部分的服务器模式都是这个配置。

这样,其他级别就没有意义了吗?例如 0 或 6?也不是的,更改操作系统的运行级别,也能通过 init 命令。


init 命令

这个命令的作用是修改当前操作系统的运行级别,例如 init 3 那么就是切换到命令行界面,init 5 就是切换到图形化界面,而 init 0 就是关机 (当然后面我们还有更安全的关机操作)区别于 /etc/inittab 文件的永久配置,init 命令就是临时的更改系统的运行级别。


登陆界面

当这一系列的初始化工作执行完毕之后,系统就会弹出登陆框,这时也就完成了整个启动流程。

更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程