欢迎各位兄弟 发布技术文章
这里的技术是共享的
virtual filesystem interface:system call
用户模式 用户空间 mkdir
内核模式
内核空间
open
close
read
write
delete
create
ext3 ext4 ext2 :extended
reiserfs
iso9660 (光盘) swap(交换文件系统) cifs(网络) nft(unix)
xfs (unix) jfs (unix)
ocfs2 (集群)gfs2 (集群)
fat32 (windows)ntfs(windows)
元数据 数据
inode: index node
块 逻辑结构,与磁盘本身是没有关系的
inode bitmap inode:index node 块大小 block size:1024 2048 4096 字节
block bitmap
super block
mbr 不属于任何分区的,是一个扇区,sector (可能是 应该是 512个字节)
super block 超级块,第0个块组,里面是全局信息里面有多少个块组,每个块组当中有多少块,块大小,已用磁盘块,空闲磁盘块,空闲inode,已用inode
super block 不是每个块组都有,一般情况下 备份3,4份 第0,1,3,5,7 个可能有
块组描述表 块组描述符 group descrtion table 每个块组的块组名,每个块组的起始磁盘块编号,结束磁盘块编号(块组边界),也是不能损坏的,也需要备份多次
根据块(还是块组)个数不同,它所占的空间不一样的,未必是一个磁盘块
假如指针全部利用起来,最多可以指向 100W个块
假如1个块是4k 那么单个文件最大就是 400wk
inode编辑创建时在日志区,完了后再移到元数据区
更有甚者,把元数据区和数据区都放在日志,编辑(创建)完后,inode和数据再归位,一般没人这么用
有了日志,能够加快文件系统修复的速度,但多了一次io写入写出,这是ext3的好处和坏处(但是坏处好像对性能几乎没有影响)
事实上除了 ext2 ,一般其它都是有日志系统功能的
ext2(在大量的临时文件,对完整性要求不高的场合是有用的)