目录
1、总结rocky 系统的启动流程,grub工作流程
1.1系统启动整体流程(基于 BIOS/UEFI)
1.2硬件初始化阶段
1.2.1BIOS(传统模式)
1.2.2UEFI(新模式)
1.3引导加载程序(GRUB2)阶段
1.4内核加载与初始化阶段
1.5用户空间初始化(systemd 阶段)
2、总结内核设计流派及特点。
3、总结systemd服务配置文件
4、总结DNS域名三级结构,DNS服务工作原理,涉及递归和迭代查询原理
4.1DNS域名三级结构
4.1.1顶级域名
4.1.2二级域名
4.1.3主域名/子域名
4.2DNS服务工作原理
4.2.1DNS服务的作用
4.2.2解析流程
4.3递归查询和迭代查询
4.3.1递归查询
4.3.2迭代查询
5、实现私有DNS, 供本地网络主机作DNS递归查询
5.1环境部署(ubantu)
5.2端口查看
5.3配置网卡
5.4systemd-resolved环境还原
6、总结DNS服务器类型,解析答案,正反解析域,资源记录定义
6.1DNS服务器类型
6.2解析答案
6.2.1权威答案
6.2.2非权威答案
6.3正反解析域
6.3.1正向解析
6.3.2反向解析
6.4资源记录定义
7、总结对称加密和非对称加密,单向哈希算法的概念和加密原理
7.1对称加密
7.2非对称加密
8、总结cdn原理
8.1CDN目标
8.2工作流程
8.3核心原理
8.4适用场景
Rocky Linux(基于 RHEL)的启动流程分为 硬件初始化、引导加载程序(GRUB)、内核加载与初始化、用户空间初始化(systemd) 四个核心阶段。
执行 POST(加电自检),检测硬件设备(CPU、内存、硬盘等)。
根据启动顺序(如 BIOS 设置)查找引导设备(如硬盘、U 盘)。从设备的 MBR(主引导记录) 加载引导程序(第 1 阶段引导程序,512 字节,包含 GRUB 阶段 )
替代 BIOS 的固件接口,支持更大硬盘、安全启动(Secure Boot)等。
从 EFI 系统分区(ESP,通常为 FAT32 格式) 加载引导程序(如 grubx64.efi)。
GRUB(Grand Unified Bootloader)负责加载内核和初始环境,加载 GRUB 自身模块,解析配置文件(/boot/grub2/grub.cfg)。
显示启动菜单(如未交互,默认选择倒计时内的默认条目)。
用户选择启动项后,加载对应的 内核镜像(vmlinuz) 和 初始内存盘(initramfs),并传递内核参数(如 root=/dev/sda1 ro)。
内核解压缩与启动:
GRUB 将内核镜像加载到内存,内核开始执行,解压缩并初始化硬件驱动(通过 initcall 机制)。
initramfs 挂载:
内核挂载 initramfs(临时根文件系统),其中包含驱动模块(如文件系统驱动、SCSI/SSD 驱动)和脚本。
执行 init 脚本,检测真实根文件系统(如 /dev/sda1),加载必要驱动,准备切换到真实根文件系统。
切换根文件系统(chroot):
通过 pivot_root 切换到真实根文件系统(/),卸载 initramfs。
启动第一个用户空间进程(PID 1):
内核启动 systemd(代替传统 init),作为系统初始化的核心。
加载系统配置:
systemd 读取配置文件(如 /etc/fstab 挂载文件系统,/etc/inittab 兼容配置)。
启动目标(Targets):
默认目标为 graphical.target(图形界面)或 multi-user.target(无图形),通过依赖关系启动服务(如网络、日志、安全服务等)。
用户登录:
启动登录服务(如 getty 终端或图形显示管理器 GDM),等待用户交互。
设计流派 | 核心特点 | 性能 | 安全性 | 典型场景 | 代表系统 |
单体内核 | 全功能内核态,直接函数调用 | 高 | 低 | 服务器、嵌入式、高性能计算 | Linux、FreeBSD |
微内核 | 最小内核态,用户态服务通过 IPC 通信 | 低 | 高 | 嵌入式实时系统、安全关键系统 | QNX、Minix、seL4 |
混合内核 | 核心模块内核态,非核心用户态 / 优化通信 | 中高 | 中高 | 通用桌面 / 服务器系统 | Windows、macOS XNU |
外核 | 最小资源抽象,用户态控制资源分配 | 极高 | 高 | 高性能计算、云计算、 unikernel | ExOS、MirageOS |
分层内核 | 模块化层次结构,分层依赖 | 中 | 中 | 早期大型系统(历史意义为主) | Multics、RC4000 |
/usr/lib/systemd/system/
#每个服务最主要的脚本文件目录,类似于之前的/etc/init.d/
/run/systemd/system/
#系统执行过程中所产生的服务脚本,比上面日录优先运行
/etc/systemd/system/
#管理员建立的执行脚本,类似于/etc/rcN.d/sxx的功能,比上面目录优先运行
例子:www.baidu.com中的com
作用:区分域名的类别或所属国家
例子:www.baidu.com中的baidu
例子:www.baidu.com中的www
DNS服务器的功能是将域名解析为IP地址
(1)客户端发起查询
(2)若本地缓存有DNS解析记录的IP地址则直接返回IP,无则进行下一步
(3)查询根服务器,返回.com
(4)查询顶级域名服务器,返回baidu.com
(5)查询权威服务器,返回www.baidu.com
(6)将查询结果返回给客户端
特点:客户端只需要向本地DNS发送一次查询,返回的是最终的IP地址
优点:对客户端简单
缺点:对本地DNS服务器的压力较大
特点:每次返回下一级服务器的地址,最终返回IP地址
优点:减小服务器负载,适合分布式架构
缺点:流程复杂,需多次往返请求
apt install bind9 -y
systemctl is-active bind9
netstat -tnulp | grep named
#默认占用53端口
vim /etc/netplan/00-installer-config.yaml
network:
renderer: NetworkManager
ethernets:
eth0:
#dhcp4: true
addresses: [10.0.0.12/24]
gateway4: 10.0.0.2 # 该属性目前已经被移除,虽然能够使用,但是不推荐
nameservers:
# search: [magedu.com,magedu.org]
addresses: [127.0.0.1] # 推荐使用这种方式
version: 2
重启使配置生效
netplan apply
去掉全局配置,在该文件中注释掉DNS行
vim /etc/systemd/resolved.conf
重启服务
systemctl restart systemd-resolved.service
根服务器,权威服务器,递归服务器,缓存服务器,转发服务器
解析答案分为权威答案和非权威答案
直接由权威服务器返回
来自缓存服务器或递归服务器的本地缓存
将域名解析为IP地址
将IP地址解析为域名
A:域名解析为IPV4地址
AAAA:域名解析为IPV6地址
MX:指定邮件服务器地址
CNAME:为域名创建别名
NS:指定区域的权威服务器,例如A区域由B负责解析
SOA:标记区域的起始权威服务器,包含区域的元数据
对称加密只有一个私钥,常用在数据加密场景中
非对称加密有一个公钥和一个私钥,常用在密钥交换的场景中,比如HTTPS中的RSA握手
通过在全球部署分布式边缘节点,将用户请求导向距离最近,负载最低的节点,解决跨地域延时高,网络拥堵的问题
用户发起请求,DNS调度至边缘节点,边缘节点响应请求,内容更新与缓存策略
内容缓存,负载均衡,数据传输优化,安全防护
静态内容为主的网站
高并发场景
大文件下载,视频点播