ramblock
来源:互联网 发布:福建安全网络知识竞赛 编辑:程序博客网 时间:2024/05/22 13:59
块设备程序框架:
app: open, read, write "1.txt"
--------------------------------------------------------文件的读写
文件系统: vfat, ext2, ext3, yaffs2, jffs2 (把文件的读写转换为扇区的读写)
----------------ll_rw_block-----------------------------扇区的读写
1. 把“读写”放入队列
2. 调用队列的处理函数(优化/调顺序/合并)
块设备驱动程序
----------------------------------------------------------
硬件: 硬盘,flash
===========================================================
写块设备驱动程序
1. 分配gendisk: alloc_disk
2. 设置
2.1 分配/设置队列: request_queue_t //它提供读写能力
blk_init_queue
2.2 设置gendisk 其他信息 //它提供属性:比如容量
3. 注册: add_disk
参考:
Xd.c (drivers\block)
Z2ram.c (drivers\block)
测试:
在开发板上:
1.insmod ramblock.ko
2.格式化:mkdosfs /dev/ramblock
3.挂接:
cd /temp
mount /dev/ramblock /temp/
4.读写文件
cd /temp ,在里面vi 文件 1.txt 输入HELLO
5.退出: cd / ,umount /temp/
再挂接 mount /dev/ramblock /temp/
ls /temp/, 发现1.txt还在
6.cat /dev/ramblock > /mnt/ramblock.bin //相当于把ramblock变成一个镜像文件
7.在PC上查看ramblock.bin cd /work/nfs_root/first_fs ls
sudo mount -o loop ramblock.bin /mnt //-o loop 可以把一个普通文件当作块设备挂接到mnt
ls 查看
cat 1.txt 打开
-------------------
测试2 分区:
1.insmod ramblock.ko2.ls /dev/ramblock* -l
3.fdisk /dev/ramblock
4.m (for help)
阅读全文
0 0