linux 启动过程

Linux启动过程包括以下步骤:

  1. BIOS自检:计算机打开时,首先会进行基本输入输出系统(BIOS)的自检。BIOS是计算机上的一个小型程序,负责初始化硬件、检查系统配置、启动引导程序等。服务器 BIOS 自检(POST)通常包括以下内容:

  1. 内存检查:检查系统的 RAM 是否正常。
  2. 外部设备检查:检查键盘、鼠标、显示器等外部设备是否连接正常。
  3. CPU 检查:检查 CPU 是否正常工作。
  4. 硬盘检查:检查硬盘是否存在,并检查是否损坏。
  5. PCI 设备检查:检查是否正确识别 PCI 插槽上的设备。
  6. CMOS 检查:检查电脑是否能正确读取 CMOS 中的设置
  7. 启动设备检查:检查是否有可用的启动设备,例如硬盘、光盘、USB 等。
  8. 系统时钟检查:检查时钟是否正常运行。
  9. 错误警报:如果有错误发生,BIOS 会发出声音或者显示错误代码。

2.引导程序:BIOS将会把引导程序(bootloader)加载到内存中。引导程序是一个小型程序,其作用是加载操作系统的内核。

Bootloader 是一个程序,它在计算机启动时最先运行,负责初始化硬件和加载操作系统内核。Bootloader 通常存储在计算机的非易失性存储器中,例如主板上的固件芯片或硬盘驱动器的特殊分区RBM中。在启动过程中,BIOS 或 UEFI(统一可扩展固件接口)会引导 Bootloader,并告诉它从哪里加载操作系统内核。一旦 Bootloader 成功加载内核,它将把控制权交给内核,并开始运行操作系统。

1,通过BIOS传统方式启动存放在启动硬盘中的RBM程序:

 如图所示,用hexdump命令查看/dev/sda的mbr,即/dev/sda的前512个字节。mbr的前446个字节保存了与启动相关的信息,即硬件自检完成后引导的第一个系统程序,grub程序。如果是安装系统过程中,则会引导U盘或光盘的grub程序。

2,通过UEFI方式启动存放在启动硬盘中的UEFI固件程序启动引导程序grub:

从uefi shell启动grub, 然后启动linux内核

2.1 进入目标分区

Shell> fs0:

FS0:\>

2.2. 进入grub

FS0:\>BOOTAA64.EFI

2.3 在grub中设置临时访问的根节点

grub> root=(hd0,msdos1) (hd0,msdos1中有linux内核镜像和initrd镜像)

2.4 启动linux内核

grub> linux /Image initrd=/initrd.gz earlycon=uart root=(hd0,msdos1) rw rootwait

3.内核:引导程序将控制权交给操作系统内核。内核是操作系统的核心部分,它初始化系统的各个组件,如CPU、内存、进程管理等。

Linux系统内核是一个开放源代码且免费的、由Linus Torvalds和其他志愿者开发的操作系统内核。它是一个可加载的内核,具有模块化的结构,因此可以动态地修改内核功能,从而被广泛应用于各种设备和系统中,包括台式机、服务器、移动设备和嵌入式设备等。Linux内核提供了文件系统、进程管理、内存管理、设备驱动程序、网络协议栈等核心功能,使得操作系统可以与软件和硬件进行交互并提供服务。

 

4.init进程:内核启动后,会以root权限运行init进程。这个进程是操作系统的第一个用户级进程,负责初始化其它系统组件,如文件系统、网络、用户账号等。

在Linux系统中,init进程是系统的第一个进程,它是用户空间中最早启动的进程,负责启动所有其他进程。init进程是由内核启动的,它会读取系统的配置文件,然后根据配置文件中的指令来启动其他的系统服务和进程。在较新的Linux系统中,init进程被systemd进程所取代,但是init进程仍然是Linux系统的重要组成部分。

init 进程是所有进程的发起者和控制者。因为在任何基于 Unix 的系统(比如 linux)中,它都是第一个 运行的进程,所以 init 进程的编号(Process ID,PID)永远是 1。如果 init 出现了问题,系统的其余部分 也就随之而垮掉了。

 5.运行级别:init进程根据运行级别(runlevel)加载相应的服务。运行级别是一组运行的服务和进程的集合,它决定了系统启动时运行哪些服务和进程。

Linux中的运行级别是决定系统启动时运行哪些服务和进程的一种方式。一般来说,Linux系统有七个运行级别(0-6),各级别会启动不同的服务和进程,但具体的设置会因不同的Linux发行版而有所不同。

在大多数Linux系统中,这些运行级别的含义如下:

0:关机
1:单用户模式
2:多用户模式,没有NFS服务
3:多用户模式,有NFS服务
4:保留
5:图形化界面模式
6:重启

用户可以通过修改/etc/inittab文件来设置默认运行级别,或在系统启动时指定需要启动的运行级别。一些Linux发行版还提供了一些工具,如systemctl、runlevel等来管理和查看当前运行级别。

 

6.用户登录:系统启动完成后,会显示一个登录提示符。用户需要输入账号和密码才能登录系统。

Linux系统启动后会进入命令行界面或图形界面登录界面。在命令行界面下,需要输入用户名和密码才能登录到系统,而在图形界面下,需要点击登录按钮,输入用户名和密码后才能进入系统。

一般情况下,Linux系统启动后会进入一个默认的用户登录界面,用户需要输入正确的用户名和密码才能登录到系统。如果是第一次使用系统或者需要创建新用户,可以使用root用户进行登录,并通过命令行工具创建新用户和设置密码。在登录后,用户可以使用命令行工具或者图形界面来进行系统操作。

总的来说,Linux启动过程是基于层次结构的,从BIOS到内核、到init进程,最后再加载用户级别的服务和进程。每一步都是有序的,直到用户登录完成为止。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值