文件系统
概述
空闲空间示例:每簇4,096字节的NTFS文件系统,每个文件5字节,共100,000个文件,逻辑字节总共500,000字节,但由于一个文件需独占整数倍个簇(最后一簇无论是否占满,仍会独占一整个簇),实际占用磁盘空间409,600,000字节(每个文件5字节独占一个簇)
文件系统是一种用于向用户提供底层数据访问的机制。它将设备中的空间划分为特定大小的块(或者称为簇),一般每块512字节。数据存储在这些块中,大小被修正为占用整数个块。由文件系统软件来负责将这些块组织为文件和目录,并记录哪些块被分配给了哪个文件,以及哪些块没有被使用。
不过,文件系统并不一定只在特定存储设备上出现。它是数据的组织者和提供者,至于它的底层,可以是磁盘,也可以是其它动态生成数据的设备(比如网络设备)。
文件名
在文件系统中,文件名是用于定位存储位置。大多数的文件系统对文件名的长度有限制。在一些文件系统中,文件名是大小写不敏感(如“FOO”和“foo”指的是同一个文件);在另一些文件系统中则大小写敏感。大多现今的文件系统允许文件名包含非常多的Unicode字符集的字符。然而在大多数文件系统的界面中,会限制某些特殊字符出现在文件名中。(文件系统可能会用这些特殊字符来表示一个设备、设备类型、目录前缀、或文件类型)然而,这些特殊的字符会允许存在于用双引号内的文件名。方便起见,一般不建议在文件名中包含特殊字符。
元数据(Metadata)
其它文件保存信息常常伴随着文件自身保存在文件系统中。文件长度可能是分配给这个文件的区块数,也可能是这个文件实际的字节数。文件最后修改时间也许记录在文件的时间戳中。有的文件系统还保存文件的创建时间,最后访问时间及属性修改时间。(不过大多数早期的文件系统不记录文件的时间信息)其它信息还包括文件设备类型(如:区块数,字符集,套接口,子目录等等),文件所有者的ID,组ID,还有访问权限(如:只读,可执行等等)。
安全访问
针对基本文件系统操作的安全访问可以通过访问控制列表或 capabilities ( 英语 : capability (computers) ) 实现。研究表明访问控制列表难以保证安全,这也就是研发中的文件系统倾向于使用capabilities的原因。然而目前多数商业性的文件系统仍然使用访问控制列表。
类型
磁盘文件系统
磁盘文件系统是一种设计用来利用数据存储设备来保存计算机文件的文件系统,最常用的数据存储设备是磁盘驱动器,可以直接或者间接地连接到计算机上。例如:FAT、exFAT、NTFS、HFS、HFS+、EXT2、EXT3、EXT4、ODS-5、btrfs、XFS、UFS。有些文件系统是进程文件系统(也有译作日志文件系统)或者追踪文件系统。
光盘
ISO 9660和UDF被用于CD、DVD与蓝光光盘。
闪存文件系统
闪存文件系统 是一种设计用来在闪存上储存文件的文件系统。随着移动设备的普及和闪存容量的增加,这类文件系统越来越流行。
尽管磁盘文件系统也能在闪存上使用,但闪存文件系统是闪存设备的首选,理由如下:
擦除区块:闪存的区块在重新写入前必须先进行擦除。擦除区块会占用相当可观的时间。因此,在设备空闲的时候擦除未使用的区块有助于提高速度。
随机访问:由于在磁盘上寻址有很大的延迟,磁盘文件系统有针对寻址的优化,以尽量避免寻址。但闪存没有寻址延迟。
写入平衡(Wear levelling):闪存中经常写入的区块往往容易损坏。闪存文件系统的设计可以使数据均匀地写到整个设备。
日志文件系统具有闪存文件系统需要的特性,这类文件系统包括JFFS2和YAFFS。也有为了避免日志频繁写入而导致闪存寿命衰减的非日志文件系统,如exFAT。
数据库文件系统
文件管理方面的一个新概念是一种基于数据库的文件系统的概念。不再(或者不仅仅)使用分层结构管理,文件按照他们的特征进行区分,如文件类型、专题、作者或者亚数据进行区分。于是文件检索就可以按照SQL风格甚至自然语言风格进行。
例如BFS 和WinFS。
网络文件系统
网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制。
与操作系统的关系
DOS / Microsoft Windows支持的文件系统
在Windows的command shell下使用DIR命令去显示C:\Temp文件夹
注意:除非NT安装了FAT32 For Windows NT 4.0否则NT是不支持FAT32
Linux支持的文件系统
随着Linux的不断发展,它所支持的文件格式系统也在迅速扩充,Linux系统核心可以支持十多种文件系统类型:Btrfs、JFS、ReiserFS、ext、ext2、ext3、ext4、XFS、ISO 9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。 注意:部分Linux发行版默认不支持NTFS文件系统,解决方法是安装NTFS-3G或ufsd等NTFS驱动程序。部分Linux发行版对NTFS的支持度并不高。
UNIX及BSD操作系统下的文件系统
柏克莱加州大学开发早期的伯克利快速文件系统(Berkeley Fast File System),再由各UNIX厂商开发不同的文件系统,包括IRIX上的XFS、IBMAIX的JFS、HP HP-UNIX的VxFS、迪吉多Tru64的AdvFS 及Solaris的ZFS。
macOS(Mac OS X)的文件系统
从2016年发布的macOS Sierra起,使用苹果文件系统(APFS)。从1998年到2016年间使用HFS+,再早采用HFS。
Bell实验室的PLAN9文件系统
OpenVMS的文件系统
OpenVMS为Wang Mainframe所使用的Operation System,以搭配Wang王安博士发明的Magnetic Drum的存储设备。
IBM大型机MVS的文件系统
参见
扩展名
免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。
- 有价值
- 一般般
- 没价值