inux开机启动的过程

linux开机启动的过程可以大致分为两个部分

1.引导过程2.启动过程

引导过程开始于上电开始结束于内核初始化完成以及systemd进程启动完成

启动过程则是接管剩余的工作,直至操作系统启动完成进入可操作状态

Linux操作系统引导过程
1.开机自检
服务器主机开机以后,将根据主板BIOS中的设置对CPU (Central Processing Unit,中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。
2.MBR引导
当从本机硬盘中启动系统时,首先根据硬盘第- - 个扇区中MBR (Master Boot Record,主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录中的引导信息调用启动菜单(如GRUB)。
3.GRUB菜单
对于Linux 操作系统来说,GRUB (GRand Unified Bootloader,统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。需要注意的是,CentOS 7采用的是GRUB2启动引导器。
4.加载Linux内核
Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。

  1. init 进程初始化

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

对于PC机,有以下几种设备可以作为启动设备来使用:
  1) 硬盘  这是最常用的启动设备,硬盘有IDE接口和SCSI接口的两种,由于IDE硬盘价格比SCSI硬盘要便宜的多,所以,大多数PC机都使用的是IDE硬盘。一台PC机中可能有多个硬盘,用户可以在PC机的CMOS设置哪块硬盘首先启动。
2) 软盘  软盘是PC机必备的设备之一。常用作安装系统或作为系统应急盘使用。也出现了很多一张软盘上的Linux系统。
3) 光盘驱动器  光盘驱动器也是PC机必备的设备之一,包括CDROM、DVDROM、以及各种刻录机等。现在多数用户都是通过光驱来安装Linux的。
  4) USB盘  随USB盘的出现,许多主板也都开始支持从USB设备上来启动系统了。USB盘的容量远大于软盘,目前有取代软盘的趋势。
  5) 网卡的Boot ROM  有一些网卡带有Boot ROM芯片,可将引导信息写入Boot ROM,许多主板都支持Boot ROM启动。常用于无盘工作盘环境中。
  无论系统选择了哪一种启动设备,它都将会去将该设备起始地址的内容读入内存,如果你的启动设备是IDE硬盘,系统就会去去读取硬盘的第一个扇区(这个扇区通常被称做主引导扇区,又称MBR),并将这个扇区的内容读入内存,然后运行它。到这一步的时候是引导Linux操作系统的关键了,这一步将尝试去启动Linux的引导程序,如果找不到引导程序,将无法引导Linux。许多人在无法启动Linux的时候,其实大多都是引导程序损坏或是配置不当所造成的。
  那么什么是引导程序呢?其实你每天打开电脑,所接触到的第一个程序就是引导程序。它的责任是载入操作系统内核软件并把控制权转交给它。对于Linux来说引导程序就是负责在启动计算机时装入Linux的Kernel,并将计算机的控制权交给Kernel,然后Kernel再进一步初始化剩余的操作系统,直到Linux显示用户登录画面。由此可见引导程序对于一个操作系统来是非常重要的。

1.2 系统初始化进程

linux引导和控制服务

■ init进程

由Linux内核加载运行/sbin/init程序
init进程是系统中第一个进程
init进程的PID(进程标记)号永远为1

■ init进程

Systemd是Linux操作系统的一种init软件
CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
CentOS7中运行的第一个init进程是/lib/systemd/systemd
systemd 单元类型
linux引导和控制服务
运行级别所对应的systemd的目标linux引导和控制服务

服务指在操作系统中,用以支持各种功能的程序
系统初始化进程systemd 可以对服务进行相应的控制
进程控制命令
ssh -------->sshd
client -----> server
systemctl — 服务控制命令
systemctl status sshd — 查看服务状态

systemctl start sshd — 开启服务
systemctl stop sshd — 关闭服务
systemctl restart sshd — 重启服务
systemctl reload sshd — 重新加载服务配置
systemctl enable sshd — 设定服务开机启动
systemctl disable sshd — 设定服务开机不启动
systemctl list-units — 列出已经开启服务当前状态
systemctl list-unit-files — 列出所有服务开机启动的状态

注 —> 三种开机状态 disable不启动 enable启动 static静态
systemctl list-dependencies — 列出服务的倚赖
systemctl set-default multi-user.target --设定系统启动级别为多用户模式(命令模式)
systemctl set-default multi-user.target --设定系统启动级别为多用户模式(命令模式)
systemctl set-default graphical.target — 设定系统启动级别为图形模式

相关文章:

  • 2021-10-06
  • 2022-01-14
  • 2022-01-23
  • 2021-07-25
猜你喜欢
  • 2021-09-22
  • 2021-10-13
  • 2021-05-07
  • 2021-04-24
相关资源
相似解决方案