linux系统的文件除了记录了数据之外,还拥有着其他一些特性,比如文件的权限和属主、属组等等。文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到inode 中,至于实际数据则放置到 data block 区块中。
由于每个 inode 与 block 都有编号,而每个文件都会占用一个 inode,inode 内则有文件数据放置的 block 号码。 因此,我们可以知道的是,如果能够找到文件的 inode 的话,那么自然就会知道这个文件所放置数据的 block 号但,当然也就能够读出该文件的实际数据了。
举一个简单的例子:假设某文件的属性和权限都记录在Inode2中,而这个inode节点记录了该文件的实际数据存放在2、8、9着三个数据块(block)中,因此操作系统就能根据上述的逻辑关系轻松到找到数据的实际存放位置。
另外,还有一个超级区块(superblock)会记录整个文件系统的整体信息,如下所示: