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.
A 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.