可安装文件系统

历史

在IBM和微软联合开发OS/2时，他们意识到FAT文件系统没有提供现代操作系统所需要的一些特性，因此微软开始开发代号为“Pinball”的高性能文件系统（HPFS）。
相比FAT在操作系统内核中编写代码，微软开发了一个基于驱动程序的文件系统API，以便他们和其他开发者可以在不对内核做修改的情况下添加新文件系统。
当微软停止就OS/2的开发时，IBM继续使用该IFS接口，而微软在Windows NT中实现了类似的接口。

Windows 3.11和9x中的IFS

IFSHLP.SYS（Installable File System Helper）是一个MS-DOS设备驱动程序，最早作为微软Windows 3.11的一部分发布。它以绕过16位DOS API并确保没有其他实模式驱动程序拦截INT 21h调用的方式使Windows 386增强模式下支持原生32位文件访问。
IFSHLP.SYS的保护模式对应Windows 3.11中的IFSMGR.386和Windows 95以及Windows 98中的IFSMGR.VXD。

Windows NT中的IFS

IFS API是Windows Driver Kit的一部分。
当微软停止开发OS/2并专注于当时称为OS/2 NT的系统时，他们采用了IFS的想法与HPFS文件系统。
相比原来的四份方案，NT IFS被重新设计为两份方案，microIFS和miniIFS被从方案中移除，IFS和Helper保持不变。Windows NT 4.0中增添了碎片整理助手（DEFRAG）。微软原NTLDR被编写为从FAT、HPFS或NTFS编写NT内核，不过随后的版本放弃了对HPFS的支持。上述所有驱动程序和助手程序都是32位PE可执行文件。FAT文件系统从内核中移除，转移到一个IFS，并利用32位处理能力进行了大量性能优化（称为FASTFAT）。
最初的Windows NT 3.1包含FAT、HPFS (Pinball)和新创建的NTFS驱动程序，以及一个新且改进的CD-ROM文件系统驱动程序，其支持Microsoft Joliet文件系统所用的长文件名。
Windows NT 3.51向NTFS和IFS接口增添了单个文件的压缩。Windows NT 4.0中，HPFS被移除。在Windows 2000中，FASTFAT的更新增添了FAT32和通用光盘格式（UDF）的支持。
Windows 2000修改了IFS接口以增添单个文件的加密能力。
网络共享文件系统和防病毒程序也使用IFS实现。
苹果公司自Mac OS X 10.6的Boot Camp中开始包含只读的HFS+驱动程序，以供Windows XP、Windows Vista和Windows 7使用。