Tamás Ferenc: Fájlrendszerek

 

HPFS fájlrendszer
NTFS fájlrendszer
Fájlrendszerek Linuxon
ReFS fájlrendszer

Az informatikában a fájlrendszerek tárolják a működéshez szükséges adatokat, továbbá rendszerezik a fájlokhoz való hozzáférést. Ilyen fájlrendszer felel többek között a HDD, az SSD, a PenDrive, valamint az optikai tárolók helyes működéséért. A fájlrendszer kezeli a fájlok adatait és metaadatait, valamint kezeli az adattárolón rendelkezésre álló helyet. A gyors hozzáférés biztosítása mellett a fájlrendszer legfontosabb ismérve az adatok és a fájlok megfelelő, sérülésmentes és biztonságos tárolása és a hozzáférés biztosítása.

A fizikailag létező fájlrendszerek (pl.: FAT, NTFS) mellett egyre gyakoribbak a virtuálisak (pl.: procfs) is, melyek alapvetően egy fizikailag már létező fájlrendszer virtualizációjából jönnek létre. A Microsoft a Windows-rendszerekhez alapvetően 4 típusú fájlrendszert használ: FAT, NTFS, exFAT és ReFS, bár ez utóbbit csak a Windows Server 2012, 2016, valamint a Windows 8, 8.1 és 10 támogatja és használja, de képtelen róla boot-olni. A Windows-alapú rendszerek alapvetően az angol ABC betűit használják a meghajtók jelölésére, így a mostanra már elavult floppy lett az A: és a B: meghajtó, a rendszerlemez a C: lett, míg a többi megható betűjele folyamatosan következik. Az is gyakori, hogy egy HDD-t több részre oszt a rendszer (pl. telepítéskor), majd az így létrehozott partíciókat más betűkkel jelöli meg.

 

A legismertebb fájlrendszerek egy adattároló eszköz segítségével biztosítják, hogy elérhetőek legyenek a bennük tárolt blokkok. A fájlrendszer szoftvere szervezi ezeket a blokksorozatokat fájlokká és mappákká, melyek így sokkal könnyebben hozzáférhetőek, mint az általában adott hosszú blokkok. Maga a fájlrendszer tárolja azt is, hogy egy adott fájlhoz mely' blokkok és milyen sorrendben tartoznak; továbbá a valamilyen okból tárolásra már nem alkalmas blokkokat is jelzi. A hagyományos fájlrendszerek alapvető szolgáltatásai közé tartozik többek között a fájlok létrehozása, törlése, másolása, mozgatása. A legtöbb fájlrendszer ezen felül is nyújt szolgáltatásokat, például: csonkolás, kibővítés, függőségi kapcsolatok kialakítása. Minden fájlrendszer egyik legfontosabb eleme a biztonság, tehát annak szabályozása, hogy melyik felhasználó, illetve program mihez és hogyan férhet hozzá.

A fájlrendszerek egyik legfőbb feladata a megfelelő mennyiségű hely biztosítása. Ezt legegyszerűbben úgy érik el, hogy a már foglalt szektorokról vezetnek egy foglaltsági táblát (lásd: FAT a DOS és a korai Windows operációs rendszereknél). Ez jelzi, hogy a hozzáférhető szektorokból jelenleg hány foglalt és mennyi szabad. A DOS/Windows rendszerek esetén a szektorok jellemzően azonos méretűek a lemez egy megadott részén (partícióján) belül. Ha kevés, nagy fájlt kell tárolnunk (pl.: filmek, zenék), akkor erre célszerű nagy adatblokk-méretet választani. Ám ha a nagy adatblokk-mérettel rendelkező lemezterületre sok apró fájl kerül, akkor már rengeteg felesleges üres hely keletkezhet. Lássunk erre egy elég egyszerű számítást!

Szektorméret (KB)

Átlagos fájlméret (KB)

Foglalt hely (KB)

Kihasználatlan (KB)

64

64

64

0

64

48

48

16

64

32

32

32

64

16

16

48

64

4

4

60

64

1

1

63

Jól látható, hogy kis fájlméretnél a 64 KB-os szektorméret esetén sok kihasználatlan hely marad, viszont nagy fájlméret esetén nincs kihasználatlan hely.

További gondot okozhat a fájlrendszer nem megfelelő sebességű hozzáférése. Üres adattároló esetén a fájlrendszer szép sorban rakja le az egyes adattömböket. Ha azonban a lemezen sok minden megfordul ideig-óráig, akkor előbb-utóbb sok állomány ki lesz törölve. Ennek helyére a fájlrendszer újabb állományokat rak be, de ezek már nem biztos, hogy a megfelelő helyre kerülnek megfelelő sorrendben. Ilyenkor a fájlrendszer óhatatlanul töredezetté válik. Minden komolyabb fájlrendszer lényeges funkciója a töredezettségének kiküszöbölése, azaz a töredezettségmentesítés.

Megjegyzés: a fájlrendszerek alapvetően HDD-kre lettek kitalálva, amiket kisebb-nagyobb gyakorisággal kell töredezettség-mentesíteni. Ám az SSD-k esetén ezt már tilos megtenni, mivel radikálisan csökkenti az eszköz élettartamát. Elméletileg a Windows 7 feletti operációs rendszerekben az SSD-k defragmentálása le van kapcsolva, de erről nem árt megbizonyosodni!

A fájlok azonosítására legegyszerűbben a fájlnevek használhatóak. A korai fájlrendszerek kizárólag angol betűket és számjegyeket használtak azonosításra, azok is legfeljebb pár karakter hosszúak lehettek. (pl.: DOS-korszakban: max. 8 betűs fájlnév és max. 3 betűs kiterjesztés) Már a kezdeti időktől fogva jellemző, hogy a fájlok azonosítása nem csupán a nevük alapján történik, hanem a típusuk alapján is, ez legegyszerűbben a fájlok nevéhez kapcsolt pár betűs kiterjesztéssel oldható meg. Ám az idő előrehaladtával egyes fájlrendszerek alkalmassá váltak a kis- és nagybetűk megkülönböztetésére (Unix/Linux-rendszerek), valamint a nemzeti karakterek fájlnevekben való eltárolására, például Unicode rendszerben. A fájlok mennyiségének növekedése miatt óhatatlanul kialakultak a mappák, illetve a könyvtárak. Ezek általában többszintűek és hierarchikus elrendezésűek, azaz a legfőbb tároló mappa (pl: gyökér) tartalmazhat könyvtárakat és fájlokat, majd ezen könyvtárak tartalmazhatnak újabb alkönyvtárakat és fájlokat, stb.

A fájlrendszerek nem csupán a fájlok tárolására, azonosítására alkalmasak, hanem egyes adatok megcímkézésére is – például metaadatokkal. Ezek a címkék lehetnek hozzáférési kulcsok, olvasási/írási jogok, illetve tulajdonos-jelzők és egyéb attribútumok.


FAT fájlrendszer

Ez a szervezési rendszer az egyik legegyszerűbben megérthető és nagyon könnyen adminisztrálható struktúra, amelynek legfőbb sajátossága a nevét is adó fájlkiosztási tábla (File Allocation Table = FAT). Hátránya, hogy igen nagy méretű és hibatűrő képessége is igen alacsony. Ez nem más, mint a kötet legfelső szintjén elhelyezkedő adattáblázat. Bár ez az egyik leggyengébben védett struktúra, de vannak előnyei. Kezdjük például azzal, hogy a FAT tábla helyből két példányban létezik, tehát ha az első példány megsérül, akkor helyre lehet állítani a második példányból. Ami viszont hátrány, hogy a FAT-táblákat és a gyökérkönyvtárat (root) rögzített helyen kell tárolni, így a lemezek ezen része az állandó használattól sérülhet.

A FAT-tel formázott rendszer fürtökre van osztva, tehát a kezelő szoftver egy bejegyzést tesz a gyökérkönyvtárba, melyben szerepelteti az első szelet helyét és a szeletek számát. Magában a szeletekben pedig a szelet végén mindig a következő szelet eleje van.

Fájlrendszerek: FATA bal oldali ábrán a lemez egy partíciója látható. Elöl van a gyökér-szektorban a FAT1, a FAT2 és maga a gyökér-könyvtár. Összesen három bejegyzés található a könyvtárban: az f1 fájl 5 szeletből áll, az f2 fájl három szeletből, míg az f3 4 szeletből. Az f1 fájl a legelső lehetséges helyen kezdődik, majd minden második szektorban folytatódik. Az f2 a második szektorban kezdődik, majd ez a minden második helyen folytatódik. Az f3 pedig az első üresen hagyott helyen kezdődik, szám szerint a 8.-on. A szoftver ezt a fájlt is minden második helyre helyezi be, mivel a lemez forgási sebessége olyan, hogy az egy szektor forgása alatt képes az operációs rendszer feldolgozni az előzőekben beolvasott szektort. A fájlok végét a szelet jobb alsó sarokban látható kis lezáró-rész jelzi. (A rajz Corel12-vel készült.)

A FAT-tábla frissítése nagy fontosságú művelet, ráadásul elég sok időbe is telik, ám a rendszeres karbantartás elmulasztása idővel adatvesztést eredményezhet. A partíció akkor tekinthető töredezettnek, amikor már a túl sok írási-olvasási lemezművelet miatt sok fájltöredék itt-ott foglal helyet. Ilyen esetben az egyes fájlok nem szépen sorban jönnek a lemez szektoraiban, hanem a fájl írásakor éppen elérhető helyecskéken vannak. Ezt a káoszt rendezi sorba az operációs rendszerbe ágyazott lemez-töredezettségmentesítő szoftver. Bár minden operációs rendszernek van ilyen beépített szoftvere, de gyakori az is, hogy egy külső cég által készített szoftver jobb, mint a beépített verzió! A frissítéskor egyébként a lemez olvasófeje állandóan vissza-visszatér a kiinduló szektorhoz, így a művelet sokszor órákat vesz igénybe egy régen optimalizált lemez esetén. Ráadásul a FAT rendszere elég gyengén védett, mivel a fájlok mindössze négy attribútummal rendelkezhetnek: írásvédett (read-only), rejtett (hidden), rendszer (system) és archivált (archivated). Ám ezeket igen könnyű a megfelelő paranccsal felülírni, ami a DOS-rendszerekben az ATTRIB.

Elnevezési megkötöttségek: a FAT fájlrendszer kezdeti korszakában a DOS-alapú rendszereken csak 8.3-as fájlnevek voltak használhatóak, azaz a fájl neve minimum 1, maximum 8 karaktert tartalmazhatott, míg a kiterjesztés min.0, max. 3 karakter lehetett. A karakterek alapvetően az angol ABC betűi lehettek, ám a névben nem használható semmilyen központozás, azaz tiltottak a következő karakterek: . " / \ [ ] : ; | = ,

A kiterjesztés előtt kötelező kitenni egy pontot (.), ám a kiterjesztésre (ha van egyáltalán kiterjesztés) ugyanilyen kötöttségek jellemzőek. További megkötöttség még, hogy pár szó nem használható fájlnévként. Ezek a következők: CON, AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, PRN, NUL.

A korai DOS-alapú FAT-es fájlrendszerekre jellemző, hogy az operációs rendszer az összes fájlnevet és kiterjesztést nagybetűssé alakítja. Szintén a DOS alatti fájlrendszerek jellemzője, hogy egy fájl törlése a gyakorlatban úgy történik, hogy a fájl nevének első karakterét az operációs rendszer kicseréli 255-ös (máshol nem használt) karakterre; valamint a fájl össze bejegyzését a FAT-táblákban a rendszer foglaltról szabadra állítja. Éppen ezen gyenge törlés miatt az ilyen rendszerekben a véletlen törlések ellen könnyen alkalmazható a törlés visszavonása (undelete) művelet, ahol a felhasználó feladata legfeljebb annyi szokott lenni, hogy a visszaállítandó fájl első betűjét meg kell tippelnie és kézzel kell beírnia.

Maga a FAT rendszert sokáig favorizáló Microsoft sem ajánlja a 200 Mbyte-nál nagyobb partícióknál a rendszert, mivel a kötet méretének növekedésével a fájlkezelés sebessége durván lecsökken. A FAT-partíciók felső mérethatára DOS-rendszerekben 2 GByte, míg Windows NT-rendszerekben 4 GByte.

 

FAT eredete: a rendszert eredetileg a floppy-k kezelésére tervezte még az 1970-es években Mark McDonald és Bill Gates, ám a kódolást már csak Mark McDonald végezte. Eredetileg csak a 8-bites operációs rendszerekben gondolkodtak a tervezők a Microsoft önálló Disk BASIC-80-as rendszere számára, amely az akkor még divatos 8 inches (kb. 200 mm-es átmérőjű) floppy-k kezelésére volt hivatott. Ne feledjük, hogy 1977-et írtunk! Később a rendszer rohamos gyorsasággal terjedt el a Microsoft által tervezett 16 bites MS-DOS rendszerek jóvoltából az IBM asztali gépein, a floppy-s kezdetek után a hamarosan megjelenő HDD-ken is. A 16 bites rendszerekre való áttéréskor a kezelhető lemezméret is megnőtt immáron 32 Mbyte-ra. Ez volt a FAT12-es rendszer.

Ezt gyorsan váltotta a FAT16-os (1984-es próba után 1987-es bevezetés), amely az MS-DOS 3.3-as bevezetésével nyert belépést a piacra. Itt már 65535 önálló szektor volt, így a lemezek mérete is kicsit megnőtt, mivel elérhető volt a 2 GB-os méret is, bár a kor lemezei ennél még jóval kisebbek voltak. A következő lépés volt az 1996-ban, a Windows 95 OSR2 megjelenésekor debütáló FAT32-es rendszer, ami már a lemezcímezhető méretét kitolta 2 TB-ra 512 byte-os szektorok segítségével; illetve 16 TB-ra 4096 byte-os szektorokkal. A FAT32-es rendszerek jobban használják ki a rendelkezésre álló területet, mint elődjeik, mivel az alapértelmezett szektorméret mindössze 4 KB. Ráadásul a gyökérmappa áthelyezhető, így a meghajtó egy része nem fog túl gyorsan meghibásodni. A FAT32 ráadásul képes a FAT-tábla másolatának aktívvá tételére a szokásos másolás megtiltása mellett, így kicsit biztonságosabbnak tekinthető a rendszer. További újdonság a FAT32 rugalmassága, mivel a gyökérmappa-bejegyzések számára vonatkozó korábbi korlát megszűnt.

Szintén a Windows 95 tette először a Microsoft-rendszerek családjában lehetővé az addigi 8.3-as elnevezések helyett a hosszabb fájlneveket, melyek konkrétan max. 255 db karaktert tartalmazhattak.


Az egyik kijelölt utód a FAT leváltására a 2006. novemberében a Windows Embedded 6.0-val bevezetett exFAT rendszer, amit az NT-családba a Windows Vista SP1-gyel vezettek be. Bár ez a rendszer is FAT-alapú, de inkompatibilis, ráadásul saját szabadalmak és biztonsági rendszerek védik. A Microsoft-rendszerek grafikus felülete és a parancssor-alapú rendszerek is képesek használni az NTFS alternatívájaként. Használata főként kisebb partíciókon javasolt, valamint flash-eszközökön (például SDXC-kártya vagy Memory Stick XC), ahol egyébként FAT32-t használnának. Az exFAT tömeges elterjedésének komoly korlátja, hogy a Microsoft kereskedelmi egyezményhez köti a forgalmazását, így kizárja a nyílt forráskódú rendszereket. Az exFAT számos előnnyel rendelkezik a FAT32-höz képest, melyek közül csak az egyik a régi 4 GB-os mérethatás áttörése; így kifejezetten alkalmas camcorderek és videófelvevők fájlrendszerének! A partíció típusa 0x07, akár az IFS-nek, a HPFS-nek, illetve az NTFS-nek.

Elméleti fájlméret: 128 PB-1 szemben a FAT32-es rendszerek 4 GB-1-ével. Ez az óriási lemezkapacitás is jól skálázható, mivel jelenleg ekkora HDD-k még nincsenek a hétköznapi forgalomban! Komolyan javítottak a szabad helyek kiosztási sémáján, így komolyan javult a rendszer általában elérhető üres helyeinek száma. Az időbélyeg legkisebb egysége 10 ms szemben az NTFS-rendszerek 100 ns-ével. Könyvtárankénti max. 2 796 202 fájl támogatása szemben a FAT32-es rendszerek 65 534 korlátjával. A Valid Data Length (VDL; kb. valós adathossz) technológia segítségével előre le lehet foglalni két fájl valódi méretének megfelelő tárhelyet. Fájlok maximális száma: 232-11, míg ez a szám a hagyományos FAT32-ben "csak" 228-11 volt. Egy cluster maximális mérete akár 32 MB is lehet. A meta-adatok tartalmazzák az ellenőrző összeget (checksum) is. Az „.” és a „..” fájlbejegyzések fizikai eltávolítása az alkönyvtárakból, valamint a hagyományos MS-DOS alapú fájlneveket támogatásának megszüntetése. A Windows XP és a Vista csak bizonyos frissítések után támogatta az exFAT rendszereket. A Windows Vista nem képes az exFAT formátumú használni a ReadyBoost technológiához, de ezt a korlátot a Windows 7 megszüntette, így a ReadyBoost nagy méretű partíciókról, illetve külső meghajtókról is lehetséges volt.

A FAT16 alapértelmezett cluster-méretei a különféle rendszereken: 

Partíció méret

Windows NT 3.51

Windows NT 4.0

Egyéb Windows

(lásd lent!)

7 MB–8 MB

Nem támogatott.

8 MB–32 MB

512 bájt

512 bájt

512 bájt

32 MB–64 MB

1 KB

1 KB

1 KB

64 MB–128 MB

2 KB

2 KB

2 KB

128 MB–256 MB

4 KB

4 KB

4 KB

256 MB–512 MB

8 KB

8 KB

8 KB

512 MB–1 GB

16 KB

16 KB

16 KB

1 GB–2 GB

32 KB

32 KB

32 KB

2 GB–4 GB

64 KB

64 KB

64 KB

4 GB–8 GB

Nem támogatott

128 KB (*)

Nem támogatott

8 GB–16 GB

Nem támogatott

256 KB (*)

Nem támogatott

> 16 GB

Nem támogatott

Nem támogatott

Nem támogatott

(*) = Csak az 512 bájtnál nagyobb szektorméretű médiákon hozzáférhető.

Egyéb támogatott Windows-ok: Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000.

 

A FAT32 alapértelmezett cluster-méretei a különféle rendszereken:

Partíció méret

Windows NT 3.51

Windows NT 4.0

Egyéb Windows

(lásd lent!)

7 MB–16 MB

Nem támogatott.

16 MB–32 MB

512 bájt

512 bájt

Nem támogatott.

32 MB–64 MB

512 bájt

512 bájt

512 bájt

64 MB–128 MB

1 KB

1 KB

1 KB

128 MB–256 MB

2 KB

2 KB

2 KB

256 MB–8 GB

4 KB

4 KB

4 KB

8 GB–16 GB

8 KB

8 KB

8 KB

16 GB–32 GB

16 KB

16 KB

16 KB

32 GB–2 TB

32 KB

Nem támogatott

Nem támogatott

> 2 TB

Nem támogatott

Nem támogatott

Nem támogatott

8 GB–16 GB

Nem támogatott

256 KB (*)

Nem támogatott

Egyéb támogatott Windows-ok: Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000.

Az exFAT alapértelmezett cluster-méretei a különféle rendszereken:

Partíció méret

Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 8

7 MB–256 MB

4 KB

256 MB–32 GB

32 KB

32 GB–256 TB

128 KB

> 256 TB

Nem támogatott.

Folytatása következik!!!!

 

Felhasznált szakirodalom:

- http://hu.wikipedia.org/wiki/F%C3%A1jlrendszer

- http://en.wikipedia.org/wiki/File_system

- http://support.microsoft.com/kb/100108/hu

- http://support.microsoft.com/kb/118335/HU

- http://en.wikipedia.org/wiki/File_Allocation_Table

- http://support.microsoft.com/kb/154997/hu

- http://www.tldp.org/HOWTO/Filesystems-HOWTO.html

© TFeri.hu, 2014.

Felújítva: 2020.