文件系统的实现(概念)

在提到文件系统的实现概念之前,我们应该先明确一点,就是磁盘可以分为一个或者多个分区,一个卷可以横跨多个磁盘上的数个分区,每个卷可包括一个文件系统或无文件系统的生区,生区的意思就是没有文件系统的意思

在磁盘上,文件系统可能会包含这些信息: 如何启动所存储的操作系统、总的块数、空闲块的数目和位置、目录结构以及各个具体文件等

每个卷都有一个引导控制块,主要包括系统从这个卷当中引导操作系统所需要的信息,如果磁盘里面没有操作系统,那么这块的内容就为空,它通常是卷的第一块,在UFS文件系统当中称之为引导块,NTFS文件系统当中称之为分区引导扇区

每个卷当中都有控制块,包括卷(或分区)的详细信息,比如说分区的块数、块的大小、空闲块的数量和指针、空闲FCB的数量和指针等,在UFS文件系统当中称之为超级块,而在NTFS当中它存储在主控文件表当中

每个文件系统的目录结构是用来组织文件的,UFS当中它包含文件名和相关的索引结点号,在NTFS当中它存储在主控文件表当中,主文件表( MFT )是这个卷上每一个文件的索引。 MFT 为每一个文件保存着一组称为“属性”的记录,每个属性存储了不同类型的信息

每个文件的FCB包括很多该文件的详细的信息,比如说文件权限、拥有者、大小和数据块的位置。UFS将它称为索引结点(inode),NTFS将这些信息存在主控文件表当中,主控文件表采用关系数据库结构,每一个文件占一行

为了创建一个新文件,应用程序调用逻辑文件系统,逻辑文件系统知道目录结构形式,为了创建一个新文件,它将分配一个新的FCB(如果文件系统实现在文件系统被创建的时候就已经创建了所有的FCB,那么只是从空闲的FCB集合当中分配一个),然后系统把相应的目录信息读入内存,用新的文件名更新该目录和FCB,并且会将结果写回到磁盘

一个典型的FCB架构分为文件权限、文件日期(创建、访问、写)、文件所有者、组、访问控制列表(ACL)、文件大小还有就是文件的数据块或者是文件数据块指针

最后需要注意的是UNIX系统将目录按文件来处理,用一个类型域来表示是否为目录,阒然操作系统比如说Windows NT为文件和目录提供了分开的系统调用,对文件和目录进行不同的处理

猜你喜欢

转载自blog.csdn.net/zcmuczx/article/details/80593852
今日推荐