Unix fájlrendszer

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2015. április 2-án áttekintett verziótól ; az ellenőrzések 24 szerkesztést igényelnek .
UFS
Fejlesztő CSRG
Fájlrendszer UNIX fájlrendszer
Benyújtás dátuma ( 4.2BSD )
Szerkezet
Mappa tartalma asztal
Korlátozások
Maximális fájlméret 273 bájt ( 8 Zbyte )
A fájlnév maximális hossza 255 bájt
Maximális kötetméret 273 bájt ( 8 Zbyte )
Képességek
OS támogatott FreeBSD , OpenBSD , NetBSD , DragonFlyBSD , A/UX és mások

A Unix File System (UFS) a BSD család operációs rendszerei számára létrehozott fájlrendszer , amelyet felülvizsgált és kiegészített formában jelenleg a leszármazott operációs rendszerek ( FreeBSD , OpenBSD , NetBSD ) főként használnak.

A fájlrendszer támogatása a Linux kernelben és a Solaris operációs rendszerben is elérhető .

Tervezés

Fizikailag az UFS a következő részekből áll:

Az inódák sorszámozással vannak ellátva. Történelmi okokból az első néhány inode megmarad, majd a gyökér inode következik .

A fájlkönyvtár csak a fájlok listáját és az egyes fájlokhoz tartozó inode-okat tartalmazza. Az összes fájl metaadatát az inode tárolja.

Történelem és fejlődés

A Unix korai verziói egy egyszerűen "FS" nevű fájlrendszert használtak. Az FS csak rendszerindító blokkokat, szuperblokkot, sok inode-ot és adatblokkot tartalmazott. Ez jól működött a korai Unix időkben gyártott kis lemezeken. De a technológia fejlődött, a lemezek nagyobbak lettek, túl sok inode és adatblokk lett. Ezután az FS-t optimalizálták, és FFS-vé (Fast File System) fejlesztették, amelyben hengercsoportok jelentek meg, amelyek mindegyikének saját inódja volt, és elkerülték az ebből eredő "dump"-ot.

Az FFS célja, hogy megpróbálja lokalizálni az adatblokkok és metaadatok társítását ugyanabban a hengercsoportban, és ideális esetben egy könyvtár összes tartalmát (mind az adatokat, mind az összes fájl metaadatait) ugyanabban a csoportban, így csökkentve a a lemezkönyvtárak tartalmának szétszóródása.

A szuperblokk ezen jellemzői közé tartozik a sávok és szektorok száma, a lemez forgási sebessége és a fej sebessége. Egy teljesen optimalizált rendszerben a fej mozgatható a szomszédos sávok között, hogy kiolvassák a szétszórt szektorokat az átlapolt sávrétegekből.

A lemezméretek növekedésével az optimalizálási szint kevésbé hatékony (különösen azoknál a lemezeknél, amelyek lineáris számozási szektorokat és sávonként változó szektorokat használnak). A lemezek és fájlok számának növekedésével a töredezett darabok olvasása nehezebbé vált. Ennek leküzdésére a BSD eredetileg egy szektorról 1K-ra növelte a fájlrendszer blokkméretét 4.0BSD-ben, FFS-ben pedig 8K-ra. Növelték a rögzített (bit) blokkszélességgel ábrázolható blokkok számát (nagy lemezek felbontása). A blokk méretének növekedésével a sok kis fájlt tartalmazó lemezek sok helyet foglalnak el. A szabad hely nem hatékony felhasználásának problémájának megoldása érdekében az UFS2 fájlrendszer FFS rétegéhez egy töredékszintet adtunk, amely az adatblokk egyes részei - a töredékek - kezelésének módja.

A lemezmeghajtók folyamatosan növekvő mennyisége és a lemezterület címzésének Advanced Formatra való átállása miatt a FreeBSD-ben a fájlrendszer alapértelmezett blokkmérete 16 KB-ról 32 KB-ra, a töredékek mérete pedig 2 KB-ról 4 KB-ra nőtt. Ez az optimalizálás javította a lemez I/O műveleteinek teljesítményét körülbelül 1 TB kapacitású és 4 KB szektorméretű lemezmeghajtókon. A maximális lehetséges blokkméret UFS2/FFS fájlrendszeren 64 KB.

Alkalmazás

Néhány kereskedelmi Unix rendszer, például a Solaris , a HP-UX és a Tru64 UNIX felhasználói az UFS-t alkalmazták. A legtöbben áttelepítették a rendszereket az UFS-re, és saját fejlesztésű kiegészítéseket adtak hozzá, amelyek megakadályozhatják a UNIX más verzióinak felhasználóit az UFS felismerésében. Meglepő módon sokan továbbra is az eredeti adatblokk méretet és blokkszélességet használják, ahogyan az eredeti UFS-ben is, így a platformok közötti kompatibilitás bizonyos foka megmarad. A megvalósítások közötti kompatibilitás a legjobb esetben is hiányos, és meg kell vizsgálni, mielőtt több platformon használnák.

A Solaris 7 -ben a Sun Microsystems beépítette az UFS-naplózást, amely a fájlrendszer-naplózást hozta az UFS-be. A Solaris UFS extrákat is tartalmazott a nagy fájlokhoz és lemezekhez. A Solaris 10-től kezdve a felhasználó választhat UFS vagy ZFS (Sun Advanced File System) közül a telepítés során. Az OpenSolarisban az UFS-t teljesen felváltotta a ZFS.

A 4.4BSD és a BSD Unix rendszerek szétválása után. Olyan rendszerek jelentek meg, mint a FreeBSD , NetBSD , OpenBSD és DragonFlyBSD . Létrejön az UFS1 és az UFS2, amelyek három rétegből állnak - egy felső réteg, amely biztosítja a könyvtárstruktúrát és karbantartja a metaadatokat (engedélyek, engedélyek stb.) a struktúra inode-jában, valamint 2 alsó réteg, amely lehetővé teszi a konténeradatok megjelenítését, mint pl. mint inodes. Ez a hagyományos FFS és LFS támogatása érdekében történt . A felső réteg neve "UFS", az alsó réteg pedig "FFS" és "LFS".

Kirk McKusick a FreeBSD-t FFS-re és UFS-re építette, hogy támogassa az új UFS2-t, amely egy 64 bites blokkmutatót (legfeljebb 8 zettabájtot tesz lehetővé ) változó blokkmérettel (hasonlóan az EFS -hez ), kiterjesztett zászlómezőket, kiterjesztett támogatási attribútumot és POSIX1.e ACLm. Az UFS2-t alapértelmezés szerint UFS-nek hívják a FreeBSD 5.0 ​​óta. A FreeBSD emellett néhány kiegészítést ( Soft Updates ) is tett, valamint lehetővé tette az UFS1 és UFS2 fájlrendszerek létrehozását. A szoftveres frissítéseket a NetBSD-re portolták, de a NetBSD 6.0-ból eltávolítják a kevésbé összetett naplózási mechanizmus fájlrendszer ( WAPBL ) javára, amelyet a NetBSD 5.0-ban az FFS-hez adtak hozzá. Az OpenBSD támogatja a Soft frissítéseket a 2.9-es verzióban [1] és az UFS2-t a 4.2-es verzió óta [2] . A FreeBSD 7.0 óta az UFS a gjournal GEOM szolgáltatót használó naplózott fájlrendszert is támogatja . A FreeBSD 9.0 a szoftverfrissítéseken (SU+J) [3] kiegészítette a naplózási támogatást , ami nagymértékben csökkenti a háttérben végzett fájlrendszer-ellenőrzések szükségességét, és alapértelmezés szerint NFS-stílusú ACL-eket használ.

A Linux olvasási szinten támogatja az UFS-t, de nem támogatja teljes mértékben az UFS írását. A natív Linux ext2 -t az UFS után modellezték (egyes 4.4BSD rendszereken az UFS réteg használhatja az ext2 réteget tárolóként, csakúgy, mint az FFS-t és az LFS-t).

A BSD-től származó NeXTStep szintén az UFS verziót használja. Az Apple Mac OS X rendszerében az UFS a HFS+ alternatívájaként érhető el . A Mac OS X v10.5 verziótól kezdve azonban a Mac OS X "Leopard" nem telepíthető UFS-formátumú partícióra. Ezenkívül nem frissítheti az UFS-re telepített Mac OS X régebbi verzióit Leopardra; a frissítés a partíció újraformázását igényli.

A PlayStation 3 játékkonzol UFS2-t használ a merevlemezén. A PlayStation 2 UFS-t használ. [négy]

Az R.saver programmal elérheti az UFS fájlrendszert a Windows operációs rendszerek családjából .

Jegyzetek

  1. OpenBSD 2.9 kiadás . Letöltve: 2009. március 15. Az eredetiből archiválva : 2008. december 2..
  2. OpenBSD 4.2 kiadás . Hozzáférés dátuma: 2009. március 15. Az eredetiből archiválva : 2009. február 14.
  3. UFS naplózást támogató javítások hozzáadva a FreeBSD-CURRENT-hez . Hozzáférés dátuma: 2016. május 1. Az eredetiből archiválva : 2016. június 2.
  4. A Netkas elkezd játszani JB PS3-al (downlink) . Hozzáférés időpontja: 2012. január 11. Az eredetiből archiválva : 2010. október 29. 

Linkek