6. Előadás

Fájlrendszer

  • Fájl: adatok egy logikai csoportja, névvel egyéb paraméterekkel ellátva.
  • Könyvtár: fájlok (könyvtárak) logikai csoportosítása.
  • Fájlrendszer: módszer, a fizikai lemezünkön, kötetünkön a fájlok és könyvtárak elhelyezés rendszerének kialakítására.

Fájl

  • A fájl az információtárolás egysége.

  • Névvel hivatkozunk rá.

  • Jellemzően egy lemezen helyezkedik el, de általánosan az adathalmaz, adatfolyam akár képernyőhöz, billentyűzethez is köthető.

  • A lemezen általában 3 féle fájl, állomány található:

    • Rendes, normál felhasználói (alkalmazói) állomány.
    • Ideiglenes állomány
    • Adminisztratív állomány. Ez a működéshez szükséges, általában rejtett.
  • Fájlnév: Karaktersorozat

    • Operációs rendszer függvénye, hogy milyen a szerkezete(hossza, megengedett karakterek, kis- nagybetű különbözőség)
  • Egyéb attribútumok (információ):

    • Mérete, tulajdonosa, utolsó módosítás ideje, rejtett (hidden) fájl-e, rendszer fájl-e, hozzáférési jogosítványok, tulajdonos,
  • Fizikai elhelyezkedés:

    • Valódi fájl, link (hard), link (soft)

Könyvtár

  • Valójában egy speciális bejegyzésű állomány, tartalma a fájlok nevét tartalmazó rekordok listája.
  • Könyvtár szerkezetek
    • Katalógus nélküli rendszer, szalagos egység
    • Egyszintű, kétszintű katalógus rendszer (nem igazán használt)
    • Többszintű, hierarchikus katalógus rendszer
      • Fa struktúra
      • Hatékony keresés
      • Ma ez a tipikusan használt.
  • Abszolút, relatív hivatkozás
    • PATH környezeti változó

Hozzáférési jogok

  • Nincs általános jogosítvány rendszer
  • Jellemző jogosítványok:
    • Olvasás
    • Írás, létrehozás, törlés
    • Végrehajtás
    • Módosítás
    • Full control
  • Jogok nyilvántartása:
    • Attribútumként
    • ACL
      • NFS-AFS különbözőség, hasonló elv, különböző implementáció

Fájlok elhelyezése

  • A partíció elején, az un. Szuperblokk (pl. FAT esetén a 0. blokk ) leírja a rendszer jellemzőit.
  • Általában következik a helynyilvántartás (FAT, láncolt listás nyilvántartás)
  • Ezután a könyvtárszerkezet (inode), a könyvtár bejegyzésekkel, fájl adatokkal. (FAT16-nál a könyvtár előbb van, majd utána a fájl adatok.)

Folyamatos elhelyezésű

  • First Fit (első szabad hely, ahová befér)
  • Best Fit (arra a helyre, ahol a legkevesebb szabad hely marad)
  • Worst Fit (Arra a helyre illesztjük, ahol a legtöbb szabad hely marad)
  • Mindegyik veszteséges.

Láncolt tárolás

  • Nincs veszteség (csak a blokk méret).
  • A fájl adatai egy láncolt blokk listában vannak.
    • Az utolsó blokk elérése lassú.
  • Szabad-foglalt blokkok: File Allocation Table, FAT
    • Nagy méretű lehet és a FAT mindig a memóriában van!

Indextáblás elhelyezés

  • A könyvtár katalógus a file node-ok címét tartalmazza
  • Az inode cím mutat a fájl adatokra.

Könyvtár megvalósítása

  • A fő funkciója, hogy a névből meghatározza az adatok helyét. (keresés: lineáris, hash táblás, cache- elt)
  • A könyvtárbejegyzés tartalmazhatja a:
    • A címét a teljes fájlnak (folyamatos elhelyezésnél)
    • Az első blokk címét (láncolt listánál)
    • Az i-node számot.
  • Hogyan tárolja az attributumokat?
    • Bejegyzések hossza azonos, rögzített
    • i-node-okban

Fájlnév tárolás

  • Korábban – fix hosszúságú (8+3)
  • Ma – általában max 255 karakter hosszú
  • Helytakarékos megoldások:
    • Különböző hosszúságú bejegyzések. Az első helyen a bejegyzés hossza, majd az attribútumok, majd a név.
    • Egyforma hosszú bejegyzések, mutató a fájlnévre.

Lemez kvóták

  • A felhasználói felnyitáskor
    • Megnyitja a fájl táblát a memóriában
    • A kvóta táblát a memóriában
  • Ha új blokkot foglal -> változik a kvóta tábla
  • Bejelenkezéskor ellenőrzés
    • Szoft limit átlépésekor bejelentkezhet (kivéve túllépte a lehetséges figyelmeztetések számát)
    • Hard limit átlépésnél – be sem jelentkezhet

Megosztott fájlok

  • Megoldandó, hogy mindenki számára minden változás látszódjon!
  • Két módszer használatos:
    • A fájl blokkjai egy struktúrában találhatóak és erre mutat a könyvtárbejegyzés (nem a blokkok maguk vannak felsorolva a bejegyzésben) (pl. UNIX, i-node) A user1 és user2 ugyanarra a struktúrára mutat. (Mi történik törlésnél?)
    • Új link fájl létrehozásával. (symbolic link) (lassú elérés.)

Titkosított fájlrendszer

  • CPU támogatás
    • AES-NI (New Instructions) utasításkészlet
    • Szimmetrikus kulcs
  • Windows 2000 óta létezik NTFS-ben (EFS)
  • Windows Jelenleg: Bitlocker
    • Beépített win10 prof.
  • Checkpoint Pointsec- független titkosító
  • Linux – dm-crypt
    • 2.6.4 kernel óta, alapértelmezett titkosítás

Mentések

  • Fizikai mentés(Full backup) (mindent lemásol)
    • Előny (simple, quick)
    • Hátrány (felesleges mentés, pl. szabad blokkok..)
  • Logikai mentés (csak a módosítottat menti)
    • Előny (Igény esetén egy adott fájl vagy könyvtár is
      visszaállítható nemcsak az egész)
    • Hátrány (bonyolult algoritmus)
  • Vegyes használat
    • Időnként fizikai mentés
    • Sűrűbben logikai mentés
  • Visszaállítás (fizikai mentés, első logikai mentés, …., utolsó logikai mentés

Logikai mentés

  • A UNIX rendszerekben gyakran használt algoritmus

    • Minden módosított fájl és minden könyvtár megjelölése
    • Eltávolítjuk azokat a könyvtár jelöléseket, amelyekben
      (vagy amelyek alkönyvtáraiban) nem volt módosítás.
    • Mentjük a megjelölt könyvtárakat attribútumokkal).
    • Mentjük a megjelölt fájlokat attribútumokkal.
  • A szabad blokk lista nem fájl (nincs mentve). (Visszaállítható, hiszen a komplementere a foglaltaknak.)

  • Linkek – minden könyvtárban, ahol a módosított állományra volt link, azt vissza kell állítani.

  • A fájlok lyukakat tartalmazhatnak (pl. seek+write) – Visszaállításnál a nem használt helyeket nem kell lefoglalni!

  • Nem valódi fájlokat pl. nevesített csővezetékeket nem kell menteni.

Fájl, könyvtár műveletek

  • Fájl
    • Megnyitás
    • Műveletek: Írás, olvasás, hozzáfűzés
    • Lezárás
  • Adatok
    • Bináris- bájt sorozat
    • Szöveges- karakter sorozat
  • Elérés módja, szekvenciális, random
  • Könyvtár műveletek
    • Létrehozás, tartalom listázása, állomány törlés

Fájlrendszer típusok

  • Merevlemezen alkalmazott fájlrendszer
    • FAT, NTFS, EXT2FS, XFS, stb.
  • Szalagos rendszereken (elsősorban backup) alkalmazott fájlrendszer
    • Tartalomjegyzék, majd a tartalom szekvenciálisan
  • CD, DVD, Magneto-opto Disc fájlrendszere
    • CDFS, UDF (Universal Disc Format), kompatibilitás
  • RAM lemezek (ma már kevésbé használtak)
  • FLASH memória meghajtó (FAT32)
  • Hálózati meghajtó
    • NFS,AFS
  • Egyéb pszeudó fájlrendszerek:
    • Zip, tar.gz, ISO

Naplózott fájlrendszerek

  • Fájlrendszer sérülés, áramszünet stb. esetén inkonzisztens állapotba kerülhet.
  • Gyakran nevezik: LFS-nek (Log-structured File System) vagy JFS-nek(Journaled)
  • Adatbázis kezelők mintájára: művelet + log
    • Tranzakciós alap
    • Leállás, hiba esetén a log alapján helyre lehet állítani.
    • Célszerűen a log másik lemez (másik partíció)
  • Nagyobb erőforrás igény- nagyobb megbízhatóság
  • Adatmódú – Metaadat alapú naplózás

Fájlrendszer támogatás

  • Mai operációs rendszerek "rengeteg" típust támogatnak
    • PL: Linux 2.6 kernel több mint 50-et.
  • Fájlrendszer csatolása
    • Mount, eredményeképpen a fájlrendszer állományok elérhetők lesznek.
    • Automatikus csatolás (pl. USB drive)
    • Kézi csatolás (Linux, mount parancs)
  • Külön névtérben való elérhetőség (Windows)
    • A,B,C,
  • Egységes névtér (UNIX)

Különböző fájlrendszerek együttes használata egy gépen

  • Lehetséges több különböző fájlrendszert használni ugyanazon a gépen.
    • Pl. Windows: NTFS, FAT-32, UDF (DVD,CD) stb.
      • A rendszer egymástól függetlenül használja őket. Az hogy éppen melyiket kell használni, a drive betű határozza meg. (c:, a:)
  • Pl.:UNIX: ext2,ext3, UDF, stb.
    • A modern UNIX rendszerek egységesen kezelik létrehozva egy közbülső réteget a virtuális fájlrendszert! (VFS)

Alkalmazás és lemez kapcsolat

  • Réteges felépítés
    • Alkalmazói szint
      • Az alkalmazás, fejlesztői könyvtárak segítségével megoldja a lemezen tárolt adatok írását-olvasását.
      • Szöveges, bináris fájlműveletek
    • Operációs rendszer szint
      • Fájlrendszer megvalósítás
        • Elérhetőség, jogosultságok
      • Kötetkezelő (Volume manager)
      • Eszközmeghajtó (device driver)
        • BIOS-ra alapozva
    • Hardver eszköz szintje
      • I/O meghajtó,IDE, SATA stb.

FAT

  • File Allocation Table

    • Talán a legrégebbi, ma is élő fájlrendszer!
  • A FAT tábla a lemez foglaltsági térképe, annyi eleme van, ahány blokk a lemezen

    • Pl: Fat12, FDD, Cluster méret 12 bites. Ha értéke 0, szabad, ha nem foglalt.
    • Biztonság kedvéért 2 tábla van.
  • Láncolt elhelyezés

    • A katalógusban a file adatok (név stb.) mellett csak az első fájl blokk sorszáma van megadva.
    • A FAT blokk azonosító mutatja a következő blokk címét.
    • Ha nincs tovább, FFF az érték.
  • Rögzített bejegyzés méret, 32 bájt (max. 8.3 név)

  • System,Hidden,Archive,Read only, könyvtár attribútumok

  • A fájl utolsó módosítás ideje is tárolva van.

  • FAT16, 16 bites cluster leíró, 4 bájt (2x2) írja le a fájl kezdőblokkját

    • Max. 4 GB partíciós méret (64kb blokk méretnél), jellemzően 2 GB.
    • Fájl méret maximum is a 4 (2) GB.
    • Külön könyvtári terület (FDD-n ez a 0. sáv)
      • FDD-n 512 könyvtári bejegyzés
      • HDD-n 32736 könyvtári bejegyzés (16 bit előjelesen)
  • FAT32 (1996-tól elérhető)

    • 28 bites cluster leíró
    • 2 TB partíciós méret (alap szektor mérettel)
  • 32MB-ig, 1 cluster = 1 blokk(512bájt)

    • 64 MB, 1 cluster=1KB (2 blokk), 128MB, 1 cluster=2KB
    • 1 cluster max. 64 KB lehet.
  • Támogatták már a hosszú fájl neveket is

    • Többszörös 8.3 részre fenntartott bejegyzésekkel.
  • Töredezettség mentesítés szükséges.

UNIX könyvtárszerkezet

  • Indextáblás megoldás
  • Boot blokk után a partíció szuperblokkja (fájlrendszer paraméterek)
  • Ezt követi a szabad terület leíró rész.
  • i-node tábla, majd gyökérkönyvtár bejegyzéssel)
  • Moduláris elhelyezés, gyorsan elérhető az információ, sok kicsi táblázat, ez alkotja a katalógust.
  • Egy fájlt egy i-node ír le!
    • 15 rekeszből áll, első 12 a fájl blokkokra mutat.
    • Ha kevés,a 13. rekesz újabb i-node-ra, ami +15 rekesz.
    • Ha ez is kevés, a 14. rekesz újabb i-node-ra ami az első mintáját ismétli.

NTFS

  • New Technology File System

    • FAT-NTFS hatékonysági határ: kb. 400 MB.
  • 255 karakteres fájl név, 8+3 másodlagos név

  • Kifinomult biztonsági beállítások

  • Ahogy a FAT esetén, itt is szükséges a töredezettség mentesítés.

  • Titkosított fájlrendszer támogatása, naplózás

  • POSIX támogatás

    • Hard link (fsutil hardlink parancs), időbélyegek, kis-nagybetűk különböznek
  • Tömörített fájl, mappa, felhasználói kvóta kezelés

  • Az NTFS csak klasztereket tart nyilván, szektort (512bájt) nem

  • NTFS partíció felépítése

    • A Master Table egy táblázat
    • A File System Data szintén

MFT

  • NTFS partíció az MFT (Master File Table) táblázattal kezdődik
    • 16 attribútum ad egy fájl bejegyzést.
    • Minden attribútum 1kb. Ha ez nem elég akkor egy attribútum mutat a folytatásra.
    • Az adat is egyfajta attribútum, így egy bejegyzés több adatsort tartalmazhat. (PL: Betekintő kép)
    • Elvi fájlméret 2^64 bájt lehet
    • Ha a fájl < 1kb, belefér az attribútumba, közvetlen fájl.
    • Nincs fájl méret maximum

Források