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

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

http://www.xdnf.cn/news/13790.html

相关文章:

  • python根据图片路径获取文件后缀名
  • Spring Boot Actuator 健康信息
  • OpenLayers 动画
  • 零基础RT-thread第一节:串口通信UART
  • C语言——指针
  • 实现AI数据高效评估的一种方法
  • 分水岭边缘提取和hough提取边缘
  • ubuntu20上 : mujoco210安装教程
  • 计算机系统设计:E-R图、类图、时序图、功能结构图、流程图、用例图、架构图
  • 【ARMv7-A】——CLZ 指令
  • 【25-cv-06400、25-cv-06413】Keith律所再次代理Elizabeth Anne Evans蝴蝶版权画
  • 使用MetaGPT 创建智能体(3)常用操作和晋级
  • < 自用文儿 腾讯云 VPS > Ubuntu 24 系统,基本设置
  • 无人机接收机运行技术要点分析!
  • 基于SC内存一致性模型两个核心约束的放松维度
  • Systemctl 手记:从服务管理到资源控制的进阶实践
  • AI时代,学习力进化指南:如何成为知识的主人?
  • JSON 与 AJAX
  • 开疆智能ModbusTCP转Devicenet网关连接ABB机器人配置案例
  • 网页中调用自定义字体可以通过 ‌CSS‌ 的 @font-face 规则实现
  • Vue 跳转页面,第一次进页面,会出现样式混乱,刷新后即恢复正常(问题已解决)
  • 进程和计划任务管理
  • 剑指offer23_树的子结构
  • ESP32S3 关于使用INMP441麦克风 和MAX98357AETE功放进行录音和播放
  • 复现论文报错解决
  • 新手速学:在线投票制作系统操作详细步骤
  • centos clamav 扫描及告警配置
  • 内网渗透测试技巧与利用操作手册(SMB / MSSQL / LDAP)
  • 全志A33安卓6.0添加支持usb摄像头动态热插拔
  • 换颜色 算法笔记