linux omfs文件系统利用bitmap管理空闲磁盘空间
来源:互联网 发布:mayo clinic 知乎 编辑:程序博客网 时间:2024/05/19 23:13
为了管理磁盘空间,文件系统需要知道哪些block是空闲的。Omfs使用bitmap来达到这个目的。Bitmap的每一个bit对应磁盘上的一个block,当对应的block被分配后,bitmap中的相应bit会被设置为1。这个是很经典也很清晰的一个设计,下面我们看看omfs的具体做法:
在上面新建的文件系统中新建一个文件aaaa:
Touch aaaa
ls -ali
total 4
3 drwxr-xr-x 2 root root 2048 2012-02-08 10:52 .
1048578 drwxr-xr-x 4 root root 4096 2012-02-08 13:44 ..
6 -rw-r--r-- 1 root root 0 2012-02-08 13:45 aaaa
再touch bbbb和touch cccc
3 drwxr-xr-x 2 root root 2048 2012-02-08 10:52 .
1048578 drwxr-xr-x 4 root root 4096 2012-02-08 13:44 ..
6 -rw-r--r-- 1 root root 0 2012-02-08 13:45 aaaa
8 -rw-r--r-- 1 root root 0 2012-02-08 13:54 bbbb
10 -rw-r--r-- 1 root root 0 2012-02-08 13:54 cccc
hexdump -C -s 0xa000 -n 8192 /dev/loop0
0000a000 ff 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
0000a010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
0000a050 00 00 00 00 11 00 00 00 ff ff ff ff ff ff ff ff |................|
0000a060 ff ff 00 00 c9 0c 02 00 00 00 00 00 00 00 00 00 |................|
0000a070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
0000a190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 |................|
0000a1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
0000a1b0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff |................|
0000a1c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
*
0000a800 00 00 00 00 29 05 02 00 00 00 00 00 00 00 00 00 |....)...........|
0000a810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
最初是3f 现在是ff0f 。
3f =0011 1111 这六位表示block 0到block 5 block0是super block,block1和block2是root block,block3 和block4是root directory inode, block5是bitmap
因为aaaa的i_no是6,所以占用block6,block7是备份。
Bbbb的i_no是8,所以占用block8,block9是备份。
Cccc的i_no是10,所以占用block10,block11是备份。
所以是ff0f = 1111 1111 0000 1111 block0至block11都是占用的
这时候,删除bbbb
hexdump -C -s 0xa000 -n 8192 /dev/loop0
0000a000 ff 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
0000a010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
0000a050 00 00 00 00 11 00 00 00 ff ff ff ff ff ff ff ff |................|
0000a060 ff ff 00 00 c9 0c 02 00 00 00 00 00 00 00 00 00 |................|
0000a070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
0000a190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 |................|
0000a1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
0000a1b0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff |................|
0000a1c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
*
0000a800 00 00 00 00 29 05 02 00 00 00 00 00 00 00 00 00 |....)...........|
0000a810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
0000c000
变成了ff0c= 1111 1111 0000 1100 表示block8和block9变成可用的了,即bbbb占用的两个block被释放了。
- linux omfs文件系统利用bitmap管理空闲磁盘空间
- linux下omfs文件系统的硬盘布局
- linux文件系统omfs文件的重命名
- linux文件系统omfs文件的读写
- linux文件系统omfs的目录创建和删除
- linux文件系统omfs的普通文件创建和删除
- linux 新建挂载空闲磁盘空间
- AIX卷管理介绍以及利用空闲PP来创建文件系统
- linux 磁盘空间管理
- Linux下的磁盘空间管理
- linux文件系统二---lvm磁盘空间的学习
- Linux磁盘空闲空间调度管理
- linux-文件系统管理04-文件系统
- Linux用户磁盘空间配额的管理
- linux 为 逻辑卷管理 增加磁盘空间
- Linux查看文件以及磁盘空间大小管理
- Linux 指令详解 df 检查文件系统的磁盘空间使用情况
- Linux文件系统管理
- 面试题(关于数据结构和算法)及个人解答(持续更新中)
- C语言字符串,字符转数字,数字转字符
- linux下模拟按键输入和模拟鼠标
- 检测按键
- python 各种模块学习
- linux omfs文件系统利用bitmap管理空闲磁盘空间
- oracle03
- linux文件系统omfs的目录创建和删除
- 黑马程序员 01基础知识 for 语句等
- PhoneGAP实战笔记(一)
- 女子不满被骗刺死已婚男友获刑14年(图)
- iPhone 4S获入网许可 国行销售进入倒计时
- 嵌入式工程师经典面试题
- oracle中解决角色PLUSTRACE不存在