Tutti i dispositivi di memorizzazione dei MacIntosh, ad esclusione dei floppy, sono partizionati su uno o più volumi. I volumi contengono quattro tipi di voci: file, directory, directory concatenate e file concatenati. Ogni voce è descritta da un record catalogo, analogo agli inode Unix. I record catalogo sono organizzati su disco in un albero bilanciato (B-tree). Solo un file può occupare spazio fuori da questi record catalogo.
Un file MacIntosh contiene due componenti o fork. Il fork di risorse è un file indicizzato contenente segmenti di codice, voci dei menu, finestre di dialogo,etc. Il fork dati ha la semantica Unix di una sequenza di byte. Ogni fork è costituito da uno o più gruppi di blocchi contigui. Un descrittore dimensionale codifica in un numero a 32bit il blocco iniziale e la lunghezza. Il primo record dimensionale (tre descrittori dimensionali) di ogni fork è parte del record catalogo del file. Ogni successivo record dimensionale viene tenuto nel'albero B-Tree dimensionale per gli overflow.
In aggiunta alle estensioni per file e B-Tree, un volume contiene anche due blocchi di boot, un blocco di informazioni sul volume ed una bitmap dello spazio libero. C'è una notevole quantità di ridondanza nelle strutture dati su disco, la quale favorisce il recupero da crash. Sebbene non strettamente parte del file system, bisogna notare che diversi campi dei record catalogo sono riservati ad uso esclusivo di Finder, un programma che gestisce l'accesso degli utente al file system e mantiene automaticamente le associazioni tra l'applicazione ed il file dati. Così, HFS deve anche mantenere le informazioni di Finder.
Ogni file e directory in un volume HFS possiede un numero identificativo, simile al numero di inode nel file system Unix. Tuttavia, un file o directory è chiamato a partire dal numero identificativo del genitore e dal nome del file o directory, una stringa di 32 caratteri anche nulli. Questa combinazione è la chiave di ricerca del B-Tree catalogo del volume. Il B-Tree catalogo differisce da un tradizionale struttura B-Tree nel fatto che tutti i nodi ad ogni livello dell'albero sono collegati fra di loro a formare una doppia lista collegata e che tutti i record sono nei nodi foglia. Queste variazioni permettono di accedere a molte voci in una stessa directory attraversando le foglie usando le liste collegate. Per essere precisi, i B-Tree di HFS sono varianti dei B+-Tree sebbene la documentazione tecnica di Apple li chiami B*-Tree.
Ogni directory, inclusa la directory root, contiene il proprio directory thread, il quale contiene un nome vuoto. Il record del directory thread contiene il nome della directory e l'id del genitore della directory. In maniera simile, un file thread contiene il nome del file e l'id della directory che lo contiene.Mentre ogni directory deve contenere un directory thread, i file thread sono poco comuni. Infatti, entrambi sono esempi della ridondanza di HFS: per alberi non danneggiati, i thread non sono strettamente necessari. I record dei file e delle directory contengono entrambi 32 byte di informazioni uilizzati da Finder. I primi tre descrittori dimensionali per il B-Tree catalogo sono memorizzati nel blocco di informazioni del volume. Se il B-Tree catalogo cresce oltre i tre descrittori, i rimanenti descrittori dimensionali sono memorizzati nell'overflow dimensionale.
I file system HFS e HFS+ (chiamato anche Sequoia) sono molte ben documentati. La miglior fonte di informazioni tecniche su HFS è la serie di libri Inside Macintosh. Vedi su �. Il file system HFS+ è descritto in Nota tecnica 1150, disponibile su �. Molte informazioni sonon disponibili anche in altre note tecniche. I seguenti link sono raccolti da Paul H. Hargrove:
� - HFS Ruminations.
� - Hey, Buddy, Can You Spare A Block?
� - Alias Manager Q&As
� - File Manager File Handling Q&As
� - File Manager Volume Handling Q&As
� - Bizarre Extension Loading Order: BackQuote Sorts Between "A" and "B"
� - Finder Q&As
Homepage: �
Autore: Paul. Hargrove <hargrove@sccm.stanford.edu>
Freshmeat: Console/file system
Licenza: GPL
Homepage: �
Autore: Marcus Better <Marcus.Better@abc.se>
HFS/2 permette ad utenti OS/2 di leggere e scrivere facilmente file su floppy formattati con HFS, il file system usato dai computer MacIntosh. Con HFS/2, i dischetti MacIntosh possono essere usati come normali dischetti.
Il programma non è più sviluppato perchè l'autore non usa più OS/2. Se sei interessato ad usare il programma, contattalo.
Homepage: �
Autore: Lauri Pesonen <lpesonen@nic.fi>
Accesso: Lettura e scrittura da floppy, dischi ZIP e file su volumi virtuali. Sola lettura a HFS e CD ibridi.
Licenza: GPL
Homepage: ?
Autore: Paul E. Thomson
Download: �
Accesso: sola lettura
Licenza: Shareware ($34)
Homepage: �
Autore: Robert Leslie <rob@mars.org>
OS/2 port: �
Il pacchetto hfsutil contiene un insieme di programmi di utilità da linea di comando quali hformat, hmount, hdir, hcopy, etc. Queste permettono di accedere in lettura e scrittura a file e directory nei volumi HFS.
Tech report: �
Autori: Peter A. Dinda <pdinda+macfs@cs.cmu.edu>, George C. Necula, and Morgan Price
Download: �
Accesso: lettura e scrittura, pieno supporto per open,read,write,seek e close
Licenza: gratis per usi non commerciali e non militari, vedi �