当前位置: 首页 > news >正文

Linux启动流程和内核管理自我总结

1 启动流程

1. 加载 BIOS 的硬件信息,获取第一个启动设备
2. 读取第一个启动设备 MBR 的引导加载程序 (grub) 的启动信息
3. 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
4. 核心执行 init 程序,并获取默认的运行信息
5. init 程序执行 / etc / rc.d / rc.sysinit 文件,重新挂载根文件系统
6. 启动核心的外挂模块
7. init 执行运行的各个批处理文件 (scripts)
8. init 执行 / etc / rc.d / rc.local
9. 执行 / bin / login 程序,等待用户登录
10 . 登录之后开始以 Shell 控制主机

2 BIOS

Basic Input and Output System (基本输入输出系统)
是一个程序,其代码存储在主板的一颗
ROM 存储芯片上, ROM 是只能读不能写的。
当修改了 BIOS 里面的某些设置时,这个修改的数据是存储在另外一颗 RAM 存储芯片上, RAM 掉电后数据就会消失,所以主板上有一颗纽扣电池来给这个 RAM 供电,当这颗纽扣电池没电了, BIOS 里面的设置项,就又恢复成出厂设置了。
注: BIOS 程序无法更改,但是里面的一些属性数据是可以调整的。

3 内部细节

POST    Power-On-Self-Test (加电自检)
负责完成对 CPU 、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测。

ROM     Read-Only Memory (只读存储)
其存储的数据一般在硬件出厂时就写入固定了,断电数据也不会消失又称为固定存储器。

RAM      Random Access Memory (随机存储)
随机取存,是指通电后,随时可在任意位置单元存取数据信息,不过断电后内部信息也随之消失。

4 自举程序

对于一台计算机来讲,通电后第一件事就是运行 BIOS 程序, BIOS 程序最先做的,就是对硬件执
POST (加电自检),如果硬件自检不通过,会显示相应的错误,还会有相应的蜂鸣音。

5 启动加载器

定位:一台主机上允许安装多个操作系统,如何确定启动哪个系统,这就是bootloader的作用。

Bootloader 叫引导加载器,引导程序。是个独立的软件,主要作用就是引导操作系统启动。
Grand 统一启动加载程序 , 又称多系统引导管理器。是 Linux 系统中最为常见的 Bootloader 之一。

6 引导程序

系统的启动引导方式有两种,分别是 BIOS 模式 UEFI 模式
BIOS (基本输入输出系统)是一种传统的启动模式。
启动速度慢 : 需要依次初始化各个硬件设备,如硬盘、内存和显示器等,启动慢   
硬盘容量限制: 只支持传统的 MBR 磁盘分区格式,这种只能处理容量小于 2TB 的硬盘。
功能有限: 图形界面相对简单,设置选项有限,且不支持网络启动等高级功能。
UEFI (统一可扩展固件接口)它在 BIOS 的基础上进行了改进,可以看作是 BIOS 的升级版。
支持大容量硬盘: UEFI 基于 GPT (全局唯一标识分区表)分区结构,支持超过 2TB 的硬盘容量。

启动速度快      功能丰富    兼容性好

7 磁盘分区

0 扇区, 1 - 2047 扇区, 2048 扇区 + 的分段在硬盘的结构和启动过程中扮演着重要的角色。
0 磁道 0 扇区( 512 字节) :
MBR 主引导记录 的简称,它是硬盘的第一个扇区( 512 字节)的内容,包含了硬盘的 :
        主引导程序 [ 446 字节 ] : Main Boot Loader
        分区表 [ 64 字节 ] : Disk Partition Table
        分区结束标志 [ 2 字节 ] : 55 AA,
1 - 2047
紧随主引导扇区之后,直到第 2047 扇区结束。
该区域可能包含一些额外的引导信息或用于特定的硬件或软件需求。
为了确保主引导扇区的完整性和安全性,防止因数据写入而破坏主引导扇区的内容。
2048 +
是实际数据存储的开始位置。 就是我们的操作系统。
8 bootloader 的分段存放
第一阶段 :存储在 0 磁道 0 扇区的前 446 字节空间内
第二阶段 :1 扇区到 2047 扇区,使用这个过渡阶段来提供更高级的磁盘访问功能,例如支持不同的文件系统。它可以帮助 Stage 1 访问存储在磁盘分区中的更大的引导程序文件。存储2 阶段的文件系统驱动,保证 2nd 中的文件可读
第三阶段 :hd(0.0)/grub/grub.conf
分段作用:
0 扇区,通过分区表,获取系统盘在哪一个分区
1 - 2047 扇区,常见文件系统驱动,通过文件系统环境,获取读取 OS 文件的能力。
2048 扇区 + ,根据配置,加载 OS 系统的 boot 启动文件信息,然后进行系统启动。

8 Grub功能

GRUB GRand Unified Bootloader )是一个启动加载程序,用于启动操作系统。
目前 grub 的配置文件主要有两种样式:
grub1 的配置文件在 / boot / grub / grub.conf
grub2 的配置文件在 / boot / grub2 / grub.cfg

9 系统启动

Linux 的运行级别( Runlevels )是一种定义系统操作模式的机制,用于控制系统启动后的行为和服务的可用性。不同的运行级别对应不同的系统状态,例如多用户模式、单用户模式、图形界面模式等。
查看运行的级别
cat /etc/inittab              rocky系列
systemctl get-default   ubuntu系列

who -r
runlevel

切换运行级别   
方法 1 init N    
方法 2 systemctl set-default xx.target
文件方式: / etc / inittab   rocky系列

10 系统初始化

rocky9为例:
systemd 执行默认 target 配置,配置文件 / etc / systemd / system / default .target
systemd 执行 sysinit.target 初始化系统及 basic.target 准备操作系统
systemd 启动 multi-user.target 下的本机与服务器服务
systemd 执行 multi-user.target 下的 / etc / rc.d / rc.local
systemd 执行 multi-user.target 下的 getty.target 及登录服务
systemd 执行 graphical 需要的服务

11 ubuntu解决grub隐藏

root@ubuntu24:~ # cat /etc/default/grub
GRUB_DEFAULT = 0
GRUB_TIMEOUT_STYLE = timeout # 改成 timeout
GRUB_TIMEOUT = 10 # 大于 0
root@ubuntu24:~ # update-grub

12 服务管理定制服务文件

服务位置
系统级服务:/etc/systemd/system/  或  /lib/systemd/system/
用户级服务:/usr/lib/systemd/system

service unit file文件通常由三部分组成  格式如下

实例:定制服务文件     vim /lib/systemd/system/hello.service  
[Unit] 
Description=Hello World [Service] 
TimeoutStartSec=0
ExecStart=/bin/sh -c "while true; do echo Hello World; sleep 1; done"
ExecStop=/bin/kill sh[Install] 
WantedBy=multi-user.target

13 常见模块命令

lsmod - 查看已加载的模块
modinfo - 查看模块详细信息
insmod - 手动加载模块(低级命令)
modprobe - 智能加载模块(高级命令)
rmmod - 卸载模块
全局配置/etc/modules(旧版)或/etc/modules-load.d/目录(新版)

14 内核参数设置

临时修改内核参数
sysctl -w net.ipv4.ip_forward=1
sysctl net.ipv4.ip_forward                查看
cat /proc/sys/net/ipv4/ip_forward     查看
写配置文件,永久有效
 vim /etc/sysctl.conf
.... .
net.ipv4.ip_forward = 0
r sysctl -p    重载生效

相关文章:

  • 在线机考|2025年华为暑期实习春招秋招编程题(最新)——第2题_网络整改
  • Mysql可以做分布式锁吗?Mysql分布式锁的应用
  • 图像处理控件Aspose.Imaging教程:用Java将 CMX 转换为 PNG
  • 第七章接入技术
  • window 显示驱动开发-处理视频帧
  • [SPDM]SPDM 证书链验证过程详解
  • 深度信念网络 (DBN, Deep Belief Network)
  • 2025 06 12 mrp
  • yolo11学习笔记
  • 强化微调技术与GRPO算法(2): 优势、应用场景与选择指南
  • Android NumberPicker使用大全
  • 支持 CHI 协议的 NOC的错误注入和边界条件测试
  • JDK各个版本新特性
  • pytorch 之 nn 库与调试
  • Spring Boot 整合 Smart-Doc:零注解生成 API 文档,告别 Swagger
  • 2025-05-07-二分查找
  • Cloudflare SaaS 功能 ip 优选原理
  • 论文略读:Large Language Models Assume People are More Rational than We Really are
  • Unity-通过Transform类学习迭代器模式
  • 给Markdown渲染网页增加一个目录组件(Vite+Vditor+Handlebars)(上)
  • 永城做网站/广告文案
  • 河北中石化建设网站/全网推广
  • 响应式网站建设资讯/百度推广有哪些形式
  • 网站服务做推广/2024近期新闻
  • 南京响应式网站制作/百度竞价专员
  • 杭州做网站多少钱/百度收录查询代码