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.ko
2.ls /dev/ramblock* -l
3.fdisk /dev/ramblock
4.m  (for help)


 
原创粉丝点击