一切皆文件之块设备驱动(五)

实验环境

准备

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。主要流程上与上一章节无太大差异。