一切皆文件之块设备驱动(五)
- 文件系统
- 2023-06-03
- 174热度
- 0评论
实验环境
准备
kernel version: linux 5.15
kernel module:
块设备:simpleblk.ko
文件系统:simplefs.ko
application:
制作文件系统:mkfs.simplefs
步骤
1.加载块设备驱动:insmod simpleblk.ko
2.加载文件系统:insmod simplefs.ko
3.查看文件系统类型:cat /proc/filesystems | grep simplefs
4.格式化块设备为simplefs:./mkfs.simplefs /dev/sblkdev1
5.挂载文件系统:
5.1创建挂载目录:mkdir simplefs
5.2格式化为simplefs:mount -t simplefs /dev/sblkdev1 /simplefs
块设备带文件系统方式读写
写数据
有具体文件系统的写与上一章节无文件系统的写主要的区别是,def_blk_fops和def_blk_aops依次替换为simplefs_file_ops和simplefs_aops。前者直接裸写方式使用了系统注册实现的bdev文件系统,而后者主要使用的是自定义注册的文件系统,在流程上没有太大的差异。数据打包成bio递交到块设备层后就一样的实现了,这里就不再赘述了。
读数据
读数据也是类似,def_blk_fops和def_blk_aops依次替换为simplefs_file_ops和simplefs_aops。主要流程上与上一章节无太大差异。