HFS Plus

HFS Plus eller HFS+ är ett filsystem som är utvecklat av Apple Inc. som en ersättare till deras Hierarchical File System (HFS) som standard filsystemet på Macintosh datorer och MP3-spelaren Ipod. HFS Plus introducerades i samband med att Mac OS 8.1 lanserades 19 januari 1998. Ibland kan även HFS Plus refereras till som Mac OS Extended eller (felaktigt) HFS Extended. Under tiden som filsystemet utvecklades användes kodnamnet Sequoia av Apple.

HFS Plus är en förbättrad version av HFS som ger stöd för mycket större filer: blockadresserna har en längd på 32-bit istället för 16-bit: Dessutom används den mer moderna teckenkodningen unicode istället för MacRoman för att namnge filer och mappar. HFS Plus tillåter filnamn på upp till och med 255 UTF-16 tecken.

Design 
Ett HFS Plus filsystem är indelat i sektorer (logiska block) som vanligtvis är på 512 bytes i storlek. De här sektorerna grupperas samman i allokeringsblock som kan innehålla en eller flera sektorer. Antalet allokeringsblock beror på hur stor volymen är.

Det är totalt nio stycken olika strukturer som bygger upp en HFS Plus volym.

 Sektorerna 0 och 1 av volymen är Bootblocken. De är identiska med de bootblock som finns på en volym som använder det äldre filsystemet HFS.
 Volymsidhuvudet sparar information om volymen såsom när den skapades och var olika volymstrukturer finns sparade, såsom Katalogfilen och Extent Overflow File. Volymsidhuvudet är alltid placerat på samma plats.
 Allokeringsfil håller reda på vilka allokeringsblock som är upptagna och vilka som är lediga. Varje allokeringsblock motsvaras av en bit där 1 står för att den är upptagen och 0 står för att den är ledig. Allokeringsfilen behöver inte nödvändigtvis vara placerad i början av volymen utan platsen kan variera.
 Katalogfil innehåller register om alla filer och mappar som finns lagrade på volymen. Katalogfilen i HFS Plus är väldigt lik den motsvarande i HFS, den största skillnaden är att registren är större för att tillåta fler fält och samtidigt tillåta att de fälten i sin tur är större (till exempel för att tillåta de längre 255-tecken långa filnamnen i HFS Plus). Ett register i katalogfilen i HFS är 512 bytes medan ett register i katalogfilen i HFS Plus är 4 KiB (Mac OS) eller 8 KiB (Mac OS X). Fälten i HFS har en bestämd storlek medan i HFS Plus så varierar fältens storlek beroende på hur mycket information de innehåller.
 Extents Overflow File är ett annat B-träd som sparar information om de allokeringsblock som är allokerade till varje fil.
 Attributfil är en ny fil som innehåller ytterligare ett B*-träd som inte har någon motsvarande struktur i HFS. Attributfilen kan spara tre olika typer av 4 KiB register: Inline Data Attribute-register, Fork Data Attribute-register och Extension Attribute-register. Inline Data Attribute-register sparar små attribut som får plats inuti registret i sig. Fork Data Attribute innehåller referenser till ett maximum av åtta extents som kan innehålla större attribut. Extension Attribute används för att bygga ut Fork Data Attribute-register när de åtta extentregistrena redan är använda.
 Uppstartsfilen är designad för icke-Mac OS-system som inte har stöd för HFS eller HFS Plus. Den påminner om bootblocken på en HFS-volym.
 Den näst sista strukturen är det Alternativa volymhuvudet som motsvarar Alternate Master Directory Block i en HFS-volym.
 Den sista strukturen i volymen är reserverad för Apple. Den används under processen då datorn tillverkas.

Källor 

Filsystem