HFS Plus

Från Wikipedia
(Omdirigerad från HFS+)
HFS+
UtvecklareApple Inc
Fullständigt namnHierarchical File System Plus
Introducerat19 januari 1998 (Mac OS 8.1)
PartitionsidentifierareApple_HFS (Apple Partition Map)
0xAF (MBR)
Apple_HFSX (Apple Partition Map) när HFSX
48465300-0000-11AA-AA11-00306543ECAC (GPT)
Strukturer
MappinnehållB*-tree
FilallokeringB*-tree
Korrupta blockB*-tree
Begränsningar
Max filstorlek16 EiB
Max antal filerObegränsat
Max filnamnsstorlek255 tecken
Tillåtna tecken i filnamnUnicode, alla tecken, inklusive NUL. (OS API kan orsaka vissa begränsningar på grund av arv)
Finesser
Sparade datumSkapad, använd, backed-up, ändrad
Datumspann1 januari 1904 – 6 februari 2040
Alternativa dataströmmarJa
AttributFärg (3 bits, alla andra flaggor 1 bit), låst, valbar ikon, bundle, osynlighet, alias, system, stationär, initierad, inga INIT tillgångar, delad, skrivbord
RättigheterUnix- och NFS ACL-rättigheter (från och med Mac OS X 10.4)
Transparent komprimeringNej
Transparent krypteringJa, i Mac OS X 10.7. I Mac OS X 10.3 till och med Mac OS X 10.6 krypteras istället endast hemkataloger, och då inte av filsystemet utan av programmet Filevault, som skapar HFS Plus-formaterade .dmg-volymer, krypterade med 128-bitars AES
OperativsystemMac OS 8, Mac OS 9, Mac OS och vissa Linux

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 filsystemetMacintosh 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[redigera | redigera wikitext]

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Extents Overflow File är ett annat B-träd som sparar information om de allokeringsblock som är allokerade till varje fil.
  6. 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.
  7. 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.
  8. Den näst sista strukturen är det Alternativa volymhuvudet som motsvarar Alternate Master Directory Block i en HFS-volym.
  9. Den sista strukturen i volymen är reserverad för Apple. Den används under processen då datorn tillverkas.

Källor[redigera | redigera wikitext]

Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia, tidigare version.