首页
›
Linux内核与驱动
›
020-文件系统实战开发
›
《Linux块设备与简易文件系统开发》
VIP10
本课程属于:020-文件系统实战开发
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Linux块设备与简易文件系统开发
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导论与项目全景
介绍本课程目标 · 项目背景(块设备驱动与文件系统关系) · 最终成果预览(一个可运行的虚拟块设备…
课程导论
项目全景
02
存储硬件基础回顾
机械硬盘(HDD)与固态硬盘(SSD… · 寻址方式(CHS/LBA) · IO性能指标(IOPS
存储硬件基础回顾
HDD
03
块设备驱动核心概念
块设备与字符设备的区别 · 块设备请求队列(request qu… · bio结构体
块设备驱动核心概…
块设备
04
Linux内核模块开发环境搭建
内核源码树下载 · 编译内核模块的Makefile编写 · 模块加载/卸载(insmod/rmm…
Linux
内核模块开发环境…
05
虚拟块设备驱动设计(上)
定义设备结构体 · 分配gendisk · 设置fops(open/releas…
虚拟块设备驱动设…
定义设备结构体
06
虚拟块设备驱动设计(下)
实现IOCTL接口 · 处理多队列请求(blk-mq) · 内存屏障与并发控制(spinlock…
虚拟块设备驱动设…
IOCTL
07
驱动编译与初步测试
编译驱动模块 · 加载模块 · 使用dd工具测试读写
驱动编译
初步测试
08
文件系统概念与VFS层
文件系统的作用 · 虚拟文件系统(VFS)架构 · 超级块(super_block)
VFS
文件系统概念
09
inode数据结构深度解析
inode编号 · inode表 · inode操作(inode_oper…
inode
数据结构深度解析
10
块分配策略与inode关联
块位图(block bitmap) · inode位图(inode bitm… · 块组(block group)概念
inode
块分配策略
11
简易文件系统设计(上)
定义磁盘超级块格式 · 定义块组描述符 · 定义inode结构体(磁盘inode…
简易文件系统设计
定义磁盘超级块格…
12
简易文件系统设计(下)
设计目录项(dirent)格式 · 设计文件数据块寻址方式(直接/间接块…
简易文件系统设计
dirent
13
文件系统格式化工具实现
编写mkfs工具(用户态) · 初始化超级块 · 初始化块位图与inode位图
文件系统格式化工…
mkfs
14
文件系统挂载流程
mount系统调用路径 · 读取磁盘超级块 · 填充VFS超级块
文件系统挂载流程
mount
15
inode分配核心算法(上)
从inode位图中查找空闲位 · 分配inode编号 · 更新位图与磁盘inode表
inode
分配核心算法
16
inode分配核心算法(下)
处理inode回收(删除文件) · 位图一致性维护 · 并发分配保护(mutex)
inode
分配核心算法
17
块分配核心算法
从块位图中分配数据块 · 支持连续块分配(预分配) · 块回收与碎片整理思路
块分配核心算法
从块位图
18
文件创建与写入流程
用户态open/create ->…
文件创建
写入流程
19
文件读取与目录遍历
用户态read -> VFS ->… · 目录遍历(ls)实现
文件读取
目录遍历
20
文件删除与inode回收
unlink系统调用流程 · 减少链接计数 · 释放inode与数据块
inode
文件删除
21
硬链接与软链接实现
硬链接(增加inode引用计数) · 软链接(符号链接存储路径字符串) · inode共享机制
硬链接
软链接实现
22
文件系统缓存与同步
页缓存(page cache)作用 · 回写机制(writeback) · sync/fsync实现
文件系统缓存
同步
23
错误处理与一致性检查
磁盘IO错误处理 · 文件系统检查工具(fsck)原理 · 日志(journaling)概念简介
错误处理
一致性检查
24
性能优化
块分配预读(readahead) · inode缓存(inode cach… · 并发IO(多线程读写)
性能优化
readahead
25
用户态测试程序编写
编写C程序调用系统接口(open/r… · 性能基准测试
用户态测试程序编…
open/r
26
调试与内核崩溃分析
使用ftrace跟踪文件系统函数 · 使用kprobe动态插桩 · 分析Oops信息
调试
内核崩溃分析
27
项目集成与演示
将驱动与文件系统集成到QEMU虚拟机… · 演示格式化 · 挂载
项目集成
演示
28
扩展思考
日志结构文件系统(LFS) · 写时复制(CoW)文件系统(btrf… · NVMe驱动与多队列优化
扩展思考
LFS
29
常见问题与解决方案
inode耗尽问题 · 磁盘空间不足处理 · 驱动与文件系统版本兼容性
常见问题
解决方案
30
课程总结与未来方向
回顾核心知识点 · 推荐进阶学习路径(内核内存管理 · IO栈
课程总结
未来方向
所属VIP或分类
同VIP:inode分配与文件系统故障排查:工程案例解析
同VIP:内核模块加载失败:文件系统挂载与VFS接口调试
同VIP:块设备驱动与DMA传输:文件系统挂载接口优化案例