Linux interface:system call
VFS
virtual FileSystemt
用户模式:用户空间
内核模式:内核空间
xfs,jfs
ocfs2(集群文件系统),gfs2
fat32 ntfs
每一个条目:inode
inode号 权限 属主属组 时间戳 文件大小
block size:1024 2048 4096(字节)
内存中叶框大小是4K
设备文件没有大小(不占磁盘块),只用到inode
占据磁盘块的文件一般只有2类文件
普通文件和目录文件
目录文件:存放的是文件名称和inode的对应关系
怎么查找空闲磁盘块bitmap(数据查找中非常重要的一种数据结构)
inode bitmap 位图 标识inode的
块 block bitmap 位图 标识块
块组:取决一个块大小,每个bit标识一个块,这是一个确定的数
超级块(super block),包含多少个块组,可以有多个备份,保存全局信息
1 有多少个块组
2 每个块组包含多少块
3 块大小
4 空闲磁盘块(空闲inode)、已用磁盘块(已用inode)
块组描叙符表:块组名,块组从第几个块开始到第几个块结束,备份
引导块
Boot Block Block Group 0 Block Group 1 ... Block Group n
/ \
/ \
Super Block GDT Block inode inode Data Blocks
Bitmap Bitmap Table
引导块:多操作系统,不能用来存数据,要预留出来
MBR:一个系统这里引导,和上面引导块没关系
GDT:Group Description Table
怎么找到文件/var
1 找/,自引用
2 找根的inode表
3 根据inode表找对应的磁盘块
4 块中存放有var名称对应文件的inode号
5 根据inode号再查inode表,inode表中找到var
目录中对应的块
6 磁盘块中找到log目录对应的inode,再回头inode表
...
7 文件的inode表中描述了文件对应的各个磁盘块
目录中存放的inode和目录名称的对应关系
块中目录中的内容:
inode name_len file_type name
原文:http://8527508.blog.51cto.com/8517508/1942806