HPFS

HPFS (High Performance File System) è un file system creato appositamente per il sistema operativo OS/2 per superare le limitazioni del file system FAT. Fu scritto da Gordon Letwin e altri della Microsoft e aggiunto alla versione 1.2 di OS/2, a quel tempo ancora un’impresa congiunta di Microsoft e IBM, e rilasciato nel 1988.

Panoramica
Rispetto a FAT, HPFS fornisce una serie di funzionalità aggiuntive:

  • Supporto per nomi di file con case misti, in diverse codepage
  • Supporto per nomi di file lunghi (255 caratteri rispetto allo schema di denominazione 8.3 di FAT)
  • Utilizzo più efficiente dello spazio su disco (i file non vengono archiviati utilizzando cluster a più settori ma in base al settore)
  • Un’architettura interna che mantiene gli elementi correlati vicini tra loro sul volume del disco
  • Meno frammentazione dei dati
  • Allocazione dello spazio basata sull’estensione
  • Date separate per l’ultima modifica, l’ultimo accesso e la creazione (in contrapposizione alla data di sola ultima modifica nelle implementazioni FAT attuali)
  • Struttura ad albero B+ per le directory
  • Directory root situata nel punto centrale, anziché all’inizio del disco, per un accesso medio più veloce

HPFS può anche conservare 64 KB di metadati (“attributi estesi”) per file.

IBM offre due tipi di driver IFS per questo file system:

  • Quello standard con una cache limitata a 2 MB
  • HPFS386 fornito con alcune versioni server di OS/2 o come componente aggiuntivo per le versioni server non fornite con esso

La cache di HPFS386 è limitata dalla quantità di memoria disponibile nella memoria di sistema di OS/2 ed è stata implementata in linguaggio assembly a 32 bit. HPFS386 è un driver ad anello 0 (che consente l’accesso diretto all’hardware e l’interazione diretta con il kernel) con proprietà di rete SMB integrate utilizzabili da vari demoni del server, mentre HPFS è un driver ad anello 3. Pertanto, HPFS386 è più veloce di HPFS e altamente ottimizzato per le applicazioni server. È inoltre altamente personalizzabile da parte di amministratori esperti.

Sebbene IBM avesse ancora i diritti su HPFS, il suo accordo con Microsoft per continuare a concedere in licenza la versione HPFS386 era subordinato al pagamento da parte della società a Microsoft di una tariffa di licenza per ogni copia venduta. Questo è stato il risultato della collaborazione tra Microsoft e IBM che ha dato a entrambi il diritto di utilizzare la tecnologia Windows e OS/2.

A causa della dipendenza da Microsoft, della dimensione limitata della partizione, del limite di dimensione del file di 2 GB e dei lunghi tempi di controllo del disco dopo un crash, IBM ha portato il file system journaling, JFS, su OS/2 come sostituto.

DOS e Linux supportano HPFS tramite driver di terze parti. Le versioni di Windows NT 3.51 e precedenti avevano il supporto nativo per HPFS.

Supporto nativo sotto Windows
Windows 95 e i suoi successori Windows 98 e Windows Me possono leggere e scrivere HPFS solo se mappati tramite una condivisione di rete; non possono leggerlo da un disco locale. Hanno elencato le partizioni NTFS dei computer in rete come “HPFS”, perché NTFS e HPFS condividono lo stesso numero di identificazione del filesystem nella tabella delle partizioni.

Windows NT 3.1 e 3.5 dispongono del supporto nativo di lettura/scrittura per i dischi locali e possono anche essere installati su una partizione HPFS.

Windows NT 3.51 può anche leggere e scrivere da unità locali formattate HPFS. A partire da Windows NT 4 il driver del filesystem PINBALL.SYS che consente l’accesso in lettura/scrittura non viene più fornito. Le versioni successive di Windows non vengono fornite con questo driver. Tieni presente che questo driver è limitato a volumi HPFS da 4 GB.

Microsoft ha mantenuto i diritti sulle tecnologie OS/2, incluso il filesystem HPFS, dopo aver cessato la collaborazione con IBM. Poiché Windows NT 3.1 è stato progettato per un utilizzo più rigoroso (di classe enterprise) rispetto alle versioni precedenti di Windows, includeva il supporto per HPFS (e NTFS) conferendogli una capacità di archiviazione maggiore rispetto ai file system FAT12 e FAT16.

Tuttavia, poiché HPFS non dispone di un journal, qualsiasi ripristino dopo un arresto imprevisto o un altro stato di errore richiede progressivamente più tempo man mano che il filesystem cresce. Un’utilità come CHKDSK dovrebbe scansionare ogni voce nel filesystem per garantire che non siano presenti errori, un problema che è notevolmente ridotto su NTFS, che riproduce semplicemente il journal.