博客专栏

EEPW首页 > 博客 > 超能课堂(281):常见文件系统格式介绍

超能课堂(281):常见文件系统格式介绍

发布人:超能网 时间:2021-07-23 来源:工程师 发布文章

在现代计算机中,文件系统(file system)是命名文件及放置文件的逻辑存储和恢复的系统,是操作系统用于明确存储设备或分区上的文件的方法和数据结构,也就是在存储设备上组织文件的方法,管理和存储文件的软件机构。我们日常见到的Windows、macOS、Linux甚至UNIX等操作系统,都有文件系统。不同的操作系统间,可以使用的文件系统格式也不一样。在日常生活里,可能会遇到在Windows里插入U盘或移动硬盘可以随意读取和写入,但到了Mac上却发现不能把资料放进去。

文件系统格式有很多,其结构、逻辑、存取速度、体积大小、安全性和稳定性等都不一样,同时面向的存储介质也有不同。这个问题如果细究起来会非常复杂,涉及到很多计算机软件方面的专业知识。接下来会介绍几种不同系统下的常见文件系统格式,包括了普通用户最常用的Windows系统,还有部分用户会使用的macOS系统,以及个别用户会接触到的Linux系统,让大家有个大致的了解。

Windows

FAT

FAT全称是File Allocation Table,即文件配置表,是在1977年为了管理磁盘而发明的。比尔盖茨是其中一位发明人,微软拥有部分专利。经过多次适配逐渐使用在硬盘上,也被后来的MS-DOS以及Windows 9x操作系统所使用,是当时的文件系统格式,使用了相当长的一段时间。

不过FAT有一个比较明显的缺点,当文件删除后写入新数据,不会将文件整理成完整片段再写入,用户长期使用后会使文件数据变得分散,最终会减慢读写速度。在过去Windows 9x操作系统时期,不少用户每隔一段时间就会使用系统里的工具进行碎片整理,以保证FAT文件系统的效率。后来随着硬盘容量的增大,硬盘进行碎片整理的时间会越来越长,FAT磁盘效率低的缺点更加明显,已经变得有点不适应发展需要了。

FAT使用广泛,几乎被所有操作系统支持。虽然早已不是Windows操作系统的主流文件系统格式了,但仍广泛存在于软盘、U盘和嵌入式设备上,适用于不同操作系统之间交换数据。在日常使用中,用户最容易接触到的是FAT32,常见于U盘,不过会有单个文件体积4GB的限制,随着数据量的增大,往后使用率会慢慢降低。

NTFS

NTFS全称是New Technology File System,最早出现于1993年,使用Windows NT内核的操作系统开始提供支持。从Windows 2000开始,包括后来的Windows XP直到现在我们使用的Windows 10,默认文件系统都是NTFS。

从Windows 9x时代过来的用户都会记得,当年Windows系统崩溃是常有的事情,对于喜欢折腾的用户来说,重装系统是家常便饭了。到了Windows XP时期,除了界面的巨大变化,在使用上最让人印象深刻的莫过于稳定性,重装系统的机率大幅度减少。NTFS文件系统具有错误预警功能、磁盘自我修复功能和日志功能三个功能,相比原来的FAT文件系统,NTFS文件系统在安全性、易用性和稳定性上都有了质的飞跃。

NTFS系统是一个日志文件系统,是为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式,提供长文件名、数据保护和恢复,能通过目录和文件许可实现安全性,并支持跨越分区。在NTFS系统中,除了写入信息,还会对操作进行记录,当NTFS文件系统在发生错误的时候,利用日志功能可以修复数据,使得系统恢复变得更加容易。

在日常使用中,个别使用Mac的用户可能会遇到不能正常使用NTFS文件系统格式U盘的情况。这是因为在macOS系统里,默认对NTFS文件系统格式的U盘只能读取,不能写入、删除或修改,需要额外的工具才可以。

exFAT

exFAT全称是Extended File Allocation Table File System,意思是扩展FAT,即扩展文件分配表。这是微软专门为闪存设备设计的文件系统,在Windows Embeded 5.0开始提供支持,一方面可以解决NTFS不太适用于闪存的问题(不断读写可能会影响使用寿命),另一方面是为了解决FAT32单个文件体积4GB限制等问题。

如果用户使用Windows 8及更高版本的操作系统,可原生支持exFAT启动,同时支持以特殊方式安装在exFAT分区中。由于exFAT文件系统在Windows,Linux以及macOS上都能进行读写操作,而且支持大文件,这些特性让exFAT使用在U盘上就非常适合了。虽然exFAT兼容性比起FAT32会差一些,但长远来说使用率会越来越高。

macOS

HFS/HFS+

HFS全称是Hierarchical File System,即分层文件系统,也称Mac OS 标准格式。这是由苹果开发可用于软盘、磁盘和光盘的文件系统格式,首次出现在1985年。HFS用于取代更为老旧的MFS(Macintosh File System),即Macintosh 文件系统。很长时间内,HFS都是Mac专有的主要文件系统,也是苹果Open Firmware所支持的最基本的文件系统。

HFS+称为Mac OS 扩展格式,是苹果在1998年发布(首见于Mac OS 8.1)的Mac专有大容量硬盘文件系统,以改善HFS对磁盘空间的地址定位效率低下的问题,并加以改进。HFS+使用了相当长的时间,差不多有20年的时间,一直到macOS 10.12。不过HFS+是一个饱受争议的文件系统格式,Linux之父Linus Benedict Torvalds曾称HFS+是有史以来最烂的文件系统,原话是:

“Quite frankly, HFS+ is probably the worst filesystem ever. Christ what shit it is.”

当然,Linus的吐槽能力在业内是很出名的,值得一提的经典事件不止一两次。

APFS

APFS全称Apple File System,即Apple 文件系统。随着2017年苹果推出macOS10.13,APFS取代了 HFS+,成为Mac电脑所使用的默认文件系统。新的文件系统具有强加密、空间共享、磁盘快照、快速目录大小统计等特性,以及改进的文件系统基础,优化了SSD性能。

随着计算机技术的发展,CPU多核心、内存和硬盘的容量不断增大、存储介质从HDD逐渐转向SSD等,硬件的改变需要软件的配合,而HFS+已不能适应新时代硬件的发展节奏了。APFS不但适用于闪存/SSD存储,还可以与HDD和外置直连储存设备的低版本系统配合使用。值得一提的是,APFS的开发和设计是从2014年开始的,而且是从零开始构建,前后仅用了三年的时间,可以说非常高效。

Linux

Ext2/Ext3

Ext2全称Second Extended Filesystem,是Linux内核所使用的文件系统,首次出现于1993年,是许多早期Linux发行版默认的文件系统。Ext2可以说的Linux系统中使用最多的一种文件系统,其存取文件的性能极好,CPU占用率极低,既可以用在磁盘这样的标准存储设备,也能用在磁盘等移动存储设备上。

Ext3全称Third Extended Filesystem,这也是不少Linux发行版默认的文件系统,首次出现于1999年。Ext3属于一种日志文件系统,是对Ext2的扩展,并兼容Ext2,两者共享相同的工具集,而且两种文件系统之间进行转换非常容易。简单来说,Ext3就是Ext2基础上加入日志功能,实现了三个级别的日志记录方式,包括日记(journal))、顺序(ordered)和回写(writeback)。

在Ext3文件系统里,会将整个磁盘的写入动作完整记录在磁盘的某个区域上,详细记录每个细节,以便有需要的时候可以回溯追踪。即使在某个过程被中断,系统可以根据记录重整,动作会非常迅速。

Ext4

Ext4全称Fourth Extended Filesystem,是在Ext3基础上新的高级功能,首次发布于2006年。由于改动导致Ext3变得不稳定,最终从Ext3中剥离并单独发展。经过了一段时间的不断改进,Ext4才变得稳定,成为现今大部分Linux发行版默认的文件系统。

在功能上,Ext4和Ext3非常相似,但支持大文件系统,提高了对碎片的抵抗力,有更高的性能以及更好的时间戳。由于在Ext4开发过程中仍依赖于不少旧技术,存在一定的局限性,但在Linux下一代文件系统诞生前还会不断改进,以适应现阶段硬件的发展需要。未来一段时间内,Ext4还会继续开发新的功能,包括元数据校验和、一流的配额支持和大分配块。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



关键词: 系统

相关推荐

技术专区

关闭