首页
›
Linux内核与驱动
›
139-Linux内核
›
《Linux块设备驱动开发:从bio结构到IO调度器》
VIP10
本课程属于:139-Linux内核
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Linux块设备驱动开发:从bio结构到IO调度器
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
块设备驱动概述
块设备与字符设备的区别 · 块设备驱动在内核中的位置 · 块设备驱动开发环境准备
块设备驱动概述
块设备
02
块设备核心数据结构
block_device_opera… · gendisk结构体详解 · request_queue结构体
块设备核心数据结…
block
03
bio结构体深度解析
bio结构体定义 · bio_vec与bvec_iter · bio的分配与初始化
bio
结构体深度解析
04
request结构体与请求队列
request结构体成员 · request_queue的创建与销… · 请求的提交与完成
request
结构体
05
块设备注册与注销
alloc_disk与add_dis… · del_gendisk与put_di… · 主设备号与次设备号管理
块设备注册
注销
06
简单的RAM块设备驱动实现
内存模拟磁盘 · 实现open/release · 实现ioctl
RAM
简单的
07
请求处理函数
request_fn_proc回调 · 从请求队列获取请求 · 处理bio列表
请求处理函数
request
08
多队列块层(blk-mq)入门
单队列与多队列对比 · blk-mq核心数据结构 · blk_mq_alloc_tag_s…
blk-mq
多队列块层
09
blk-mq请求处理流程
tag分配 · 请求映射 · 硬件队列与软件队列
blk-mq
请求处理流程
10
IO调度器概述
IO调度器的作用 · 内核支持的调度器类型 · 调度器选择策略
IO
调度器概述
11
Noop IO调度器
Noop实现原理 · 适用场景 · 源码分析
Noop
IO
12
Deadline IO调度器
读写分离 · 过期时间管理 · 批量处理机制
Deadline
IO
13
CFQ IO调度器
完全公平队列 · 优先级与时间片 · 组调度
CFQ
IO
14
BFQ IO调度器
预算公平队列 · 低延迟特性 · 与CFQ的对比
BFQ
IO
15
Kyber IO调度器
基于延迟的调度 · 读写令牌桶 · 自适应调节
Kyber
IO
16
mq-deadline调度器
多队列版本的Deadline · 与单队列Deadline差异
mq-deadline
调度器
17
IO调度器框架与接口
elevator_type结构体 · 调度器注册与注销 · sysfs接口
IO
调度器框架
18
块设备缓存与页缓存
页缓存与块设备的关系 · buffer_head结构体 · 回写机制
块设备缓存
页缓存
19
直接IO与异步IO
O_DIRECT标志 · AIO与io_uring基础 · 与块设备交互
IO
直接
20
块设备错误处理
IO错误恢复 · 坏块管理 · 错误统计
块设备错误处理
IO
21
分区处理
分区表解析 · 分区设备创建 · 分区IO路由
分区处理
分区表解析
22
设备映射器(DM)框架
DM核心概念 · table与target · 简单线性映射实现
DM
设备映射器
23
MD(多设备)框架
RAID0/RAID1/RAID5原… · MD与块设备驱动关系
MD
多设备
24
块设备性能调优
队列深度调整 · 合并与拆分 · 轮询模式
块设备性能调优
队列深度调整
25
块设备调试技术
ftrace跟踪块层 · blktrace使用 · debugfs接口
块设备调试技术
ftrace
26
内核线程与工作队列
kblockd工作队列 · 自定义工作队列 · 并发管理
内核线程
工作队列
27
内存与IO屏障
DMA一致性 · 内存屏障在块设备中的应用 · 写屏障与缓存刷新
IO
内存
28
虚拟块设备驱动
loop设备原理 · nbd(网络块设备)驱动 · virtio-blk驱动
虚拟块设备驱动
loop
29
块设备驱动测试
LTP测试套件 · fio性能测试 · 故障注入测试
块设备驱动测试
LTP
30
实战项目
编写一个完整的PCIe NVMe风格… · 集成blk-mq与自定义调度器
实战项目
PCIe
所属VIP或分类
同VIP:Linux内存管理核心:页表分配与MMU硬件协同
同VIP:Linux内核DMA引擎驱动开发与数据搬运优化
同VIP:Linux内核ftrace动态追踪与kprobe探针开发