01
存储设备概述
HDD、SSD、eMMC、UFS、NVMe分类 · 工作原理 · 接口标准 SATA/PCIe/AHCI/NVMe
基础概念
02
Linux存储子系统架构
VFS层 · 块设备层 · 驱动层 · 物理层 · I/O调度器与请求队列
架构内核
03
块设备驱动核心数据结构
gendisk · request_queue · block_device_operations · bio结构体详解
数据结构驱动
04
块设备驱动注册与注销
alloc_disk · add_disk · del_gendisk · put_disk 接口使用与实战
API实战
05
请求处理机制
request与bio关系 · 请求队列初始化 · make_request_fn回调实现
机制核心
06
I/O调度器原理与移植
CFQ · Deadline · NOOP 选择与内核配置切换
调度移植
07
MMC子系统架构
MMC/SD/eMMC协议栈 · 核心层 · 主机控制器驱动 · 卡驱动
MMC协议
08
eMMC驱动移植实战
设备树配置 · 时钟/电源初始化 · eMMC识别与分区枚举
eMMC移植
09
SD卡驱动移植实战
SDIO接口配置 · 检测机制 · 热插拔 · 速度模式切换
SD热插拔
10
UFS驱动移植实战
UFS主机控制器初始化 · 设备描述符 · Gear模式配置
UFS高速
11
NVMe驱动移植实战
NVMe控制器初始化 · 队列创建 · 命令提交与完成处理
NVMePCIe
12
SATA/AHCI驱动移植实战
AHCI HBA初始化 · 端口探测 · NCQ原生命令队列
SATAAHCI
13
设备树中的存储设备描述
dts节点编写 · reg/interrupts/clocks属性 · 兼容性字符串
设备树dts
14
存储设备电源管理
运行时电源管理 · 系统休眠唤醒 · 电源状态切换 · 自动休眠
电源PM
15
存储性能优化
DMA引擎 · 分散/聚集I/O · 预读/写缓存 · TRIM/Discard
性能DMA
16
分区表基础
MBR结构 · GPT结构 · 分区类型与标识
分区MBR/GPT
17
MBR分区管理实战
fdisk工具 · 创建/删除/修改 · 扩展分区与逻辑分区
MBRfdisk
18
GPT分区管理实战
gdisk/parted · GPT分区创建 · GUID类型 · 备份GPT表
GPTgdisk
19
Linux内核分区解析
内核启动分区探测 · cmdline分区参数 · mtdparts机制
内核cmdline
20
设备映射器(DM)框架
DM目标类型 · dm-linear · dm-crypt · dm-verity · dm-snapshot
DM映射
21
软件RAID实现
mdadm工具 · RAID0/1/5/10 · 监控与故障恢复
RAIDmdadm
22
LVM逻辑卷管理
PV/VG/LV创建 · 卷组扩展 · 逻辑卷快照 · 迁移与备份
LVM快照
23
文件系统层与块设备交互
挂载流程 · 超级块与块组 · 日志机制 JBD2
文件系统JBD2
24
文件系统选择与移植
ext4 · XFS · Btrfs · F2FS 特性对比与介质选择
选型对比
25
根文件系统制作与移植
Busybox构建 · init进程 · fstab · ramdisk/initramfs
根文件系统Busybox
26
存储设备坏块管理
NAND坏块标记 · 跳过算法 · UBI/UBIFS坏块处理
坏块NAND
27
存储安全与加密
dm-crypt全盘加密 · LUKS密钥管理 · TPM · Secure Boot
加密安全
28
存储故障诊断与调试
内核日志 · blktrace · iostat · fio压力测试
调试性能
29
存储设备固件升级
eMMC/NVMe/UFS FW升级 · 安全升级流程
固件升级
30
综合实战:从零移植eMMC驱动并分区管理
设备树配置 · 驱动编写 · 分区创建 · 文件系统挂载全流程
综合实战