Linux 系统开机加电后发生了什么?

原创
ithorizon 7个月前 (10-12) 阅读数 14 #Linux

Linux 系统开机加电后出现了什么?

当Linux系统开机加电后,一系列纷乱的过程会在后台自动执行,以确保系统能够从无状态到完全运行的状态。以下是Linux系统开机加电后或许出现的一系列步骤:

### 1. 加电自检(POST)

首先,当电源接通时,计算机硬件会进行加电自检(Power-On Self-Test,POST)。这个过程由主板上的固件(通常是BIOS或UEFI)控制。POST的首要目的是检查硬件是否正常工作,包括CPU、内存、硬盘、显卡等。

### 2. 加载固件

POST完成后,固件会尝试从启动设备(如硬盘、固态硬盘、USB设备等)加载启动加载程序。在Linux系统中,这个启动加载程序通常是GRUB(GRand Unified Bootloader)。

### 3. 启动加载程序(GRUB)

GRUB是启动加载程序,它负责从多个启动设备中选择一个来启动操作系统。GRUB会显示一个菜单,用户可以从中选择启动项。

bash

# GRUB配置文件示例(/etc/grub.d/10_linux)

set default=0

set timeout=5

menuentry "Linux" {

linux /vmlinuz root=/dev/sda1 ro

initrd /initrd.img

}

### 4. 加载内核

用户选择了启动项后,GRUB会加载Linux内核(vmlinuz)和初始化RAM磁盘(initrd)。

### 5. 内核初始化

内核被加载到内存中后,它会初始化硬件设备,并设置必要的系统参数。这个过程包括:

- 设置CPU频率和性能状态

- 初始化内存管理

- 加载必要的内核模块

- 初始化设备驱动程序

### 6. 初始化系统

内核初始化完成后,它会调用初始化系统(init)程序。在传统的SysV启动过程中,init进程的PID是1,它负责启动所有其他系统进程。

bash

# init进程的启动脚本(/etc/init.d/rcS)

#!/bin/sh

# 初始化系统变量

export PATH=/sbin:/bin:/usr/sbin:/usr/bin

# 启动所有必要的系统服务

exec /sbin/service start all

### 7. 系统服务启动

init进程会启动各种系统服务,这些服务负责执行各种任务,如网络管理、文件系统检查、守护进程等。

bash

# 系统服务示例(/etc/init.d/networking)

#!/bin/sh

# 启动网络服务

service networking start

### 8. 用户登录

在大多数系统中,init进程会启动getty进程,它负责监听终端设备并等待用户登录。

### 9. 用户交互

用户登录后,系统会提供命令行界面或图形用户界面(GUI)。用户可以执行各种命令,启动应用程序,进行文件操作等。

### 10. 系统运行

一旦系统启动完成,它就会继续运行,直到用户或系统管理员决定关闭它。

### 总结

Linux系统开机加电后,经历了一个从硬件自检到系统启动,再到用户交互的纷乱过程。这个过程涉及到固件、启动加载程序、内核、系统服务等多个组件的协同工作。了解这些过程有助于更好地管理和维护Linux系统。

本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Linux


热门