磁盘上文件存储
inode tree
- 将文件名从文件的属性中分离,【文件名,inode号】为一项,组成了inode树
- 根目录没有名字,只有一个固定的inode,据对路径的文件查找都自动从这个inode开始
/不是名字(null/);
考虑bin/是 - 如果文件是目录,那么它会指向下一个由【文件名,inode号】项组成的数组(作为一个目录文件)
- 根目录没有名字,只有一个固定的inode,据对路径的文件查找都自动从这个inode开始
- 根据inode可以查找到文件属性,在属性中有一项
char di_addr[40]
,储存着文件在磁盘上的存储位置
文件的三级索引(结合直接索引)
char di_addr[40]
1. 每三个字节表示一个物理块号,因此分为13块,余一块是为了凑40方便对齐,
1. 0-9直接索引物理块号,
2. 10一级索引11-二级索引
3. 12-三级索引
- 每一个物理块是1KB,
直接索引10k大小,加上三级索引,每级索引1000/3(1KB,每个块号用3B表示),
计算得到最大索引为