HPFS(High Performance File System)は、FATファイルシステムの限界を克服するために、OS/2オペレーティングシステム専用に開発されたファイルシステムです。マイクロソフトのゴードン・レトウィンらが開発し、当時マイクロソフトとIBMの共同開発であったOS/2バージョン1.2に追加され、 1988年にリリースされました。
FATと比較して、HPFSは以下のような多くの追加機能を提供した。
HPFSは、ファイルごとに最大64KBのメタデータ(「拡張属性」)を保持することもできます。
IBMはこのファイルシステム向けに2種類のIFSドライバを提供しています。
HPFS386のキャッシュは、OS/2のシステムメモリ領域[ 1 ]で使用可能なメモリ量によって制限されており、32ビットアセンブリ言語で実装されています。HPFS386は、リング0ドライバ(ハードウェアへの直接アクセスとカーネルとの直接的なやり取りが可能)であり、さまざまなサーバーデーモンで使用できる組み込みのSMBネットワーク機能を備えています。一方、HPFSはリング3ドライバです。そのため、HPFS386はHPFSよりも高速で、サーバーアプリケーション向けに高度に最適化されています。また、経験豊富な管理者による高度なチューニングも可能です。
IBMは依然としてHPFSの権利を保有していたものの、HPFS386版のライセンス供与を継続するためのMicrosoftとの契約は、販売されたコピーごとにライセンス料をIBMに支払うことを条件としていた。これは、MicrosoftとIBMの協力関係によって両社がWindowsとOS/2の技術を使用する権利を得た結果である。
Microsoftへの依存、パーティションサイズの制限、2GBのファイルサイズ制限 、クラッシュ後のディスクチェック時間の長さといった問題があったため、IBMは代替手段としてジャーナリングファイルシステムであるJFSをOS/2に移植した。
DOSとLinuxは、サードパーティ製ドライバを介してHPFSをサポートしています。Windows NTバージョン3.51以前のバージョンは、HPFSをネイティブでサポートしていました。
Windows 95とその後継バージョンであるWindows 98およびWindows Meは、HPFSをサポートしていません。ネットワーク接続されたコンピュータのNTFSパーティションは「HPFS」と表示されていましたが、これはNTFSとHPFSがパーティションテーブル内で同じファイルシステム識別番号を共有しているためです。
Windows NT 3.1および3.5は、ローカルディスクの読み書きをネイティブでサポートしており、HPFSパーティションにもインストールできます。
Windows NT 3.51では、ローカルの HPFS フォーマットのドライブへの読み書きも可能です。Windows NT 4以降では、読み書きアクセスを可能にするファイルシステムドライバPINBALL.SYS は同梱されなくなりました。それ以降の Windows バージョンにもこのドライバは含まれていません。なお、このドライバは 4GB の HPFS ボリュームに制限されています。
マイクロソフトは、IBMとの提携を解消した後も、HPFSファイルシステムを含むOS/2テクノロジーの権利を保持しました。Windows NT 3.1は、以前のバージョンのWindowsよりも厳格な(エンタープライズクラスの)使用を想定して設計されていたため、HPFS(およびNTFS)をサポートし、FAT12およびFAT16ファイルシステムよりも大きなストレージ容量を実現しました。しかし、HPFSにはジャーナルがないため、予期しないシャットダウンやその他のエラー状態からの復旧には、ファイルシステムが大きくなるにつれて徐々に時間がかかります。CHKDSKなどのユーティリティは、ファイルシステム内の各エントリをスキャンしてエラーがないことを確認する必要がありますが、ジャーナルを再生するだけのNTFSではこの問題は大幅に軽減されます。