文件名称:什么是文件系统-gluster源码分析
文件大小:583KB
文件格式:PDF
更新时间:2024-07-05 01:28:22
EMC
第3章 文件系统相关知识 3.1 什么是文件系统 文件系统定义了把文件存储于磁盘时所必须的数据结构及磁盘数据的管理方式。我们知 道,磁盘是由很多个扇区(Sector)组成的,如果扇区之间不建立任何的关系,写入其中的 文件就无法访问,因为无法知道文件从哪个扇区开始,文件占多少个扇区,文件有什么属性。 为了访问磁盘中的数据,就必需在扇区之间建立联系,也就是需要一种逻辑上的数据存储结 构。建立这种逻辑结构就是文件系统要做的事情,在磁盘上建立文件系统的过程通常称为“格 式化”。 以Windows平台下最常见的FAT文件系统为例。FAT文件系统有两个重要的组成部分:FAT 表(File Allocation Table)和数据存储区。FAT表是FAT文件系统的名称来源,它定义了 存储数据的簇(Cluster,由2的n次方个Sector组成,n值根据分区大小而定,需综合考虑数 据存取效率和存储空间的利用率)之间的链接关系,这种链接关系是一个单向链表,指向0xFF 表示结束。依据一个簇编号所用bit数的不同,可分为FAT12、FAT16和FAT32文件系统。数据 区存储的数据包含文件目录项(Directory Entries)和文件数据。文件目录项存储的是一 个文件或目录的属性信息,包括文件名称(把目录也看成是文件)、读写属性、文件大小、 创建时间、起始簇编号等,一个目录下的每个子目录和文件都对应一个表项记录。文件目录 项以固定32字节的长度存储,以树型结构管理,其中根目录的位置是确定的。也就是说,根 据分区根目录可以找到下级子目录和文件的起始簇编号,根据下级子目录又可以找到更下级 目录或文件的起始簇编号。可见,FAT表和文件目录项是为了文件的访问和管理而建立的。 应用程序要访问一个文件时,根据文件路径(逻辑分区号+目录,如F:\software)和文件 名称(如setup.exe)可从文件目录项中获得存储文件数据的起始簇号,之后从FAT表查询这 个簇号对应的链表,就可以获得该文件对应的全部簇编号。从这些簇中读出全部数据,就得 到一个完整的文件。 一般来说,文件系统是和操作系统紧密结合在一起的,不同的操作系统使用不同的文件 系统,但有时为了兼容,不同操作系统也使用相同的文件系统。