linux启动

news/2025/3/15 23:39:36/文章来源:https://www.cnblogs.com/wonchaofan/p/18234292

 

1. BIOS

BIOS 代表基本输入/输出系统。简单来说,BIOS 会加载并执行主引导记录 (MBR) 引导加载程序。

首次打开计算机时,BIOS 首先对 HDD 或 SSD 执行一些完整性检查。

然后,BIOS 搜索、加载并执行引导加载程序,该程序可以在主引导记录 (MBR) 中找到。MBR 有时位于 USB 记忆棒或 CD-ROM 上,例如实时安装 Linux 时。

一旦检测到引导加载程序,它就会被加载到内存中,然后 BIOS 将系统的控制权交给它。

2. MBR

MBR 代表主引导记录,负责加载和执行 GRUB 引导加载程序。

MBR 位于可启动磁盘的第一个扇区,通常为/dev/hda/dev/sda,具体取决于您的硬件。MBR 还包含有关 GRUB 或非常旧系统中的 LILO 的信息。

  • MBR 代表主引导记录。
  • 它位于可启动磁盘的第一个扇区。通常为 /dev/hda 或 /dev/sda
  • MBR 的大小小于 512 字节。它包含三个部分:1) 前 446 字节中的主引导加载程序信息 2) 接下来 64 字节中的分区表信息 3) 最后 2 字节中的 mbr 验证检查。
  • 它包含有关 GRUB(或旧系统中的 LILO)的信息。
  • 因此,简单来说,MBR 加载并执行 GRUB 引导加载程序。

3. GRUB

有时称为 GNU GRUB,是 GNU GRand Unified Bootloader 的缩写,是大多数现代 Linux 系统的典型引导加载程序。

GRUB 启动画面通常是您启动计算机时看到的第一件事。它有一个简单的菜单,您可以在其中选择一些选项。如果您安装了多个内核映像,您可以使用键盘选择要用于系统启动的内核映像。默认情况下,会选择最新的内核映像。

启动画面会等待几秒钟,以便您选择选项。如果您不等待,它将加载默认内核映像。

/boot/grub/grub.conf在许多系统中,您可以在或 处找到 GRUB 配置文件。这是一个简单文件/etc/grub.conf的示例:grub.conf

#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5PAE)root (hd0,0)kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/initrd /boot/initrd-2.6.18-194.el5PAE.img

4. 内核

内核通常被称为任何操作系统的核心,包括 Linux。它完全控制系统中的所有内容。

在启动过程的这个阶段,GRUB 选择的内核首先挂载文件中指定的根文件系统grub.conf。然后它执行/sbin/init程序,该程序始终是第一个要执行的程序。您可以通过其进程 ID (PID) 来确认这一点,该进程 ID 应始终为 1。

然后,内核使用初始 RAM 磁盘 (initrd) 建立一个临时根文件系统,直到挂载真实文件系统。

  • 按照 grub.conf 中的“root=”指定的方式挂载根文件系统
  • 内核执行/sbin/init程序
  • 由于 init 是 Linux 内核执行的第一个程序,因此它的进程 ID (PID) 为 1。执行“ps -ef | grep init”并检查 pid。
  • initrd 代表初始 RAM 磁盘。
  • initrd 是内核用来作为临时根文件系统的,直到内核启动并挂载真正的根文件系统为止。它还包含在内部编译的必要驱动程序,可帮助内核访问硬盘分区和其他硬件。

5. 初始化

此时,您的系统将执行运行级别程序。系统会先查找 init 文件(通常在 处找到),以/etc/inittab确定 Linux 运行级别。

现代 Linux 系统使用 systemd 来选择运行级别。根据TecMint 的说法,可用的运行级别如下:

运行级别 0由poweroff.target匹配(并且runlevel0.target是指向poweroff.target的符号链接)。

运行级别 1由rescue.target匹配(并且runlevel1.target是指向rescue.target的符号链接)。

运行级别3 由multi-user.target模拟(并且runlevel3.target是指向multi-user.target的符号链接)。

运行级别 5由graphic.target模拟(并且runlevel5.target是指向graphic.target的符号链接)。

运行级别 6由reboot.target模拟(并且runlevel6.target是指向reboot.target的符号链接)。

紧急情况由emergency.target匹配

然后 systemd 将开始执行运行级别程序。

  • 查看 /etc/inittab 文件来决定 Linux 运行级别。
  • 以下是可用的运行级别
    • 0 – 停止
    • 1 – 单用户模式
    • 2 – 多用户,无 NFS
    • 3 – 完整的多用户模式
    • 4 – 未使用
    • 5 – X11
    • 6 – 重启
  • Init 从 /etc/inittab 中识别默认的 initlevel 并使用它来加载所有适当的程序。
  • 在系统上执行“grep initdefault /etc/inittab”来识别默认运行级别
  • 如果您想惹麻烦,您可以将默认运行级别设置为 0 或 6。既然您知道 0 和 6 的含义,那么您可能不会这样做。
  • 通常,您会将默认运行级别设置为 3 或 5。

6. 运行级别程序

根据您安装的 Linux 发行版,您可能会看到不同的服务正在启动。例如,您可能会看到starting sendmail …. OK

这些被称为运行级别程序,并根据您的运行级别从不同的目录执行。上面描述的 6 个运行级别中的每一个都有自己的目录:

  • 运行级别 0 –/etc/rc0.d/
  • 运行级别 1 –/etc/rc1.d/
  • 运行级别 2 –/etc/rc2.d/
  • 运行级别 3 –/etc/rc3.d/
  • 运行级别 4 –/etc/rc4.d/
  • 运行级别 5 –/etc/rc5.d/
  • 运行级别 6 –/etc/rc6.d/

请注意,这些目录的确切位置因发行版而异。

如果您查看不同的运行级别目录,您会发现以“S”或“K”开头的程序,分别表示启动和终止。启动程序在系统启动期间执行,终止程序在关机期间执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/720784.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Grid布局

目录Grid布局概述Grid 布局和 flex 布局网格布局的属性容器和项目网格轨道网格线 Grid布局 概述 Grid 布局即网格布局,目前css布局方案中,网格布局可以算得上是最强大的布局方案了。它可以将网页分为一个个网格,然后利用这些网格组合做出各种各样的布局。比较擅长将一个页面划…

产品功能架构图

产品功能架构图的绘制可以帮助团队更清晰地了解产品的功能结构,有助于沟通和协作。它也可以用于指导产品开发过程,帮助开发团队更好地理解产品需求和功能实现方式。现实情况是,很多产品初期都是在公司阶段,非常的模糊,这个时候boss让你画个产品架构图,你很抓瞎,大千UI工…

GPU与DSA架构分析

GPU与DSA架构分析GPU、GPGPU、DSA、FPGA、ASIC等AI芯片特性及对比GPUGPU(Graphics Processing Unit,图形处理器)是一种专门用于处理图形和图像的处理器。它是计算机的重要组成部分,主要用于加速图形和图像的处理和渲染。与传统的中央处理器(CPU)相比,GPU具有更多的并行处…

k8s组件和网络插件挂掉,演示已有的pod是否正常运行

环境 03 master ,05 06是node[root@mcwk8s03 mcwtest]# kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME mcwk8s05 Ready <none> 58…

W801单片机入门开发环境设置

W801单片机入门开发环境设置开发软件下载 烧录工具和SDK 在 WinnerMicro的网站 https://www.winnermicro.com/html/1/156/158/558.htmlch340 USB串口驱动 如果没有的话 https://www.onlinedown.net/soft/1164748.htm开发用的IDE CDK 在平头哥的网站 https://www.xrvm.cn/soft-t…

嵌入式笔记5.1 定时器详解

目录一、SysTick——系统节拍定时器1. 信息介绍2. 功能介绍(工作模式)3. 寄存器介绍4. 使用方式5. 其他信息二、RTC——实时时钟1. 信息介绍2. 寄存器详解0. 寄存器地址1. RTC 时间寄存器(RTC_TR)2. RTC 日期寄存器(RTC_DR)3. RTC 亚秒寄存器(RTC_SSR)4. RTC 初始化控制…

嵌入式作业5.1 定时器编程

目录SysTick代码编写步骤程序代码运行效果RTC程序代码运行效果注意1. 代码问题2. 闹钟设置问题TIMPWM程序代码运行效果代码分析(设计思想)注意代码错误为什么使用 GPIO 输入寄存器读取 TIM 输出比较模式输出的电平其他输入捕获程序代码运行效果 SysTick 利用 SysTick 定时器编…

C - Keys

C - Keys https://atcoder.jp/contests/abc356/tasks/abc356_c思路 对于样例1中的两种情况,可以推知如下推论: (1)1 2为real keys (2)1 3 为real keys, (3)上面两个不能同为真。更一般的情况,可以把测试用例分为 正测试样例 和 负测试样例 正测试样例, 测试key集中…

C# ASP.NET Core 中 IWebHostEnvironment 接口的作用是什么?

原文链接:https://www.php.cn/faq/603903.html IWebHostEnvironment 提供有关 Web 托管环境和 应用程序正在运行。 属于命名空间 Microsoft.AspNetCore.Hosting IWebHostEnvironment 接口需要作为依赖项注入到 控制器,然后在整个控制器中使用。 IWebHostEnvironment 接口有两…

WPF 数据模板

数据模板常用在3种类型的控件, 下图形式:

TCP实现公网服务器和内网客户端一对多访问(C语言实现)

TCP实现公网服务器和内网客户端一对多访问, 且相互实时通信.V1.0 2024年6月5日 发布于博客园目录理论代码服务器端客户端 理论 服务器端先运行, 能够接收来自任何地方的多个客户端发起的指向特定端口(这里是50002)的TCP请求, 并和客端建立稳定的TCP连接. 没有连接请求时等待, 有…

Base64编码

Base64 编码/解码 - 锤子在线工具 (toolhelper.cn) Base64 - 维基百科,自由的百科全书 (wikipedia.org) RFC 4648 - The Base16, Base32, and Base64 Data Encodings (ietf.org).Base64是一种,基于64个可打印字符对二进制数据进行编码的方法 Base64的应用场景主要是对传输文本…