Mac OS X 10.13起,苹果开始将既有的HFS+文件系统格式化的默认文件系统转换到APFS。那么你是否了解那些Mac上曾经广为流行的文件系统,包括MFS,HFS甚至UFS?
Macintosh 文件系统(MFS)
Macintosh 文件系统(MFS)是最初应用在Mac电脑上的文件系统。它支持20MB的最大容量,听起来是一个很小的数据,但在1984年Macintosh 128K推出时它的主要应用场景是400KB的Mac软盘,所以实际上在当年20MB算是天文数字。它支持255字符的文件名,执行MacRoman代码页。MFS不支持子目录。System 7是最后一代可以将MFS装上为读写的系统,Mac OS 8.0中MFS只能装上为只读,Mac OS 8.1开始Mac彻底抛弃了对MFS的支持。
MFS的推出的最重要的意义就是建立了Mac OS最基本的文件概念,包括resource fork「资源派生」和data fork「数据派生」,其中resource fork是文件最底层的结构,存储文件的结构数据,元数据等,而data fork则存储文件没有结构化的资源数据。resource fork在Mac OS应用程序上不可或缺,它存储了应用程序的图标、窗口大小、应用程序菜单的样式和内容等结构化的数据,并且可以通过Macintosh Toolbox中的API来调用。每个文件都可以包含resource fork。如此,Mac OS上的文件概念与PC完全不同;电脑通过读取resource fork来判断该文件的类型,并且Mac的文件都无需扩展名这一PC概念来正确地打开它们。
HFS与HFS+
HFS(Mac OS 标准格式)是很长时间中的Mac专有主要文件系统,也是苹果Open Firmware所支持的最基本的文件系统,非常常见于早期的Mac电脑的硬盘、软盘和光盘等。1984年随着苹果的第一代硬盘推出,HFS就在Macintosh上得到应用,它对比MFS是全新的设计,最初专注于硬盘等大容量存储场景,而不是在MFS的基础上改进。显而易见地,HFS不但保留了之前文件所设定的基本概念,更带来了极大的功能增强:应用了全新的目录文件,支持子目录结构等基本功能,支持最初的权限概念,支持更多的Mac文件属性,并且它随着Mac OS的更新不断更新。HFS的支持持续至今,Mac OS X 10.5 Leopard之前,HFS可以装上为读写;而之后只可以装上为只读。
而HFS+(Mac OS 扩充格式,或HFS扩展)则是Mac的专有大容量硬盘文件系统,在HFS的基础上加以改进。在1998年Mac OS 8.1时苹果首次带来了对HFS+的支持。HFS+抛弃了MacRoman,从而执行Unicode作为文件命名的编码标准。HFS+通过增加可分配块数目,降低单一文件的最大大小值,HFS+推出的第一目标是优化大容量硬盘的存储能力。例如,在一个4GB的硬盘上,一个仅包含4K信息的HFS文件需要64KB存储空间;而HFS+文件则只需要4KB。HFS+同样扩容了文件数量大小,并且极大地提升了单个文件的最大大小和硬盘容量到8EB,在如今这几乎都是无限的;而HFS则最大大小为2GB,最大仅支持2TB硬盘。HFS+的完整支持同样持续至今,直至Mac OS X 10.12 Sierra中它都作为系统的默认文件系统;在Mac OS X 10.13 High Sierra中,它被AFPS取代,后者优化了SSD性能,作为SSD上的默认文件系统。
HFS+出生在一个承上启下的时代,Copland为代号的Mac OS 8承载了苹果的现代化操作系统梦想,而HFS+又将为随后的Mac OS X提供基础。HFS+的兼容性要求苛刻。它只能作为PowerPC电脑的启动磁盘,并且只被Mac OS 8.1以上的系统版本支持。Mac OS X开始,由Mac OS X磁盘工具所格式化的HFS+支持Mac OS X的安装;分区表基础上的,由Mac OS X磁盘工具格式化的HFS+需要安装基于分区表的驱动程序,才能被Classic所读取。Mac OS 9所初始化的基于分区表的HFS+默认安装驱动程序。彻底取代HFS后HFS+作为Mac OS 9.2或更高版本的建议文件系统,被一路改进,增加多个分支后最终被APFS取代。
UFS
UFS在Macintosh上的应用源远流长,但时间不长,场景不多,不能撼动HFS的主流地位,也不能被Open Firmware读取用于直接启动电脑。A/UX是第一个在Mac上应用UFS(UFS System V Release 2)的操作系统,同样地还有一些第三方Linux;Rhapsody和Rhapsody内核的早期Mac OS X Server是第二个在Mac上应用UFS(Rhapsody UFS)的操作系统;Mac OS X的早期版本是第三个在Mac上应用UFS的操作系统。三种操作系统的UFS不能互相读取,例如,Mac OS X正式版不能读取Rhapsody UFS。
在Mac OS X承上启下的时代,UFS短暂亮相。Rhapsody内核的操作系统不能在HFS+上运行,系统必须被安装在Rhapsody UFS格式化的分区上;但由于Open Firmware不能直接启动UFS分区上的系统,需要一个HFS分区辅助引导操作系统。进入Darwin时代的Mac OS X早期版本,UFS曾被提供短暂的支持,但此时苹果已经提供在HFS+分区上安装的选项,UFS文件系统从未成为主流。一切Mac OS都不能装上UFS。
FAT(DOS 文件系统)
FAT(DOS 文件系统)从未作为Mac的默认文件系统,但Macintosh电脑在Mac OS下通过一个系统默认安装的控制板——PC Exchange(文件交换程序),就可以装上FAT的磁盘。System 7中苹果提供PC Exchange,以作为增强PC兼容性措施的一部分;而其他部分包括PC兼容卡也是非常有趣的,它通过一个486处理器,赋予了Macintosh在控制板的基础上同时运行DOS和Windows的能力。PC Exchange提供对FAT文件系统的完整支持,并且带来了对文件扩展名的映射,毕竟Mac OS的文件没有扩展名这一PC概念。
在Mac OS X下,Mac OS X不再有控制板这一形式的程序。Mac OS X是先进的UNIX操作系统,它使用完全不同类型的驱动程序提供FAT支持。
拓展阅读
- 从Mac OS到Mac OS X:从内到外的焕然一新,意义深远的跨越
- Mac OS X Developer Beta 2 & 3图赏:从Platinum到Aqua
- 这些Mac OS Finder的「笑脸」,你能认出几个?
- 小议Mac OS Classic的底层架构与Macintosh的固件沿革
- iBook与早期MacBook:Mac OS兼容性