Nyíregyházi Egyetem Matematika és Informatika Intézete
09
Fájl rendszer Terminológia Fájl és könyvtár (mappa) koncepció Elérési módok Fájlattribútumok Fájlműveletek, fájlszerkezetek ---------------------------------------- Könyvtár szerkezet ---------------------------------------- Fájlrendszerek megvalósítása
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
1
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
Terminológia Fájl (file) Az adatokat és a programokat a számítógépeken állományokban, más néven fájlokban tároljuk. A fájlokat nevükkel azonosítjuk, amelyet szabadon válaszhatunk. A fájl neve után szokás ponttal elválasztva egy ún. kiterjesztést (extension) is megadni. A kiterjesztés mindig utal az állomány tartalmára, formátumára. Ilyen kiterjesztések a .txt, .exe, .jpg, .pdf, .dll, .bat, .com, stb. A közönséges fájlok vagy ASCII (American Standard Code for Information Interchange), vagy bináris fájlok. Az ASCII fájlok szövegsorokat tartalmaznak. Néhány rendszerben minden sor a „kocsi vissza” (carriage return, CR) jel zár (ASCII kódja decimális 13). Más rendszerekben a „sorvég” (line feed, soremelés) jelet Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
2
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
használják elválszójelként (ASCII kódja decimális 10). Néha mindkét jelet kell használni (pl. MS-DOS, Windows). Ez biztosítja azt, hogy minden sor más-más hosszúságú lehessen. Adott például egy Walsh mátrix tulajdonságairól szóló tudományos cikk, amit „WalshProps” nevű fájlban szeretnénk tárolni Adobe (.pdf – Portable Document Format) formátumban, akkor a fájl neve kiterjesztéssel együtt így nézhet ki: „WalshProps.pdf”. Ha az állomány a Walsh mátrix elemeit (amúgy, csak -1 és +1) tartalmaz MS Excel táblázatkezelő formátumban, akkor az állomány neve és kiterjesztése így nézhet ki: „WalshProps.xlsx”. A személyi számítógépek terjedésének kezdetén, az elterjedt egyfelhasználós rendszerek jellemző maximális fájlnév hosszúsága 8 karakter, a kiterjesztések hossza pedig 3 karakter volt. Ma a hosszú fájlneveket használhatunk, de ezek sem lehetnek Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
3
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
végtelenek. Maximális fájlméret általában minden rendszeren 255 karakter. Ebbe beleértve a fájl kiterjesztését is. Ennek ellenére nem ajánlott a túl hosszú fájlnevek használata, mert az elterjedt Windows operációs rendszerben egy fájl elérési útvonal (azaz „teljes név”) hosszúsága maximálisan 260 karakter lehet, és fájlok kezelhetetlenné válhatnak a fájlkezelőben: c:\Program Files\ …..\Valami.cs max. 260 karakter ahol Valami.cs max. 255 karakter
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
4
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
Könyvtár vagy mappa (folder) A könyvtár másik nevén mappa. Régebben nevezték tartalomjegyzéknek is. Olyan logikai egységek, amelyek állományokat és/vagy más könyvtárakat (alkönyvtár) tartalmaznak. A legfelső szintű könyvtárat szokás gyökérkönyvtárnak (Root, jelölése „/” vagy „\”) vagy egyszerűen csak gyökérnek nevezni. A gyökérből újabb könyvtárak nyílnak, azokból újabb alkönyvtárak.
A könyvtárak szerkezete hierarchikus fa struktúra (irányított körmentes gráf) Minden alkönyvtárból újabb alkönyvtárak nyílhatnak. A könyvtárak hierarchikus rendszere fa szerkezettel írható le. Windows (PC-DOS, MS-DOS, CP/M, stb.) operációs rendszerek esetén a gyökér könyvtár egy meghajtó (volume ≈ kötet), amit egy betűjellel azonosítunk. Ezekben a rendszerekben több ilyen meghajtó is lehet, mindegyik más-más betűjelet kap. A rendszernek van egy elsődleges meghajtója, amin a rendszer helyet foglal, ami Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
5
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
általában a C: meghajtó. Az A és a B a ma már ritkán használt hajlékonylemezes (floppy disk) egységek részére van fenntartva. Más szavakkal: minden meghajtónak van saját gyökere, pl. A:\, C:\, stb.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
6
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
Unix-os, linux-os rendszerek esetén a gyökérnek nincs betűjele, mert mindig csak egyetlen gyökér lehet. Ha egy másik meghajtót szeretnénk beilleszteni (mounting* ≈ felállítás, felcsatolás), akkor azt valamelyik alkönyvtárba szokás megtenni. Ha floppyt, CD-ROM-ot vagy pendrive-ot használunk azt a legtöbb linux-ban a „/media” könyvtárban érhetjük el.
*unmounting - leállítás, lecsatolás
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
7
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
Fájl koncepció A számítógépek az adatokat különböző fizikai háttértárakon tárolhatják (pl. mágnes lemez, mágnesszalag, lyukszalag, lyukkártya, optikai lemez, flash-kártya, pendrive, stb.). A számítógép kényelmes használhatósága érdekében az operációs rendszerek egy egységes logikai szemléletet vezetnek be az adattárolásra és adattárakra: az operációs rendszer elvonatkoztatva a tároló eszköz és a tárolt adat fizikai tulajdonságaitól, egy logikai tároló egységet (adatállomány – fájl – file) használ. A fájlokat az operációs rendszer képezi le a konkrét fizikai tároló berendezésre. Felhasználói szemszögből: a fájl összetartozó adatok egy kollekciója, amelyeket egy másodlagos tárban tárolunk. A fájl a felhasználó számára az adattárolás legkisebb allokációs egysége: felhasználói adatot a háttértáron csak valamilyen fájlban tárolhatunk. Az operációs rendszer támogatást nyújthat a fájl tartalmának kezelésében, a fájl szerkezetének (adatszerkezet) létrehozásában.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
8
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
Elérési módok A korai operációs rendszerek csak egyféle fájlelérést biztosítottak: az ún. Szekvenciális elérést (Sequential access) Ez az elérési mód legjobban megfelelt az akkor használt adattárolók eszközöknek: lyukszalag, mágnesszalag, lyukkártyák. Az n-dik elemhez való elérés csak az előző (n-1) elem átlapozása után vált lehetségessé. Még gyakran a lapozás csak egyirányú lehetett: a következő elemre (pl. lyukszalagoknál, lyukkártyáknál). Később mágnesszalag esetén lehetett az előző elemre is lépni. Fő műveletek: open – ennek a műveletnek az a célja, hogy az operációs rendszer „felkészüljön” a fájlkezelésre; delete – fájl törlése; Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
9
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
create – fájl létrehozása; reset (vagy rewind) – az olvasó/író fej pozícionálása a fájl elejére read next – következő (az olvasó/író fej aktuális pozíciójától kezdve) blokk / adat olvasása; write next – következő blokk / adat írása; rewrite – a létező fájl felülírása; close – a fájl változtatásának véglegesítése (főleg a pufferek kiürítése); stb.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
10
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
A mágneslemezek megjelenésével és elterjedésével lehetővé vált a fájlok elemeinek (bájtjainak vagy rekordjainak) nem csak természetes sorrendben történő olvasása/írása, hanem az ún. „kulcs” („index” vagy „key”) alapú hozzáférés is. Azokat a fájlokat, amelyeknek elemei tetszőleges sorrendben kezelhetők, „közvetlen elérésű” fájloknak hívjuk vagy Direkt elérésű (Random access) fájloknak. A fő műveletek listája kiegészült a következő „keresési” (vagy pozicionálási”) művelettel: seek n (pozicionálás az n-edik rekordra) ahol n = a keresendő elem kulcsa (pl. sorszám, vagy valami más: az elem értéke alapján kiszámolt „index” vagy „key”)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
11
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
Fájl attribútumok Az operációs rendszer a fájl kezeléséhez szükséges információkat (attribútumokat) is tárolja a háttértárban. Pl. egy elkülönített helyen, a szótárban, fájl jegyzékben – directory-ban. - Név – a fájl azonosítására szolgál (szimbolikus fájlnév, név hossza, osztott nevek, kisbetűk/nagybetűk szerepe). - Típus – az egyes típusokhoz (szöveg, script, forráskód, bináris program, kép, média, adatbázis, stb.) különböző operációs rendszer szolgáltatásokat lehet rendelni. - Lokáció – a fájl fizikai elhelyezkedésével kapcsolatos adatok (háttértár címek). - Méret – aktuális / maximális méret (bájtokban, kilóbájtokban, stb.) - Védelem – a fájlhoz történő hozzáférés vezérlése. - Idő, dátum – létrehozási/módosítási időpont, - felhasználó azonosítás – a felhasználó rendszerbeli neve.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
12
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
Filename (Fájlnév) Az MS-DOS a fájlneveknél nem tesz különbséget kis és nagybetűk között. Betűkből csak angol ábécében szereplőket használhatjuk. Ezenkívül, a következő speciális karakterek: ~ ! @ # $ % ^ & ( ) _ – { } ` UNIX esetén a fájlnevek hossza 255 karakter lehet, és a UNIX különbséget teszt kis és nagybetűk között. A WINDOWS kétféle elnevezést használ, a DOS kompatibilitás miatt. Van egy 8+3-as fájlnév és van egy 250 karakter hosszú fájlnév, ugyancsak maximum 3 karakteres kiterjesztéssel. A WIN alkalmazások ezt a hosszú nevet látják, ebből képezik a rövid nevet úgy, hogy eltávolítják a szóközöket majd az első 6 karakter után egy elválasztójelet („ ~”) és egy sorszámot adnak. Pl: a c:\Program Files\Borland\Projects\Az elso Delphi Alkalmazas.Exe
helyett lesz AZELSO~1.EXE
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
13
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
Fájl műveletek A fájl műveleteket, mint egy absztrakt adattípuson végezhető műveleteket kell tekintenünk. Az operációs rendszer ezeket rendszer-hívások segítségével teszi elérhetővé. Alapműveletek: 1. Létrehozás (create) – terület allokálás + új bejegyzés megfelelő könyvtárban; 2. Írás (write) – adatok mentése az adattárolón; 3. Olvasás (read) – adatok beolvasása az adattárolóról; 4. Újrapozícionálás (repositioning); 5. Törlés (deleting) – a fájl megsemmisítése (leggyakrabban csak a megfelelő könyvtárhoz tartozó FAT–rekord „törölt” állapotba való átállítása; 6. Csonkítás (truncate) – levágás az aktuális pozíciótól kezdve; 7. stb.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
14
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
További műveletek (stb.): bővítés (append), beszúrás (insert), átnevezés (rename), másolás (copy), áthelyezés (move), az attribútumok leolvasása (getattr) és megváltoztatása (setattr).
Fájl típusok (kiterjesztés alapján) bat, exe, com, dll doc, rtf, txt, tex jpg, gif, bmp mp3, wav avi, mpg, mpeg, mkv epub, fb2, djvu, pdb htm, html pac, bas, c, cpp, ccs
Dr. Bajalinov Erik
– futtatható fájlok – szöveges dokumentumok – kép fájlok – zene, hang fájlok – film fájlok – elektronikai könyvek – Internet web oldal fájlok – forráskódok
Operációs rendszerek (PMB1206)
15
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
dat, dsk, iso, gbi, ncd, nrg, sli fbl, kml, map, ntm rar, zip, arj mps, lp
– lemez képfájlok – navigáció, térképek – tömörített fájl-csomagok – mátrixok, lineáris programozási feladatok
Fájl szerkezetek Általános esetben a fájl típusa indikálja a fájl struktúráját. A fájllétrehozónak és a fájlfeldolgozónak ezt ismernie kell. Pl. forrásnyelvi-, tárgynyelvi- (object), ill. végrehajtható (bináris) programokat tartalmazó állományok szerkezete kötött. Kérdés: Mennyire ismerje az operációs rendszer az egyes fájlok belső szerkezetét? Egy speciális szerkezetű fájlt (végrehajtható programokat) biztosan ismernie kell! Egyébként olyan mértékben ismeri, amennyire a fájlkezeléshez "központi támogatást" akar nyújtani. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
16
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
MS-DOS (Windows) rendszerekben egy „végrehajtható” fájlt nem csak megfelelő kiterjesztésű (.com, .exe, stb.), hanem megfelelő struktúrájú is!
ahol „DOS header” – 64 bájtos mező „0x5A4D” (magic number!) hexadecimális értékkel legelején, PE – „Portable Executable” speciális formátumú szignatúra, a memóriába való feltöltéséhez, stb. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
17
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
UNIX - minden fájlt bájtok egyszerű sorozatának tekint, ez a feldolgozó programoknak nagy flexibilitást, de minimális támogatást jelent. Szolgáltat ugyanakkor egy mechanizmust (rendszer hívás) a fájl típus meghatározására. (Pl.: magic number – a futtatható fájltípus felismeréséhez használható numerikus azonosító).
Csak a „mágikus szám” alapján a UNIX féle rendszer dönti, hogy az adott fájlt lehet-e „végrehajtani”. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
18
Nyíregyházi Egyetem Matematika és Informatika Intézete
09
Különböző típusú fájlok támogatása két szinten: 1. szint: operációs rendszer (főleg futtatható fájlok) 2. szint: alkalmazások, pl. - Avi – média lejátszó, - Dbf – adatbázis kezelés, - XLSX –táblázatkezelés, - CS – Visual Studio C#, - RAR – WinRAR tömörítő program, stb.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
19