Hierarkisk filsystem

HFS
hierarkisk filsystem
Utvikler Apple inc.
engelsk navn Hierarkisk filsystem
Introduksjon 17. juli 1985
( System 2.1 )
Partisjonsidentifikator Apple HFS ( Apple Partition Map )
0xAF ( MBR )
Struktur
Innhold i kataloger B * tre
Filallokering Bitmap
Dårlige blokker B * tre
Begrensninger
Maksimal filstørrelse 2 GiB
Maksimalt antall filer 65.535
Maksimal filnavnstørrelse 31 tegn
Maksimal volumstørrelse 2 TiB
Tegn tillatt i filnavn Alle 8-biters verdier
unntatt ":".
Funksjoner
Registrerte datoer Opprettelse, modifikasjon, sikkerhetskopiering
Datointervall 1 st januar 1904 - 06.02.2040
Gafler Bare 2 (data og ressurser)
Attributter Farge (3 bits), lås, tilpassbare ikoner, arkiv, skjult, alias, system, inited, ingen INIT-ressurser, deling, skrivebord
Tillatelser AppleShare
Integrert komprimering Ja (tredje del), stabler
Integrert kryptering Nei

Den hierarkiske File System ( HFS ), er en proprietær filsystem utviklet av Apple for Mac OS driftssystem . Opprinnelig designet for disketter og harddisker , og kan også brukes på skrivebeskyttede medier, for eksempel CD-ROM-er . HFS blir vanligvis referert til som "Mac OS Standard", og etterfølgeren HFS + som "Mac OS Extended".

Det hierarkiske filsystemet , eller HFS, er også et annet filsystem som brukes i z / OS , et operativsystem IBM for mainframe .

Historie

HFS ble introdusert av Apple i september 1985 for å erstatte Macintosh File System (MFS), det originale filsystemet som ble introdusert året før med Macintosh- datamaskinen . HFS er utviklet av Patrick Dirks og Bill Bruffey, og deler en rekke designfunksjoner med MFS som ikke var tilgjengelig i andre filsystemer den gangen (som DOS og FAT ). Filer kan være flere gafler , slik at kildekoden kan lagres separat ressurser (in) som ikoner for å gjøre dem enkle å finne (imøtekomme forskjellige land). Det er referert til mapper med unike filidentifikatorer i stedet for filnavn, og filnavn kan være på 255 tegn (selv om Finder bare støtter 31 tegn).

MFS er optimalisert for bruk på veldig små og langsomme medier, for eksempel disketter . HFS ble introdusert for å løse noen av ytelsesproblemene knyttet til introduksjonen av større medier, spesielt harddisker . Det viktigste er den tid det tar å vise innholdet i en mappe. Under MFS ble all fil- og kataloginformasjon lagret i en enkelt fil, som for søkesystemet bygde en liste over filer som er lagret i en bestemt mappe. Det fungerte bra med et system på noen få hundre kilo lagringsplass og hundre mapper, men fordi systemene brukte megabyte og tusenvis av filer, ble ytelsen raskt svekket.

For å imøtekomme store filsystemer erstatter HFS filtabellen med Catalog File , som bruker en B-trestruktur og gjør det mulig å utføre søk veldig raskt, uavhengig av størrelsen på treet. HFS har også redesignet forskjellige strukturer og for å organisere flere filer bruker 32-biters heltall (i stedet for 16). Men, som MFS, den katalogfil selv begrenser HFS til lagring av maksimalt 65535 filer.

Mens HFS er et proprietært filsystem, er det laget på en slik måte at det finnes løsninger for bruk av HFS-formaterte stasjoner med mer moderne operativsystemer .

I 1998 ga Apple ut HFS + på grunn av ineffektiv tildeling av diskplass til HFS. Dette nye filsystemet gir andre forbedringer. HFS er fremdeles lesbar av nåværende versjoner av Mac OS, men under Mac OS X kan ikke et HFS-volum brukes til å starte (starte), akkurat som de nyeste versjonene av Windows ikke kan installeres på en partisjon FAT16 .

Design

Det hierarkiske filsystemet deler et logisk volum i blokker på 512 byte. Disse logiske blokkene grupperes deretter i tildelingsblokker, som kan inneholde en eller flere logiske blokker, avhengig av totalstørrelse. HFS bruker en 16-biters verdi for tildeling av blokkadresse, som begrenser antall tildelingsblokker til 65 536.

Det er fem strukturer som utgjør et volum av HFS:

  1. Logikkblokker 0 og 1 i volumet er oppstartssektorene som inneholder informasjon om systemoppstart. For eksempel navnene på systemet og Shell (vanligvis Finder ) -filene som lastes inn ved oppstart.
  2. Logikkblokk 2 inneholder Master Directory Block (alias MDB ). Denne MDB definerer et bredt utvalg av informasjon om selve volumet, for eksempel opprettelsesdato og -tid, plassering av andre volumer, størrelser på logiske strukturer og blokkallokering. Det er også et duplikat av MDB kalt Alternate Master Directory Block (aka Alternativ MDB ), som ligger i motsatt ende av volumet i den nest siste logiske blokken. Dette er primært for verktøy- og diskbruk når File Catalog Update eller Extents Overflow File er installert.
  3. Logikkblokk 3 er starten på Bitmap Volume , som holder rede på tildelingen av brukte eller gratis blokker. Hver tildelingsblokk på volumet er representert med et merke; Hvis den er gratis, kan blokken brukes. Størrelsen på Bitmap Volume bestemmes av størrelsen på selve volumet.
  4. Den Extents Flow File er et B * -tre som gjør at systemet kan håndtere dårlige blokker i en fil.
  5. Den File Catalog er en annen B * - treet , som inneholder poster for alle filer og kataloger er lagret i volumet. Den lagrer fire typer dokumenter. Hver fil består av en File Thread Record og en File Record mens hver katalog består av en Directory Thread Record, Directory Record. Filer og kataloger i filkatalogen ligger etter deres unike Catalog Node ID (eller CNID ).
    • En fil Tråd Record bare lagrer filnavn og CNID av sin overordnede katalogen.
    • En File Record lagrer metadata om filen herunder CNIDs, filstørrelse, tre datoer (opprettet, sist endret og sist lagret). Filen lagrer også to 16 byte felt som brukes av Finder til å lagre attributter på filer.
    • En katalogtrådoppføring lagrer bare katalognavnet og CNID for den overordnede katalogen.
    • En katalogregistrering lagrer data som antall filer som er lagret i katalogen, katalogens CNID, tre datoer (opprettet, sist endret og sist lagret). I likhet med File Record lagrer Directory Record to 16-byte felt som brukes av Finder. For å lagre visningsinformasjon som bredde og høyde, x- og y-koordinater for vinduet, visningsmodus (ikon, liste osv.) Og posisjonen i rullefeltet.

Problemer

Filkatalogen, som lagrer alle filer og kataloger i en enkelt datastruktur, har ytelsesproblemer. Når systemet tillater multitasking , kan bare ett program skrive til en fil om gangen, noe som betyr at mange programmer kan havne i køen på grunn av en "bue" i systemet. I dette tilfellet kan skade på en fil ødelegge hele filsystemet. Dette står i kontrast til andre filsystemer som lagrer filer og mapper i separate strukturer (som Microsoft og FAT eller Unix File System ), der strukturen er distribuert over hele disken. Dette betyr at skade på en enkelt katalog generelt ikke er farlig, og dataene kan muligens gjenopprettes i den uskadede delen.

I tillegg resulterte grensen på 65 535 kvoter filblokker ( klynger ) i minimum blokkstørrelse som tilsvarer 1/65 535 th av diskstørrelsen , selv for filer med bare noen få byte. Når diskene var små, var dette uviktig, da individuelle tildelingsblokkstørrelser ble redusert, men så snart diskene begynte å nærme seg 1  GiB , ble den minste blokkstørrelsen for stor, og kaster bort mye tid. For eksempel på en 1 GiB- disk  er størrelsen på tildelingsblokker med HFS 16 KB, selv for en 1 byte-fil. Denne situasjonen er mindre et problem for brukere med store filer (som bilder, databaser eller lyd), som kaster bort mindre plass. Brukere med et stort antall små filer, derimot, kan miste mye plass på grunn av størrelsen på tildelingsblokkene. Diskoppdeling laget i små logiske volumer (partisjoner) er veldig attraktivt for Mac-brukere, fordi små dokumenter som er lagret på et mindre volum, vil ta mye mindre plass enn på en stor partisjon. Det samme problemet eksisterer i FAT16 .