HFS Plus - HFS Plus

HFS+
Vývojáři Apple Inc.
Celé jméno Hierarchický systém souborů Plus
Představeno 19. ledna 1998 ; Před 23 lety s Mac OS 8.1 ( 1998-01-19 )
Identifikátor oddílu Apple_HFS( Apple Partition Map )
0xAF( MBR ) HFS a HFS+
Apple_HFSX( Apple Partition Map ) při HFSX ( GPT )
48465300-0000-11AA-
AA11-00306543ECAC
Struktury
Obsah adresáře B-strom
Přidělení souboru Bitmapa
Špatné bloky B-strom
Limity
Max. velikost svazku exabyte
Max. velikost souboru EB
Max. počet souborů 4 294 967 295 (2 32 - 1)
Max. délka názvu souboru 255 znaků (255 kódovacích jednotek UTF-16, normalizováno na Apple modifikovanou variantu formátu Unicode Normalization Format D)
Povolené znaky v názvech souborů Unicode , libovolný znak, včetně NUL . Rozhraní API OS mohou z důvodu starších důvodů některé znaky omezovat
Funkce
Zaznamenaná data přístup, atributy upraveny, zálohovány, obsah upraven, vytvořen
Časové období 1. ledna 1904 - 6. února 2040
Rozlišení data 1 s
Vidlice Ano
Atributy Barva (3 bity, všechny ostatní příznaky 1 bit), uzamčeno, vlastní ikona, svazek, neviditelný, alias, systém, papírnictví, inited, žádné prostředky INIT, sdílené, pracovní plocha
Oprávnění systému souborů Unixová oprávnění, ACL NFSv4 ( Mac OS X v10.4 a novější)
Průhledná komprese Částečné (decmpfs, na Mac OS X 10.6 a vyšší)
Transparentní šifrování Ano (v systému Mac OS X 10.7 a novějších). Per- domovský adresář šifrování je k dispozici s AES pomocí HFS + -formatted DMG svazky na OS X verze předcházející 10,7, ale později než Mac OS X 10.3
jiný
Podporované operační systémy Mac OS 8.1 , Mac OS 9 , macOS / iOS / tvOS / watchOS / Darwin , Linux , Microsoft Windows (prostřednictvím ovladačů Boot Camp IFS )

HFS Plus nebo HFS+ (také známý jako Mac OS Extended nebo HFS Extended ) je žurnálovací souborový systém vyvinutý společností Apple Inc. Nahradil Hierarchical File System (HFS) jako primární souborový systém počítačů Apple vydáním systému Mac OS 8.1 z roku 1998 . HFS+ pokračoval jako primární souborový systém Mac OS X, dokud nebyl sám nahrazen Apple File System (APFS), vydaným s macOS High Sierra v roce 2017. HFS+ je také jedním z formátů používaných digitálním hudebním přehrávačem iPod .

Ve srovnání se svým předchůdcem HFS , nazývaným také Mac OS Standard nebo HFS Standard, HFS Plus podporuje mnohem větší soubory (adresy bloků jsou 32bitové namísto 16bitových) a používá Unicode (místo Mac OS Roman nebo některý z dalších znaků sady) pro pojmenování položek. Stejně jako HFS, HFS Plus používá B-stromy k ukládání většiny metadat objemu , ale na rozdíl od většiny ostatních souborových systémů podporuje HFS Plus pevné odkazy na adresáře. HFS Plus umožňuje názvy souborů až do délky 255 znaků a n-rozvětvené soubory podobné systému NTFS , ačkoli až do roku 2005 téměř žádný systémový software nevyužil výhody jiných vidlic než datové vidlice a vidlice zdrojů . HFS Plus také používá úplnou 32bitovou mapovací alokační tabulku namísto 16 bitů HFS, což zlepšuje využití místa na velkých discích.

Dějiny

Pod kódovým označením Sequoia ve vývoji byl HFS+ představen s vydáním systému Mac OS 8.1 z 19. ledna 1998 .

S vydáním Mac OS X 10.2.2 aktualizace 11. listopadu 2002, Apple přidal volitelné žurnálování rysy jako HFS + pro lepší spolehlivost dat. Tyto funkce byly přístupné prostřednictvím grafického uživatelského rozhraní pomocí aplikace Disk Utility v systému Mac OS X Server, ale byly přístupné pouze prostřednictvím příkazového řádku ve standardním desktopovém klientovi.

V systému Mac OS X v10.3 byly všechny svazky HFS Plus na všech počítačích Mac ve výchozím nastavení nastaveny na deníky. V systému je svazek HFS Plus s deníkem označen jako HFSJ .

Mac OS X 10.3 také představil další verzi HFS Plus s názvem HFSX . Svazky HFSX jsou téměř totožné se svazky HFS Plus, kromě toho, že nikdy nejsou obklopeny obálkou HFS Wrapper, která je typická pro svazky HFS Plus, a volitelně podporují rozlišování velkých a malých písmen pro názvy souborů a složek. Svazky HFSX lze rozpoznat dvěma položkami v záhlaví svazku, hodnotou HX v poli podpisu a 5 v poli verze.

Mac OS X 10.3 také označil Apple za přijetí dekompozice Unicode 3.2, která nahradila dříve používaný rozklad Unicode 2.1. Tato změna způsobila vývojářům problémy s psaním softwaru pro Mac OS X.

Mac OS X 10.3 představil řadu technik, které mají zabránit fragmentaci souborů v HFS+.

V systému Mac OS X 10.4 přidala společnost Apple podporu záznamů dat vložených atributů, což je součást implementace HFS Plus systému Mac OS X minimálně od verze 10.0 , ale vždy byla označena jako „vyhrazené pro budoucí použití“. Až do vydání systému Mac OS X Server 10.4 HFS Plus podporoval pouze standardní oprávnění systému souborů UNIX ; 10.4 však zavedl podporu pro zabezpečení přístupu na základě seznamu řízení přístupu , které poskytuje bohatší mechanismus pro definování oprávnění k souborům a je také navrženo tak, aby bylo plně kompatibilní s modely oprávnění k souborům na jiných platformách, jako je Microsoft Windows XP a Windows Server 2003 .

V systému Mac OS X Leopard 10.5 bylo přidáno pevné propojení adresářů jako základní součást Time Machine.

V systému Mac OS X Snow Leopard 10.6 byla komprese HFS+ přidána pomocí nástroje Deflate (Zlib). V open source a některých dalších oblastech se tomu říká AppleFSCompression nebo decmpfs. Komprimovaná data mohou být uložena buď v rozšířeném atributu, nebo ve zdroji. Při použití jiných API než Apple není AppleFSCompression vždy zcela transparentní. OS X 10.9 představil dva nové algoritmy: LZVN (libFastCompression) a LZFSE .

V systému Mac OS X Lion 10.7 bylo do operačního systému přidáno šifrování logického svazku (známé jako FileVault 2 ). Tento přírůstek do operačního systému nijak nezměnil logickou strukturu systému souborů. Správce logických svazků společnosti Apple je znám jako Core Storage a jeho šifrování na úrovni svazku se může vztahovat na jiné systémy souborů než HFS Plus. S vhodným hardwarem by mělo být šifrování i dešifrování transparentní.

Design

Svazky HFS Plus jsou rozděleny do sektorů (v HFS nazývaných logické bloky), které mají obvykle velikost 512 bajtů. Tyto sektory jsou poté seskupeny do alokačních bloků, které mohou obsahovat jeden nebo více sektorů; počet alokačních bloků závisí na celkové velikosti svazku. HFS Plus používá k adresování alokačních bloků větší hodnotu než HFS, 32 bitů místo 16 bitů; to znamená, že může přistupovat k alokačním blokům 4 294 967 296 (= 2 32 ) spíše než k alokačním blokům 65 536 (= 2 16 ), které má HFS k dispozici. Když byly disky malé, nemělo to malý význam, ale jak byly k dispozici jednotky s větší kapacitou, znamenalo to, že nejmenší množství místa, které mohl jakýkoli soubor zabírat (jeden alokační blok), se stalo nadměrně velkým a plýtvalo značným množstvím místa. Například na disku 1 GB je velikost bloku přidělení pod HFS 16 kB, takže i 1bajtový soubor by zabíral 16 kB místa na disku. Systém HFS Plus díky tomu výrazně zlepšuje využití místa na větších discích.

Názvy souborů a složek v HFS Plus jsou také kódovány v UTF-16 a normalizovány do podoby téměř stejné jako Unicode Normalization Form D (NFD) (což znamená, že předkomponované znaky jako „å“ jsou rozloženy v názvu souboru HFS+, a proto se počítají jako dvě kódové jednotky a UTF-16 znamená, že znaky mimo základní vícejazyčnou rovinu se také počítají jako dvě kódové jednotky v názvu souboru HFS+). HFS Plus umožňuje názvy souborů až do 255 kódových jednotek UTF-16.

Dříve byly svazky HFS Plus vloženy do standardního systému souborů HFS. To bylo vyřazeno přechodem Tigera na počítače Intel Mac, kde systém souborů HFS Plus nebyl vložen do obalu. Obal byl navržen pro dva účely; umožnilo počítačům Macintosh bez podpory HFS Plus v jejich ROM spouštět svazky HFS Plus a bylo také navrženo tak, aby pomohlo uživatelům s přechodem na HFS Plus zahrnutím minimálního svazku HFS se souborem pouze pro čtení s názvem Where_have_all_my_files_gone? , vysvětlující uživatelům s verzemi Mac OS 8.0 a staršími bez HFS Plus, že svazek vyžaduje systém s podporou HFS Plus. Původní svazek HFS obsahuje v záhlaví svazku podpis a posun k vloženému svazku HFS Plus. Všechny alokační bloky ve svazku HFS, které obsahují vložený svazek, jsou mapovány ze souboru přidělení HFS jako špatné bloky .

HFS Plus, který je pozoruhodný mezi souborovými systémy používanými pro systémy Unix, nepodporuje řídké soubory .

Typický svazek HFS Plus tvoří devět struktur:

  1. Sektory 0 a 1 svazku jsou zaváděcí bloky HFS . Jsou totožné se spouštěcími bloky ve svazku HFS. Jsou součástí obálky HFS.
  2. Sektor 2 obsahuje záhlaví svazku , které je ekvivalentem bloku hlavního adresáře ve svazku HFS. Záhlaví svazku ukládá širokou škálu dat o samotném svazku, například velikost alokačních bloků, časové razítko, které udává, kdy byl svazek vytvořen, nebo umístění jiných struktur svazků, jako je soubor katalogu nebo soubor přetečení rozsahu. Záhlaví hlasitosti se vždy nachází na stejném místě.
  3. File Allocation , který sleduje, které alokace bloky jsou zdarma a které jsou v provozu. Je to podobné jako Volume Bitmap v HFS, ve kterém je každý alokační blok reprezentován jedním bitem. Nula znamená, že blok je volný a jednička znamená, že je blok používán. Hlavní rozdíl oproti bitmapě svazku HFS spočívá v tom, že alokační soubor je uložen jako běžný soubor - nezabírá zvláštní vyhrazené místo poblíž začátku svazku. Alokační soubor může také měnit velikost a nemusí být uložen souvisle v rámci svazku.
  4. Soubor katalogu je strom B, který obsahuje záznamy pro všechny soubory a adresáře uložené ve svazku. Soubor katalogu HFS Plus je velmi podobný souboru katalogu HFS , hlavní rozdíly v záznamech jsou větší, aby umožňovaly více polí a aby byla tato pole větší (například aby bylo možné v HFS Plus povolit delší názvy souborů 255 znaků Unicode ). Záznam v katalogovém souboru HFS má velikost 512 bajtů; záznam v katalogovém souboru HFS Plus je 4 KB v klasickém systému Mac OS a 8 kB v systému MacOS . Pole v HFS mají pevnou velikost, zatímco v HFS Plus se velikost může lišit v závislosti na skutečné velikosti dat, která ukládají.
  5. Soubor přetečení rozsahů je dalším stromem B, který zaznamenává alokační bloky, které jsou každému souboru přiděleny jako rozsahy. Každý záznam souboru v souboru katalogu je schopen zaznamenat osm rozsahů pro každou vidlici souboru; jakmile jsou použity, další rozsahy jsou zaznamenány do souboru přetečení rozsahů. Špatné bloky jsou také zaznamenány jako rozsahy v souboru Přetečení rozsahu. Výchozí velikost záznamu rozsahu v klasickém systému Mac OS je 1 kB a 4 kB v systému macOS.
  6. Soubor atributů je nový B-strom v HFS Plus, který nemá v HFS odpovídající strukturu. Soubor atributů může ukládat tři různé typy záznamů o velikosti 4 kB: Záznamy vložených datových atributů, záznamy atributů dat vidlice a záznamy atributů rozšíření . Záznamy vložených datových atributů ukládají malé atributy, které se vejdou do samotného záznamu. Záznamy atributů dat vidlice obsahují odkazy na maximálně osm rozsahů, které mohou obsahovat větší atributy. Atributy rozšíření se používají k prodloužení záznamu Atk Data Data, pokud jsou již použity jeho osm záznamů rozsahu.
  7. File Startup je určen pro systémy non-Mac OS, které postrádají HFS nebo HFS Plus podporu. Je to podobné zaváděcím blokům svazku HFS.
  8. Sektor předposlední obsahuje záhlaví alternativního svazku , které je ekvivalentem bloku alternativního hlavního adresáře HFS. Všimněte si, že toto je předposlední sektor disku, nikoli svazek; pokud je disk větší než svazek, AVH bude mimo rozsah souborového systému.
  9. Poslední sektor v tomto svazku je vyhrazen pro použití společností Apple. Používá se během procesu výroby počítače.

Kritika

HFS Plus postrádá několik funkcí, které jsou považovány za základní součást moderních souborových systémů, jako jsou ZFS a NTFS . Kontrolní součty dat jsou nejčastěji uváděnou chybějící funkcí.

Kromě kontrolního součtu funkce moderních souborových systémů, které HFS+ postrádají, zahrnují:

  • nanosekundová časová razítka
  • souběžný přístup (to znamená, že k souborovému systému může přistupovat více než jeden proces současně)
  • momentka
  • Podpora pro data po 6. únoru 2040
  • řídká podpora souborů
  • lepší implementace pevných odkazů (v jiných souborových systémech se obvykle jedná o více položek adresáře směřujících na stejné datové bloky; pevné odkazy v systému macOS jsou implementovány jako malé soubory, které jsou uloženy ve speciálním skrytém adresáři)

HFS Plus nebyl navržen pro systémy podobné Unixu , takže funkce, jako jsou oprávnění systému souborů a pevné odkazy, musely být dodatečně vybaveny, když Apple přešel na Mac OS X.

Jiné operační systémy

Linux

Linuxové jádro obsahuje modul hfsplus pro montáž HFS + souborový systém pro čtení i zápis. HFS+ fsck a mkfs byly přeneseny do Linuxu a jsou součástí balíčku hfsprogs.

V roce 2009 bylo diagnostikováno, že tyto ovladače poškozují disky HFS+ s kapacitou větší než 2 TB. V důsledku toho přestaly distribuce Linuxu, jako jsou Debian a Ubuntu, povolit připojení jednotek HFS+ nebo oddílů větších než 2 TB. V únoru 2011 probíhají práce na zrušení tohoto omezení.

Podle aktuálního ovladače Linux HFS+ musí být žurnálování zakázáno, aby bylo možné bezpečně zapisovat data do oddílu HFS+. Za předpokladu, že oddíl není používán softwarem Time Machine od společnosti Apple , lze zapisování do deníku zakázat v systému macOS: Pomocí nástroje Disk Utility v systému OS X Yosemite může uživatel podržet klávesu Alt/Option a v nabídce Soubor kliknout na „Zakázat žurnálování“, přičemž nejprve vybral připojený oddíl.

Oddíl HFS+ s povoleným zapisováním do deníku může být násilně připojen s přístupem pro zápis pod Linuxem, ale toto není podporováno a nerozumné.

Projekt Google Summer of Code na implementaci podpory zápisu do žurnálovaného HFS+ byl přijat Linux Foundation v roce 2011, ale v té době nebyl dokončen a stále se pracuje. Pokrok a vylepšení ovladače HFS+, včetně některých aktualizací podpory deníku, jsou čas od času zveřejněny na seznamu adresátů linux-fsdevel.

V červenci 2011 poskytovala společnost Paragon Software Group ovladače jádra, které umožňují plný přístup pro čtení i zápis k žurnálovaným svazkům HFS+. Tento produkt je proprietární implementací HFS+ založenou na proprietární knihovně UFSD společnosti Paragon. Existují bezplatné i placené edice ovladače a obsahují nástroj pro kontrolu a opravu svazků HFS+. Podle online dokumentace (bezplatná verze nebo placená edice) jak bezplatná, tak placená edice aktuálně podporují jádra Linuxu od 2.6.36 do 4.12.x. Ubuntu , Debian , Fedora , OpenSUSE a CentOS jsou jediné oficiálně podporované distribuce Linuxu.

Okna

V květnu 2012 společnost Apple vydala pouze ovladače HFS+ jen pro čtení pro Windows XP, Windows Vista a Windows 7 jako součást softwaru Boot Camp v systému Mac OS X 10.6 . To znamená, že uživatelé v těchto systémech mohou číst data na jednotce HFS+, ale nemohou do nich zapisovat. Společnost Microsoft vytvořila ovladač HFS+ pro Xbox 360 hlavně za účelem čtení iPodů s formátem HFS+.

K připojení oddílů hfs/hfs+ jako virtuálních složek jen pro čtení lze použít bezplatný a opensource software-jHFSplus, založený na HFSExplorer a jpfm.

Existuje freeware plugin pro Total Commander , který dokáže číst mimo jiné souborové systémy HFS a HFS+.

DiskInternals Linux Reader lze použít k extrahování/ukládání složek/souborů z pevných disků/oddílů HFS a HFS+.

Komerční produkt MacDrive je k dispozici také pro připojení jednotek HFS a HFS+, optických disků a dalších médií v Průzkumníkovi Windows a umožňuje čtení i zápis na svazek, jakož i opravu a formátování disků Mac.

Paragon's HFS+ for Windows je komerční produkt, který umožňuje úplné čtení, zápis a správu disků ze všech verzí systému Windows od Windows XP po Windows Server 2008.

Cross-platform

Volný ( GPL ) alternativu HFSExplorer které Erik Larsson. HFSExplorer je aplikace Java pro prohlížení a extrahování souborů ze svazku HFS+ (Mac OS Extended) nebo svazku HFSX (Mac OS Extended, rozlišuje velká a malá písmena). Svazek může být umístěn buď na fyzickém disku, v různých formátech obrazu disku Apple a řídkých obrazů disku , nebo na výpisu surového systému souborů. HFSExplorer je však řešením pouze pro čtení; nemůže zapisovat do svazků formátovaných HFS.

Viz také

Reference

externí odkazy