Unix File System

UFS (akronym för Unix File System) (kallas även Berkeley Fast File System, the BSD Fast File System eller FFS) är det filsystem som ursprungligen användes i Unix. Många moderna Unix-varianter använder UFS med olika utökningar. I den ursprungliga varianten av UFS är ett block 512 bytes, men i dag är 1024 bytes eller 4096 bytes vanligare.

En viktig egenskap för UFS är att filernas metadata finns i i-noder, som lagras skilt från själva filens innehåll (men på samma partition). Katalogerna innehåller inte filer utan referenser till filernas i-noder.

Filsystemets delar

På varje partition kan det finnas ett filsystem. Filsystemen kopplas i Unixliknande system ihop genom att ett filsystem ansluts till en katalog i ett redan anslutet filsystem.

Varje filsystem är uppdelad i tre delar:

  1. Ett superblock där information om hur hårddisken ser ut, hur stor den är, hur mycket ledigt utrymme det finns, hur många filer som finns, med mera.
  2. Ett i-nodblock, där varje fil har en i-nod med uppgifter om filtyp (inte filformat; se specialfiler nedan), antal hårda länkar, filens ägare och grupp, åtkomsträttigheter, filstorlek, tidpunkt för senaste ändring, senaste ändring i metainformation och senaste åtkomst. Dessutom innehåller i-noden pekare till de block där filens data finns (till skillnad från vissa andra filsystem som bara pekar på början och slutet av filer). Varje i-nodblock innehåller 12 pekare till 12 datablock, för större filer finns pekare till ytterligare block i datablock (se nedan).
  3. Ett datablock där själva datan lagras, samt indirect-pekare som pekar på datablock med data. Det finns tre sorters pekare I datadelen som är indirekta[1]:
    • Single indirect innehåller 256 pekare på datablock som en fil använder.
    • Double indirect innehåller ytterligare 256 pekare som vardera pekar på 256 pekare som pekar på datablock en viss fil använder.
    • Triple indirect innehåller ytterligare 256 pekare som vardera pekar på 256 andra pekare som även de pekar på 256 pekare vardera som pekar på datablock en fil använder.

Specialfiler

Filsystemet kan innehålla olika typer av specialfiler, som liksom vanliga filer länkas från kataloger, har i-noder och i flera fall kan ha datablock, men som då de används har speciella funktioner. Till dessa specialfiler hör filer som symboliserar hårdvara (enhetsfiler), som länkar till ett filnamn (symboliska länkar) och katalogerna.

Kataloger

En katalog i UFS är en fil som innehåller en lista på filnamn och i-nodsnumren för filerna ifråga. Eftersom i-nodnumren är unika endast inom ett visst filsystem (vanligen finns ett filsystem per partition) kan en katalog innehålla filer bara från samma filsystem, men nog symboliska länkar som pekar över partitionsgränserna. De symboliska länkarna anger inte i-nod utan målfilens relativa eller fullständiga namn.

En fil kan finnas i flera kataloger under samma eller olika namn. I-noden innehåller information om antalet hårda länkar, alltså antalet referenser från kataloger till filens i-nod. Då filen raderas från en katalog minskar antalet referenser och när antalet når noll kommer filens i-nod att raderas och datablocken frigöras, så snart filen inte längre används.

Referenser

Noter