文件系统结构是什么,第1张

文件系统是操作系统用来指定存储设备(通常是磁盘,但也包括基于NAND闪存的固态磁盘)或分区上的文件的方法和数据结构。文件系统是软件系统的一部分,它的存在方便了应用程序使用抽象命名的数据对象和可变大小的空。

文件系统是操作系统用来指定存储设备(通用磁盘和基于NAND闪存的固态磁盘)或分区上的文件的方法和数据结构;即一种在存储设备上组织文件的方法。在操作系统中负责管理和存储文件信息的软件组织称为文件管理系统。

文件系统结构是什么,文件系统结构是什么,第2张

文件系统由三部分组成:文件系统的接口、用于操作和管理对象、对象和属性的软件集。从系统的角度来看,文件系统是组织和分发空个文件存储设备,负责文件存储,保护和检索存储的文件的系统。具体来说,它负责为用户创建文件、存储、读取、修改和转储文件、控制文件访问以及在用户不再使用文件时撤销文件。

在计算机中,文件系统是用于命名和放置文件的逻辑存储和恢复系统。DOS、Windows、OS/2、Macintosh和基于UNIX的操作系统都有文件系统,其中文件以分层(树)结构放置在某处。文件放在目录(窗口中的文件夹)或子目录中,在树结构中的所需位置。

文件系统指定命名文件的规则。这些规则包括文件名中的最大字符数、可以使用的字符以及在某些系统中文件名后缀的长度。文件系统还包括通过目录结构查找文件的指定路径的格式。

Windows NT文件系统(NT File System)

NTFS(新技术文件系统)是微软开发的文件系统,具有良好的容错性和安全性。随着Windows操作系统的发展,基于NT平台的Windows NT4.0已经发展到5.0,其基本文件系统也升级到了NTFS 5.0,完全取代了Windows 98的FAT32文件系统。在内核模式文件系统驱动程序和内核相关程序的开发中,尤其是在不借助W32子系统提供的文件操作功能而需要直接操作文件系统时,往往需要掌握NTFS文件系统的结构。本文对NTFS文件系统的磁盘结构、故障恢复和日志系统进行了深入分析。

NTFS的主要结构是卷,由硬盘上的逻辑分区组成。一个磁盘可能包含一个或多个卷。每个卷包含许多文件。在NTFS文件系统中,文件系统本身没有额外的空空间。文件系统所需的所有数据,如记录卷的分配状态位图、文件、目录和系统启动程序,都像普通文件一样存储在硬盘上。这些系统文件称为元文件,这些数据称为元数据。磁盘上的文件通过群集链接在一起。簇的长度必须是物理扇区长度的整数倍,并且总是2的幕帘。扇区对NTFS文件系统是透明的,因此它不限制扇区的大小(通常为512字节)。群集大小可以通过卷大小来更改,卷大小通常由NTFS格式化程序自动确定。

文件在磁盘上的位置由主文件表MFT确定。主文件表MFT是NTFS中最重要的系统文件。它是一个关系数据库,由一系列文件记录组成。磁盘卷上的每个文件都有一个文件记录,但是一个大文件可能有多个记录。MFT本身也有自己的记录。每个文件记录的长度是固定的(一般为1KB)。每个文件由一个文件参考号来标识,文件参考号是一个64位的数字,由一个文件号(低48位)和一个文件序列号(高16位)组成。文件编号记录文件记录在MFT的位置,文件序号记录文件记录位置被重用的次数,即如果MFT文件记录被重用一次,文件序号将增加1,这样NTFS就可以完成一致性检查。

当目录的属性值存储在MFT表的基本文件记录中时,该属性称为常驻属性。对于常驻属性,属性值存储在属性名称之后。如果目录的属性值太大,无法存储在文件记录中,NTFS将从数据区域为属性值分配存储空。这些存储空通常称为存储属性值的运行,运行中存储的属性称为非常驻属性。MFT的基本文件记录有一个指针指向大小为2KB的运行(4KB对应于4KB的集群大小),这是一个非常驻的索引缓冲区,包含下一级的目录或文件。使用b+树结构存储目录信息,可以快速查询目录,不需要读取文件本身的文件记录。在存储大量小文件时,NTFS文件系统可以节省存储时间空,这是访问速度更快的主要原因。

Linux操作系统

Linux系统的一个重要特点就是支持很多不同的文件系统,比如EXT、FAT、EXT2、EXT3、SYSV等等。Linux使用的主要文件系统是EXT2和EXT3文件系统,它们也是Linux用户最常用的文件系统。在各种Linux系统版本中,EXT2被用作操作系统的基础。EXT2文件系统支持标准的UNIX文件类型:普通文件、目录文件、特殊文件和符号链接。

EXT2磁盘布局

像其他逻辑块文件一样,EXT2由一系列逻辑块组成。根据用途,这些逻辑块通常包括引导块、超级块、模式区和数据区。

EXT2将其逻辑分区划分为由引导块和其他块组组成的块组。每个块组由超级块、组描述符表、块位图、索引节点位图、索引节点表和数据区组成。

存储在每个数据块中的信息是关于EXT2文件系统的备份信息。当超级块或块组的模式损坏时,此信息可用于恢复文件系统。

文件的目录结构

Linux系统的目录结构采用文件名和文件描述信息分离的方法。文件目录由文件名和文件的索引节点号组成,一个目录项总共占用16B。其中文件名占14字节,索引节点号(或索引节点指针)占2字节。因此,64个(1K/16)目录条目可以存储在一个1 KB的磁盘块中,从而节省了系统查找和访问文件的时间。在640个FCB的文件目录中搜索文件时,平均只需要启动磁盘5次,大大降低了系统开销。

一个文件的磁盘索引节点占用64字节,主要包括文件标识、文件访问权限、文件物理地址、文件长度、文件连接系数、文件访问时间等一些重要信息。

文件的物理结构

Linux系统文件的物理结构采用混合索引方式来管理分配给文件的磁盘块。Linux文件系统的inode中有一个i.addr,用来存储文件的磁盘块数。

Linux系统文件按名称搜索。按文件名访问文件的过程如下:按文件名查找文件目录,查找文件的索引节点号;通过索引节点号搜索索引节点区,找到文件的索引点;根据索引节点中提供a. addr,找到磁盘上文件对应的块号序列;根据块号,找到文件内容。

由于EXT2文件系统采用了合理巧妙的文件系统结构和目录结构,文件系统的许多性能得到了优化。EXT2系统可以大大提高磁盘输入输出的速度,提高输入输出组织的灵活性和编程效率。因此,EXT2文件系统为开发嵌入式系统和实时应用系统提供了广阔的基础和手段。

FAT文件系统与NTFS文件系统目录的比较:FAT文件系统直接使用文件控制块作为文件目录,所以文件系统目录比较大,查询速度慢。使用索引节点作为文件目录对于一些小文件系统来说是可以的,但是对于较大的文件系统则不行。Linux系统的文件目录有:文件名和索引节点号。这使得Linux系统的文件目录更小,查询速度更快。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 文件系统结构是什么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情