Jump to content

High Performance File System

From Alfawiki
HPFS (High Performance File System)
Company typeFile system
IndustryComputer software
Founded1988
FounderMicrosoft, IBM
ProductsFile system for OS/2

HPFS (High Performance File System) is a file system created by Microsoft in partnership with others, launched in 1988 specifically for the OS/2 operating system to address the shortcomings of the FAT file system. It was introduced alongside OS/2 version OS/2 1.2 during the collaborative development between Microsoft and IBM.

Overview

HPFS enhanced FAT by providing several key features:

  • Support for mixed-case filenames compatible with multiple code pages
  • Extended file name lengths up to 255 characters, surpassing FAT's 8.3 naming convention
  • Improved disk space management by allocating storage in sectors rather than clusters
  • A design aimed at physically grouping related data on the disk
  • Minimization of data fragmentation
  • Use of extent-based allocation methods
  • Distinct timestamps recording creation, last modification, and last access times
  • Directory organization utilizing a B+ tree structure
  • Placement of the root directory near the disk’s center to accelerate access times

HPFS supports storing up to 64 KB of file metadata known as "extended attributes." IBM developed two separate IFS drivers for HPFS:

  • A standard driver featuring a 2 MB cache
  • HPFS386, available with select OS/2 server editions or as an add-on, which employs a cache size constrained only by available system memory

The HPFS386 driver operates as a 32-bit, ring 0 component written in assembly language, granting direct access to kernel and hardware resources. It incorporates SMB networking support for server daemons, providing enhanced performance and configurability compared to the ring 3 standard HPFS driver.

IBM’s licensing agreement for HPFS386 involved paying Microsoft per-copy royalties, reflecting their joint ownership stemming from the Windows-OS/2 partnership. Due to limitations inherent in HPFS—such as a maximum file size of 2 GB, restricted partition capacity, and prolonged disk checks following system crashes—IBM eventually transitioned to using the journaling file system, JFS, as an OS/2 replacement.

Third-party drivers have been developed to enable HPFS compatibility on DOS and Linux, while early versions of Windows NT (up to 3.51) included built-in support for HPFS.

Native support under Windows

Windows 95, 98, and Me do not offer native HPFS support; these systems often misinterpret NTFS partitions as "HPFS" due to overlapping filesystem identifiers.

Windows NT versions 3.1 and 3.5 feature native read/write capabilities for local HPFS volumes and can be installed on HPFS partitions. Windows NT 3.51 maintains this read/write functionality. However, beginning with Windows NT 4, the PINBALL.SYS driver responsible for HPFS access was removed; subsequent releases no longer include it. It is important to note that PINBALL.SYS supports HPFS volumes only up to 4 GB in size.

Following the end of its collaboration with IBM, Microsoft retained rights over OS/2 technologies including HPFS. Windows NT 3.1 was aimed at enterprise environments, supporting both HPFS and NTFS—offering larger storage capabilities than FAT12 or FAT16. Nevertheless, HPFS lacks journaling features, resulting in lengthier recovery processes after crashes as volume sizes increase. Tools such as CHKDSK must perform comprehensive filesystem scans for error detection, unlike NTFS which utilizes journaling to expedite recovery operations.

See also