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

13-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    重载生效

相关文章:

  • 数据分析入门初解
  • Jsoup解析商品详情时,有哪些常见的标签和属性?
  • 《拆解问题的技术》笔记
  • 什么是EcoVadis审核?EcoVadis审核的评估框架,EcoVadis审核流程
  • Java常用类库大全(学习笔记)持续更新中
  • 美团NoCode的Database 使用指南
  • 【无用知识研究】如何把non-capturing lambda 手动cast到函数指针
  • WLAN 技术指南:从入门到原理
  • Spring Boot 项目中如何划分事务边界,避免长事务?
  • TSC TTP-244 打印机TSPL PUTBMP指令图片打印失败
  • LlamaIndex 工作流 上下文状态和流式传输事件
  • 梯度下降相关
  • FreeRTOS事件组
  • 【游戏设计】游戏视角类型及核心特点分析
  • Ollama vs. vLLM
  • 【计算机组成原理 第5版】白、戴编著 第七章 总线系统 课后题总结
  • 1.sql连接语句
  • 智能PDU:从单一功能到多维度升级
  • 说一说Redis中如何使用一致性哈希算法
  • FEC(Forward Error Correction)前向纠错快速了解
  • 最专业网站建设开发/百度云搜索引擎入口 百度网盘
  • 有什么推广的平台/昆山优化外包
  • 新建的网站怎么做seo优化/厦门头条今日新闻
  • 用php做购物网站视频/怎样做网站推广
  • 视频网站建设公司/宣传网页制作
  • 陶瓷 中企动力 网站建设/网络营销的主要方式