文件系统
发布时间:2026-08-09 | 浏览:10
计算机 的 文件系统 是一种存储和组织计算机数据的方法,它使得对其存取和查找变得容易,文件系统使用 文件 和 树形目录 的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。在写入新数据之前,用户不必关心硬盘上的那个块地址没有被使用,硬盘上的存储空间管理(分配和释放)功能由文件系统自动完成,用户只需要记住数据被写入到了哪个文件中。
文件系统通常使用 硬盘 和 光盘 这样的 存储设备 ,并维护文件在设备中的物理位置。但是,实际上文件系统也可能仅仅是一种访问资料的界面而已,实际的数据可能是通过网络协议(如 NFS 、 SMB 、 9P 等)提供的或者暂存于内存上,甚至可能根本没有对应的文件(如 proc文件系统 )。
严格地说,文件系统是一套实现了 数据 的存储、分级组织、存取和获取等操作的 抽象数据类型 ( Abstract data type )。
文件系统是一种用于向用户提供底层数据存取的机制。它将设备中的空间划分为特定大小的块(或者称为 簇 ),一般每块512字节。数据存储在这些块中,大小被修正为占用整数个块。由文件系统软件来负责将这些块组织为文件和目录,并记录哪些块被分配给了哪个文件,以及哪些块没有被使用。
不过,文件系统并不一定只在特定存储设备上出现。它是数据的组织者和提供者,至于它的底层,可以是磁盘,也可以是其它动态生成数据的设备(比如网络设备)。
在文件系统中,文件名是用于定位存储位置。大多数的文件系统对文件名的长度有限制。在一些文件系统中,文件名是 大小写不敏感 (如“AAA”和“aaa”指的是同一个文件);在另一些文件系统中则大小写敏感。大多现今的文件系统允许文件名包含非常多的 Unicode 字符集的字符。然而在大多数文件系统的界面中,会限制某些特殊字符出现在文件名中。(文件系统可能会用这些特殊字符来表示一个设备、设备类型、目录前缀、或文件类型)然而,这些特殊的字符会允许存在于用双引号内的文件名。方便起见,一般不建议在文件名中包含特殊字符。
其它文件保存信息常常伴随着文件自身保存在文件系统中。文件长度可能是分配给这个文件的区块数,也可能是这个文件实际的字节数。文件最后修改时间也许记录在文件的时间戳中。有的文件系统还保存文件的创建时间,最后存取时间及属性修改时间。(不过大多数早期的文件系统不记录文件的时间信息)其它信息还包括文件设备类型(如:区块数,字符集,套接口,子目录等等),文件所有者的ID,组ID,还有存取权限(如:只读,可执行等等)。
针对基本文件系统操作的安全访问可以通过 访问控制列表 或 capabilities ( 英语 : capability (computers) ) 实现。研究表明访问控制列表难以保证安全,这也就是研发中的文件系统倾向于使用capabilities的原因。然而目前多数商业性的文件系统仍然使用访问控制列表。
磁盘文件系统是一种设计用来利用 数据存储设备 来保存 计算机文件 的文件系统,最常用的 数据存储设备 是 磁盘驱动器 ,可以直接或者间接地连接到计算机上。例如: 档案配置表 ( FAT12 、 FAT16 、 FAT32 、 exFAT )、 New Technology File System 、 分层档案系统 HFS、 HFS Plus 、 延伸档案系统 (ext1、 ext2 、 ext3 、 ext4 )、 ODS 、 btrfs 、 XFS 、 UFS 、 ZFS 。有些文件系统是 行程文件系统 (也有译作 日志文件系统 )或者 追踪文件系统 ( 英语 : Versioning file system ) 。
ISO 9660 和 UDF 被用于 CD 、 DVD 与 蓝光光碟 。
闪存文件系统 是一种设计用来在 闪存 上储存文件的文件系统。随着移动设备的普及和闪存容量的增加,这类文件系统越来越流行。
尽管磁盘文件系统也能在闪存上使用,但闪存文件系统是闪存设备的首选,理由如下:
擦除区块:闪存的区块在重新写入前必须先进行擦除。擦除区块会占用相当可观的时间。因此,在设备空闲的时候擦除未使用的区块有助于提高速度,而写入数据时也可以优先使用已经擦除的区块。
随机访问:由于在磁盘上 寻址 有很大的延迟,磁盘文件系统有针对寻址的优化,以尽量避免寻址。但闪存没有寻址延迟。
写入平衡(Wear levelling):闪存中经常写入的区块往往容易损坏。闪存文件系统的设计可以使数据均匀地写到整个设备。
日志文件系统 具有闪存文件系统需要的特性,这类文件系统包括 JFFS2 和 YAFFS 。也有为了避免日志频繁写入而导致闪存寿命衰减的非日志文件系统,如 exFAT 。
文件管理方面的一个新概念是一种基于数据库的文件系统的概念。不再(或者不仅仅)使用分层结构管理,文件按照他们的特征进行区分,如文件类型、专题、作者或者 亚数据 进行区分。于是文件检索就可以按照 SQL 风格甚至自然语言风格进行。
例如 BFS [ 1 ] 和 WinFS 。
网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制。
DOS / Microsoft Windows支援的档案系统
注意:除非NT4安装了FAT32 For Windows NT 4.0否则该系统不支援FAT32
随着Linux的不断发展,它所支持的文件系统也在迅速扩充,Linux系统核心可以支持十多种文件系统类型: Btrfs 、 JFS 、 ReiserFS 、 exFAT 、 ext 、 ext2 、 ext3 、 ext4 、 XFS 、 ISO 9660 、 Minix 、 MSDOS 、 UMSDOS 、 VFAT 、 NTFS (Linux Kernel内建的NTFS驱动程式,写入功能不稳定)、 HPFS 、 NFS 、 SMB 、 SysV 、 PROC 等。 注意:部分Linux发行版的Kernel预设不编译Kernel内建的 NTFS 文件系统支援,常见的在Linux下读写NTFS的解决方法是安装 NTFS-3G 或ufsd等NTFS驱动程序。部分Linux发行版对NTFS的支援度并不高。
UNIX及BSD操作系统下的文件系统
柏克莱加州大学 开发早期的 伯克利快速文件系统 (Berkeley Fast File System),再由各UNIX厂商开发不同的文件系统,包括IRIX上的 XFS 、IBM AIX 的 JFS 、HP HP-UNIX 的 VxFS 、 迪吉多 Tru64的 AdvFS [ 2 ] 及 Solaris 的 ZFS 。
macOS(Mac OS X)的文件系统
从1998年到2016年间使用 HFS+ ,再早采用 HFS 。从2016年发布的 macOS Sierra 起,使用 苹果文件系统 (APFS)。
Bell实验室的PLAN9文件系统
OpenVMS为Wang Mainframe所使用的Operation System,以搭配Wang王安博士发明的Magnetic Drum的储存设备。
^ (英文) Giampaolo, Dominic. Practical File System Design with the Be File System (PDF) . Morgan Kaufmann. 1999 [ 2010-12-27 ] . ISBN 1-55860-497-9 . ( 原始内容 (PDF) 存档于2017-02-13).
^ (英文) AdvFS內部設計文件(AdvFS Design Docs) . SourceForge.net . [ 2010-12-27 ] . (原始内容 存档 于2020-06-02).
Unix的文件系统 ( 英语 : Unix filesystem )
ADFS ( 英语 : Advanced Disc Filing System )
Amiga FFS ( 英语 : Amiga Fast File System )
Amiga OFS ( 英语 : Amiga Old File System )
AthFS ( 英语 : AtheOS File System )
BFS Be文件系统 ( 英语 : Be File System ) 启动文件系统 ( 英语 : Boot File System )
Be文件系统 ( 英语 : Be File System )
启动文件系统 ( 英语 : Boot File System )
DFS ( 英语 : Disc Filing System )
EFS 加密文件系统 区段文件系统 ( 英语 : Extent File System )
区段文件系统 ( 英语 : Extent File System )
Episode ( 英语 : Episode filesystem )
ext ext2 ext3 ext3cow ( 英语 : ext3cow ) ext4
ext3cow ( 英语 : ext3cow )
Files-11 ( 英语 : Files-11 )
HAMMER ( 英语 : HAMMER )
HTFS ( 英语 : High Throughput File System )
IBM通用并行文件系统 ( 英语 : IBM General Parallel File System )
LFS ( 英语 : Log-structured File System (BSD) )
MFS Macintosh文件系统 ( 英语 : Macintosh File System ) Tivo媒体文件系统 ( 英语 : Tivo Media File System )
Macintosh文件系统 ( 英语 : Macintosh File System )
Tivo媒体文件系统 ( 英语 : Tivo Media File System )
NetWare文件系统 ( 英语 : NetWare File System )
Next3 ( 英语 : Next3 )
NILFS ( 英语 : NILFS ) NILFS2 ( 英语 : NILFS2 )
NILFS2 ( 英语 : NILFS2 )
NSS ( 英语 : Novell Storage Services )
OneFS ( 英语 : OneFS distributed file system )
PFS ( 英语 : Professional File System )
QFS ( 英语 : QFS )
QNX4FS ( 英语 : QNX4FS )
ReiserFS Reiser4 ( 英语 : Reiser4 )
Reiser4 ( 英语 : Reiser4 )
Reliance ( 英语 : Reliance (file system) )
Reliance Nitro ( 英语 : Reliance Nitro )
SFS ( 英语 : Smart File System )
Soup ( 英语 : Soup (Apple) )
Tux3 ( 英语 : Tux3 )
VxFS ( 英语 : Veritas File System )
WAFL ( 英语 : Write Anywhere File Layout )
Xiafs ( 英语 : Xiafs )
Xsan ( 英语 : Xsan )
zFS ( 英语 : zFS (z/OS file system) )
HSF ( 英语 : High Sierra Format )
ISO 13490 ( 英语 : ISO 13490 )
CHFS ( 英语 : CHFS )
JFFS ( 英语 : JFFS )
NILFS ( 英语 : NILFS ) NILFS2 ( 英语 : NILFS2 )
NILFS2 ( 英语 : NILFS2 )
NVFS ( 英语 : Non-Volatile File System )
CXFS ( 英语 : CXFS )
GFS2 ( 英语 : GFS2 )
OCFS2 ( 英语 : OCFS2 )
OrangeFS ( 英语 : OrangeFS )
PVFS ( 英语 : Parallel Virtual File System )
QFS ( 英语 : Quantcast File System )
Xsan ( 英语 : Xsan )
AFS ( OpenAFS )
GPFS ( 英语 : IBM General Parallel File System )
POHMELFS ( 英语 : POHMELFS )
AXFS ( 英语 : AXFS )
启动文件系统 ( 英语 : Boot File System )
CDfs ( 英语 : CDfs )
光盘文件系统 ( 英语 : Compact Disc File System )
Davfs2 ( 英语 : Davfs2 )
LTFS ( 英语 : Linear Tape File System )
MVFS ( 英语 : Rational MultiVersion File System )
UMSDOS ( 英语 : FAT filesystem and Linux )
UnionFS ( 英语 : UnionFS )
WBFS ( 英语 : WBFS )
configfs ( 英语 : configfs )
debugfs ( 英语 : debugfs )
kernfs ( 英语 : kernfs (BSD) )
Rubberhose ( 英语 : Rubberhose (file system) )
集群 全局 ( 英语 : Global file system ) 网格 ( 英语 : Grid File System ) 自我认证 ( 英语 : Self-certifying File System )
全局 ( 英语 : Global file system )
网格 ( 英语 : Grid File System )
自我认证 ( 英语 : Self-certifying File System )
日志结构 ( 英语 : Log-structured file system )
面向记录 ( 英语 : Record-oriented filesystem )
语义 ( 英语 : Semantic file system )
隐写 ( 英语 : Steganographic file system )
合成 ( 英语 : Synthetic file system )
版本 ( 英语 : Versioning file system )
数据擦洗 ( 英语 : Data scrubbing )
原地执行 ( 英语 : Execute in place )
权限 Modes ( 英语 : Modes (Unix) ) 粘滞位
Modes ( 英语 : Modes (Unix) )
文件系统API ( 英语 : File system API ) 可安装文件系统