HFS (Apple)
| Tipus | sistema de fitxers |
|---|---|
| Versio inicial | 17 setembre 1985 |
| Caracteristiques tecniques | |
| Sistema operatiu | Mac OS classic |
| Equip | |
| Desenvolupador(s) | Apple Inc |
El sistema de fitxers jerarquitzat (HFS) es un sistema de fitxers propietari desenvolupat per Apple Inc. per utilitzar-lo en sistemes informatics amb Mac OS. Dissenyat originalment per utilitzar-lo en disquets i discs durs, tambe es pot trobar en suports de nomes lectura, com ara CD-ROM. HFS tambe es coneix com Mac OS Standard (o "HFS Standard"), mentre que el seu successor, HFS Plus, tambe s'anomena Mac OS Extended (o "HFS Extended").
Amb la introduccio de Mac OS X 10.6, Apple va deixar de ser compatible amb el format o l'escriptura de discs i imatges HFS, que continuen sent compatibles amb volums de nomes lectura. A partir de macOS 10.15, els discs HFS ja no es poden llegir.[1]
Historia
[modifica]Apple va introduir HFS al setembre de 1985, especificament per donar suport a la primera unitat de disc dur d'Apple per a Macintosh, substituint el sistema de fitxers Macintosh (MFS), el sistema de fitxers original que s'havia introduit mes d'un any i mig abans amb el primer equip Macintosh. HFS es va basar en el primer sistema operatiu jerarquic (SOS) d'Apple per al fallit Apple III, que tambe va servir de base per als sistemes de fitxers jerarquics de l'Apple IIe i l'Apple Lisa. HFS va ser desenvolupat per Patrick Dirks i Bill Bruffey. Compartia diverses funcions de disseny amb MFS que no estaven disponibles en altres sistemes de fitxers de l'epoca (com ara FAT de DOS). Els fitxers podrien tenir diverses bifurcacions (normalment una dada i una bifurcacio de recursos), cosa que permetia emmagatzemar les dades principals del fitxer per separat de recursos com ara icones que podrien haver de ser localitzades. Es feia referencia als fitxers amb identificadors de fitxer unics en lloc de noms de fitxers, i els noms de fitxers podien tenir una longitud de 255 caracters (tot i que el Finder nomes admetia un maxim de 31 caracters).
Tanmateix, MFS s'havia optimitzat per utilitzar-lo en suports molt petits i lents, es a dir, disquets, de manera que es va introduir HFS per superar alguns dels problemes de rendiment que van arribar amb la introduccio de suports mes grans, sobretot els discs durs. La principal preocupacio era el temps necessari per mostrar el contingut d'una carpeta. Sota MFS, tota la informacio de llista de fitxers i directoris s'emmagatzemava en un unic fitxer, que el sistema havia de cercar per crear una llista dels fitxers emmagatzemats en una carpeta particular. Aixo va funcionar be amb un sistema amb uns quants centenars de quilobytes d'emmagatzematge i potser un centenar de fitxers, pero a mesura que els sistemes es van convertir en megabytes i milers de fitxers, el rendiment es va degradar rapidament.
La solucio era substituir l'estructura de directoris de MFS per una altra mes adequada per a sistemes de fitxers mes grans. HFS va substituir l'estructura de la taula plana amb el fitxer de cataleg que utilitza una estructura d'arbre B que es pot buscar molt rapidament independentment de la mida. HFS tambe va redissenyar diverses estructures per poder contenir nombres mes grans, sent enters de 16 bits substituits per 32 bits gairebe universalment. Curiosament, un dels pocs llocs on no es va produir aquest "augment" va ser el directori de fitxers en si mateix, que limita HFS a un total de 65.535 fitxers a cada disc logic.
Tot i que HFS es un format de sistema de fitxers propietari, esta ben documentat; normalment hi ha solucions disponibles per accedir a discs amb format HFS des de la majoria de sistemes operatius moderns.
Apple va introduir HFS per necessitat amb els seus primers 20 Oferta de disc dur MB per a Macintosh el setembre de 1985, on es va carregar a la RAM des d'un disquet MFS en arrencar mitjancant un fitxer de pedac ("Disc dur 20"). Tanmateix, HFS no es va introduir ampliament fins que no es va incloure a la ROM de 128K que va debutar amb el Macintosh Plus el gener del 1986 juntament amb els 800 mes grans Unitat de disquet KB per al Macintosh que tambe feia servir HFS. La introduccio d'HFS va ser el primer avanc d'Apple a deixar enrere un model d'ordinador Macintosh: el Macintosh original de 128 K, que no tenia memoria suficient per carregar el codi HFS i que va ser immediatament interromput.
El 1998, Apple va introduir HFS Plus per abordar l'assignacio ineficient de l'espai en disc a HFS i afegir altres millores. HFS encara es compatible amb les versions actuals de Mac OS, pero comencant per Mac OS X, no es pot utilitzar un volum HFS per arrencar i, a partir de Mac OS X 10.6 (Snow Leopard), els volums HFS son de nomes lectura i no es poden crear o actualitzat. A macOS Sierra (10.12), les notes de la versio d'Apple indiquen que "El sistema de fitxers estandard HFS ja no es compatible".[2] Tot i aixo, el suport HFS Standard de nomes lectura encara es present al macOS Sierra i funciona com ho feia en versions anteriors.
Disseny
[modifica]Un volum d'emmagatzematge es divideix inherentment en blocs logics de 512 bytes. El sistema de fitxers jerarquitzat agrupa aquests blocs logics en blocs d'assignacio, que poden contenir un o mes blocs logics, en funcio de la mida total del volum. HFS utilitza un valor de 16 bits per adrecar blocs d'assignacio, limitant el nombre de blocs d'assignacio a 65.535 (2 16 -1).
Cinc estructures formen un volum HFS:
- Els blocs logics 0 i 1 del volum son els blocs d'arrencada, que contenen informacio d'inici del sistema. Per exemple, els noms dels fitxers System i Shell (normalment el Finder) que es carreguen a l'inici.
- El bloc logic 2 conte el bloc de directori principal (tambe conegut com MDB). Aixo defineix una amplia varietat de dades sobre el volum en si, per exemple, les marques de data i hora de quan es va crear el volum, la ubicacio de les altres estructures de volum, com ara el mapa de bits de volum, o la mida d'estructures logiques, com ara els blocs d'assignacio. Tambe hi ha un duplicat del MDB anomenat Alternate Master Directory Block (tambe conegut com Alternate MDB) que es troba a l'extrem oposat del volum en el segon a l'ultim bloc logic. Esta pensat principalment per a l'us de les utilitats de disc i nomes s'actualitza quan el fitxer de cataleg o el fitxer de desbordament d'extents creixen.
- El bloc logic 3 es el bloc inicial del volum de mapa de bits, que fa un seguiment de quins blocs d'assignacio s'utilitzen i quins son gratuits. Cada bloc d'assignacio del volum esta representat per un bit al mapa: si el bit esta definit, el bloc esta en us; si es clar, el bloc es pot utilitzar gratuitament. Com que el mapa de bits de volum ha de tenir un bit per representar cada bloc d'assignacio, la seva mida es determina per la mida del volum mateix.
- El fitxer de desbordament d'extensio es un arbre B que conte extensions addicionals que registren quins blocs d'assignacio s'assignen a quins fitxers, un cop esgotades les tres extensions inicials del fitxer de cataleg. Les versions posteriors tambe van afegir la possibilitat que el fitxer de desbordament d'extensions emmagatzemi extensions que registren blocs defectuosos, per evitar que el sistema de fitxers intenti assignar un bloc defectuos a un fitxer.
- El fitxer de cataleg es un altre arbre B que conte registres de tots els fitxers i directoris emmagatzemats al volum. Emmagatzema quatre tipus de discos. Cada fitxer consisteix en un registre de fils de fitxers i un registre de fitxers, mentre que cada directori consta d'un registre de fils de directori i un registre de directoris. Els fitxers i directoris del fitxer de cataleg es troben mitjancant el seu identificador de node de cataleg (o CNID) unic.
- Un registre de fils de fitxer emmagatzema nomes el nom del fitxer i el CNID del seu directori principal.
- Un registre de fitxers emmagatzema una gran varietat de metadades sobre el fitxer, incloent el seu CNID, la mida del fitxer, tres marques de temps (quan es va crear el fitxer, es va modificar per darrer cop, es va fer la darrera copia de seguretat), les primeres extensions de fitxer de dades i recursos i les punteres de recursos als primers registres d'extensio de dades i recursos del fitxer al fitxer de desbordament d'extensio. El registre de fitxers tambe emmagatzema dos camps de 16 bytes que el Finder utilitza per emmagatzemar atributs sobre el fitxer, inclosos el seu codi de creador, el tipus de codi, la finestra on hauria d'apareixer el fitxer i la seva ubicacio a la finestra.
- Un registre de fils de directori emmagatzema nomes el nom del directori i el CNID del directori principal.
- Un registre de directori que emmagatzema dades com el nombre de fitxers emmagatzemats al directori, el CNID del directori, tres marques de temps (quan es va crear el darrer, es va modificar per darrer cop, es va fer la darrera copia de seguretat). Igual que el registre de fitxers, el registre de directoris tambe emmagatzema dos camps de 16 bytes per al seu us pel Finder. Emmagatzemen coses com l'amplada i l'alcada i les coordenades xy de la finestra que s'utilitza per mostrar el contingut del directori, el mode de visualitzacio (vista d'icones, vista de llista, etc.) de la finestra i la posicio del desplacament de la finestra. barra.
Limitacions
[modifica]El fitxer de cataleg, que emmagatzema tots els registres de fitxers i directoris en una unica estructura de dades, comporta problemes de rendiment quan el sistema permet fer multiples tasques, ja que nomes un programa pot escriure a aquesta estructura alhora, cosa que significa que molts programes poden estar esperant a la cua degut a que un programa "embrutava" el sistema.[3] Tambe suposa un greu problema de fiabilitat, ja que el dany a aquest fitxer pot destruir tot el sistema de fitxers. Aixo contrasta amb altres sistemes de fitxers que emmagatzemen registres de fitxers i directoris en estructures separades (com ara el sistema de fitxers FAT de DOS o el sistema de fitxers Unix), on tenir una estructura distribuida pel disc significa que danyar un directori general no es fatal i les dades possiblement es pugui reconstruir amb les dades que es conservin a les porcions no danyades.
A mes, el limit de 65.535 blocs d'assignacio va provocar que els fitxers tinguessin una mida "minima" equivalent a 1 / 65.535a de la mida del disc. Per tant, qualsevol volum determinat, independentment de la seva mida, nomes podria emmagatzemar un maxim de 65.535 fitxers. A mes, a qualsevol fitxer se li assignaria mes espai del que realment necessitava, fins a la mida del bloc d'assignacio. Quan els discos eren petits, aixo tenia poca consequencia, ja que la mida del bloc d'assignacio individual era trivial, pero a mesura que els discs comencaven a apropar-se a la marca d'1 GB, l'espai mes petit que podia ocupar qualsevol fitxer (un bloc d'assignacio unic) es feia excessivament gran., malgastant importants quantitats d'espai en disc. Per exemple, en un disc d'1 GB, la mida del bloc d'assignacio a HFS es de 16 KB, de manera que fins i tot un fitxer d'1 byte ocuparia 16 KB d'espai en disc. Aquesta situacio era menys problematica per als usuaris que tenien fitxers grans (com ara imatges, bases de dades o audio) perque aquests fitxers mes grans malgastaven menys espai com a percentatge de la seva mida. Els usuaris amb molts fitxers petits, en canvi, podrien perdre una gran quantitat d'espai a causa de la gran mida del bloc d'assignacio. Aixo va fer que el particionament de discs en volums logics mes petits fos molt atractiu per als usuaris de Mac, perque els petits documents emmagatzemats en un volum mes petit ocuparien molt menys espai que si residissin en una particio gran. El mateix problema existia al sistema de fitxers FAT16.
HFS desa les majuscules i minuscules d'un fitxer que es crea o canvia el nom, pero que no funciona amb majuscules i minuscules.
Segons bombich.com, HFS ja no es compatible amb Catalina i futures versions de macOS.
Vegeu tambe
[modifica]Referencies
[modifica]- | Gagne, Ken. <<Losing legacy data to Snow Leopard>>. Computerworld, 31-08-2009. [Consulta: 7 setembre 2009].
- | <<What's New in macOS: macOS Sierra 10.12>>. Apple. [Consulta: 25 gener 2017].
- | Giampaolo, Dominic. Practical File System Design with the Be File System (PDF). Morgan Kaufmann, 1999, p. 37. ISBN 1-55860-497-9.
Enllacos externs
[modifica]- Especificacio HFS de developer.apple.com
- HOWTO sobre sistemes de fitxers: HFS : lleugerament obsolet
- hfsutils : programari de codi obert per manipular HFS a Unix, DOS, Windows, OS / 2