目录

Linux-引导过程概述

Linux 引导过程概述

引导过程

一.引导过程

引导过程总览

1.开机自检

服务器主机开机以后,将根据主板Bios(Basic Input/Output System,基本输入输出系统)中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多数时候会移交给本机硬盘。

2.MBR引导

当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(Master Boot Record,主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区,或者直接根据 MBR 记录中的引导信息调用启动菜单。

3.GRUB菜单

对于Linux系统来说,GRUB算是使用最为广泛的多系统引导器程序了。系统控制权传递给GRUB以后,将会显示启动菜单提供给用户选择,并根据所选项(或采用默认值)加载Linux 内核文件,然后将系统控制权转交给内核。

4.加载Linux 内核

Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。

5.INIT 进程初始化

为了完成进一步的系统引导过程,Linux内核首先将系统中"/sbin/init" 程序加载到内存中运行(运行过程称之为进程),init 进程负责完成一系列的系统初始化过程,最后等待用户登录。

二. INIT 进程

1.INIT进程

Linux系统中的进程 (运行中的程序) 使用数字进行标记,每个进程的身份标记号为 PID。在引导 Linux 系统的过程中, “/sbin/init” 是内核第一个加载的程序,因此init 进程的对应 PID 号总是为“1”.

init进程运行以后将陆续执行系统中的其他程序,不断生成新的进程,这些进程称为 init 进程的子进程,反过来说 init 进程是这些进程的父进程。

init进程是整个 Linux 系统运行的所有进程的“始祖” 因此init进程是不被允许轻易终止的。需要切换不同的系统运行状态时,可以向 init 进程发送正确执行参数,由 init 自身来完成相关操作。

2.inittab 配置文件

Upstart 将各种初始化配置分散存放,并各自响应相关的启动事件。

一面列出一部分与Upstart 启动相关的配置文件。

  • /etc/inittab:配置默认运行级别
  • /etc/sysconfig/init:控制 tty 终端的开启数量、终端颜色方案
  • /etc/init/rcS.conf:加载rc.sysinit 脚本,完成系统初始化任务。
  • /etc/init/rc.conf:兼容脚本,负责各运行级别的调用处理。
  • /etc/init/rcS-sulogin.conf:为单用户模式启动/sbin/sushell 环境。
  • /etc/init/control-alt-delete.conf:控制终端下的ctrl+alt+del 热键操作。
  • /etc/init/start-ttys.conf:配置tty 终端的开启数量、设备文件。
  • /etc/init/tty.conf:控制tty 终端的开启

init 程序的配置目录位于 /etc/init/,原有的/etc/inittab 文件中仅保留默认运行级别的配置

inittab文件中的字段

1.id——标记字段

标记字段可以由 1~4 个字符组成,用以区别于其他行的配置。

2.runlevels——运行级别字段

在 RHEL 6 系统中,默认包括七种不同的服务搭配方式,其中每一种搭配方式称为 “运行级别”,这些级别分别使用数字0~6来表示,各运行级别的含义及用途如下。

  • 0:关机状态,使用该级别时将会关闭主机。
  • 1:单用户模式,不需要密码验证即可登录系统,多用于系统运维。
  • 2:字符界面的多用户模式,不支持网络访问。
  • 3:字符界面的完整多用户模式,大多数服务器主机运行在此级别。
  • 4:未分配使用。
  • 5:图形界面的多用户模式,提供了图形界面操作环境。
  • 6:重新启动,使用该级别时将会重启主机。
3.action——动作类型字段

动作类型字段描述了该行配置所对应的操作类别,initdefault 表示“设置初始化系统后默认进入的运行级别”。

4.process——程序或脚本字段

此字段用于指定该行配置所对应的实际操作,可以是具体的命令、脚本程序等,此处为空。