POSIX没有强制磁盘上的文件采取任何特定的表示方法,但是传统的UNIX文件都是按照改进的树状结构来实现的。目录项中包含一个文件名 和一个定长结构的引用(索引节点)。索引节点包含与文件长度、文件位置、文件所有者、创建时间、最后访问时间、最后修改时间、文件权限有关的信息。如图1所示:
![](https://i-blog.csdnimg.cn/blog_migrate/b01dd917822c6bf7820e41a619103b84.bmp)
图 1
除了基本信息,还包含指向文件中前几个数据块的指针。如果文件很大,就需要使用到间接指针了。
单级间接指针是一个指向指针块的指针,而指针块中的指针是指向附加数据块的;
二级间接指针是一个执行间接知真块的指针;
三级间接指针块包含了一个指向二级间接指针块的指针。
举例:
假设一个索引节点占用128字节,状态信息占用68字节,指针为四字节长,一个块的长度是8K字节,每个块指针为32bit。根据以上信息,可以计算
(1)直接指针的个数为:
(128-68-4×3)字节/4字节=12个
(2)指针指针可直接表示的文件大小:
12×8×1024=98304字节
(3)一级间接指针指向一个块大小为8K字节,8K字节的指针块包含指针个数可以为2K个,每个指针对应数据块大小为8K字节,这样一级间接指针可表示文件大小为:
2×1024×8×1024=16M字节
(4)同理,二级间接索引可表示文件大小为:
2K×2K×8K = 32吉字节。。。。
转载于:https://blog.51cto.com/keren/170970