High Performance File System
HPFS is a file system created specifically for the OS/2 operating system to improve upon the limitations of the FAT file system. It was written by Gordon Letwin and others at Microsoft and added to OS/2 version 1.2, at that time still a joint undertaking of Microsoft and IBM, and released in 1988.
Overview
Compared with FAT, HPFS provided a number of additional capabilities:- Support for mixed case file names, in different code pages
- Support for long file names
- More efficient use of disk space
- An internal architecture that keeps related items close to each other on the disk volume
- Less fragmentation of data
- Extent-based space allocation
- Separate datestamps for last modification, last access, and creation
- B+ tree structure for directories
- Root directory located at the midpoint, rather than at the beginning of the disk, for faster average access
IBM offers two kinds of IFS drivers for this file system:
- The standard one with a cache limited to 2 MB
- HPFS386 provided with certain server versions of OS/2, or as added component for the server versions that did not come with it
Though IBM still had rights to HPFS, its agreement with Microsoft to continue licensing the HPFS386 version was contingent upon the company paying Microsoft a licensing fee for each copy sold. This was a result of the Microsoft and IBM collaboration that gave both the right to use Windows and OS/2 technology.
Due to the Microsoft dependence, limited partition size, file size limit of 2 GB and the long disk-check times after a crash, IBM ported the journaling file system, JFS, to OS/2 as a substitute.
DOS and Linux support HPFS via third-party drivers. Windows NT versions 3.51 and earlier had native support for HPFS.
Native support under Windows
Windows 95 and its successors Windows 98 and Windows Me have no support for HPFS., because NTFS and HPFS share the same filesystem identification number in the partition table.Windows NT 3.1 and 3.5 have native read/write support for local disks and can even be installed onto an HPFS partition.
Windows NT 3.51 can also read and write from local HPFS formatted drives. Starting with Windows NT 4 the filesystem driver PINBALL.SYS enabling the read/write access is not shipped anymore. Later Windows versions do not ship with this driver. Note that this driver is limited to 4GB HPFS volumes.
Microsoft retained rights to OS/2 technologies, including the HPFS filesystem, after they ceased collaboration with IBM. Since Windows NT 3.1 was designed for more rigorous use than previous versions of Windows, it included support for HPFS giving it a larger storage capacity than the FAT12 and FAT16 filesystems. However, since HPFS lacks a journal, any recovery after an unexpected shutdown or other error state takes progressively longer as the filesystem grows. A utility such as CHKDSK would need to scan each entry in the filesystem to ensure no errors are present, a problem which is vastly reduced on NTFS, which simply replays the journal.