Fájlrendszer

A Wikipédiából, a szabad lexikonból.

Ezt a szócikket át kellene olvasni, ellenőrizni a szövegét, tartalmát. További részleteket a cikk vitalapján találhatsz.

A számítástechnika egy fájlrendszer alatt a számítógépes fájlok tárolásának és rendszerezésének a módszerét érti, ideértve a tárolt adatokhoz való hozzáférést és az adatok egyszerű megtalálását is. A fájlrendszerek használhatják a adattároló eszközöket, mint a merevlemez vagy CD-ROM és használhatók a fájlok fizikai elhelyezésnek karbantarására is, valamint szervereken lévő adatokhoz való hozzáférést is biztosíthatnak hálózati protokollok segítségével (pl., NFS, SMB, vagy 9P kliensek), vagy lehetnek virtuálisak és csak a virtuális adatokhoz való hozzáférési mód miatt léteznek csak (pl. procfs).

Precízebben meghatározva: egy fájl rendszer absztrakt adattípusok halmaza, amelyeket adatok tárolására, hierarchikus rendezésére, kezelésére, megtalálására illetve navigálásra, hozzáférésre, és visszakeresésére valósítottak meg. Vita tárgya, hogy egy fájl rendszer tekinthető-e egy speciális adatbázis kezelő rendszernek (DBMS) vagy nem. Tény ugyanakkor, hogy több fájl rendszer megosztása alapvetően az adatbázis technológiák jellemzője.

Tartalomjegyzék

[szerkesztés] Fájlrendszerek osztályozása

A legismertebb fájlrendszerek egy adattároló eszköz segítségével biztosítják, hogy elérhető legyen egy fix méretű blokkokból (blokk méret) álló sorozata (ezeket az általában 512 byte méretű blokkokat gyakran szektoroknak is nevezik). A fájlrendszer szoftvere biztosítja, hogy ezeket a szektorokat fájlokká és a katalógusokká szervezze össze, és tartsa nyilván, melyik szektor melyik fájlhoz tartozik, és melyik szektorok nem használhatók már tárolásra.

Ennek ellenére, egy fájlrendszernek nem kell tároló beren dezést használnia mindenre. Egy fájlrendszer használható aza datok szervezésére és megjelenítésére is, ha azok tárolása vagy elérése dinamikusan törénik (pl. hálózati kapcsolat segítségével).

Egy fájlrendszer akár használ, akár nem használ tároló berendezést, általában rendelkezik egy szótárral, amely összekapcsolja a fájlneveket a fájlokkal. Általában az összekapcsolás indexeléssel történik, a fájlnév egy index vagy egy fájl elhelyezési táblában, amilyen például az MS-DOS fájlrendszerében a FAT tábla (a FAT a File Allocation Table rövidítése), vagy egy i-bög a Unix-szerű fájlrendszereknél. A szótárstruktúra lehet egyszerű vagy megenged hierarchiákat, amikor a szótárak al-szótárakat tartalmazhatnak. Néhány fájlrendszer esetében a fájlnevek struktúráltak, speciális szintaktikával, (pl. fájlnév, kiterjesztés, verziószám). Más rendszereknél a fájlnév egyszerű string, és fájlonként a metaadatok másutt vannak tárolva.

A hierarchikus fájlrendszereket Unix környezetben Dennis Ritchie alapozta meg; az első megvalósítások csak néhány szintet engedtek meg, az igaz az IBM egyik korai adatbázisára, az IMS-re is. A Unix sikerei után Ritchie kiterjesztette a fájlrendszer koncepcióját minden objektumra a későbbi fejlesztések során, mint például a Plan 9 a Bell Labs-tól és az Inferno.

A hagyományos fájlrendszerek még egyéb szolgáltatásokat is nyújtanak: létrehoznak, mozgatnak vagy törölnak fájlokat vagy katalógusokat. Traditional filesystems offer facilities to create, move and delete both files and directories. Hiányoznak viszont a szolgáltatásaik közül a katalógusok közötti többszörös kapcsolatok (beégetett kapcsolat a Unix-ban), a szülő kapcsolat átnevezése (".." a Unix-like operációs rendszereknél), és a fájlok közötti kétoldalú kapcsolatok létrehozási lehetőségeis.

A hagyományos fájlrendszerek gyakran biztosítják a csonkolás (truncate), a kibővítés (append to), a létrehozás (create), a mozgatás (move), a törlés (delete) és ahelyben módosítás funkciókat a fájlokra. Nem támogatják viszont a csonkolás a fájl elejétől funkciókat, de esetleg megengednek korlátlan beszúrást a fájl tetszés szerinti helyén, vagy törlést a fájlon belül. A műveletek általában nagyon aszimetrikusak, és nem nagyon használhatók nem várt eseteknél. Például, a folyamatok közötti csövet a Unix a fájlrendszeren kívül valósította meg, és nem is ajánlja a csonkolást a fájl elejétől.

A fájlrendszerek biztonsági megoldásai általában a hozzáférési ellenőrző listás megoldásokon vagy a képességek el használatán alapulnak. A kutatások azt mutatják, hogy a hozzáférési ellenőrző listákon alapuló megoldások esetében bonyolult a biztonsági jellemzők beállítása, ezért inkább a fejlsztések a képességek használata irányába mutatnak. A keresekedelmi forgalomban lévő rendszerek általában még a hozzáférési ellenőrző listákat használnak. lásd: számítógépes biztonság

[szerkesztés] Fájlrendszer típusok

A fájl rendszereket alapvetően három osztályba sorolhatók: a diszkes fájl rendszerek, a hálózati fájl rendszerek és a speciális célú fájl rendszerek.

[szerkesztés] Diszkes fájlrendszerek

Egy diszkes fájlrendszer úgy terveztek, hogy a fájlok tárolására a számítógépek adattároló eszközök szolgálnak, amelyek leggyakrabban diszk egységek. Ezek az egységek közvetlenül vagy közvetett módon kapcsolódhanak a számítógéphez. Például a diszkes fájlrendszerek közé tartoznak a FAT, az NTFS, a HFS and a HFS+, az ext2, az ext3, az ISO 9660, az ODS-5, és az UDF. Néhány fájlrendszer naplózó fájlrendszerek közé sorolható, néhány viszont változatkezelő fájlrendszer.

[szerkesztés] Adatabázis fájlrendszerek

Egy új koncepció a fájlkezelésben az adatbázis alapú fájlrendszer. Ez azt jelenti, hogy a fájlok egy hierarchikus struktúrában helyezkednek el, saját jellemzőikkel azonosíthatóan, mint pl. fájltípus, téma, szerző, vagy egyszerű meta-adat. Ezért egy fájl keresése megfogalmazható SQL-ben vagy akár természetes nyelven is, mint például a BFS és a WinFS.

[szerkesztés] Tranzakciós fájlrendszerek

Ezek a fájlrendszerek egy teljesen speciális csoportot alkotnak: a rendszerben minden fájlal kapcsolatos esemény vagy tranzakció rögzítésre kerül.

Bármilyen végrehajtott művelet valamilyen változást vagy változásokat okoz a fájlok vagy a diszkek struktúrájában. A legtöbb esetben ezek a változások kapcsolatokat érintenek, amelyeket - lehetőség szerint - azonos időben kell megváltoztatni.

Vegyük példának, hogy egy bank egy másik banknak egy elektronikus utalást küld. A bank számítógépe "küld" egy utasítást a másik bank számítógépének, hogy módosítsa a saját adatait, hogy az utalás megtörtént. Ha valamilyen okból a számítógép leáll, még mielőtt a saját feljegyzéseit módosította volna, majd ujra indul, az utalás "elveszik". Egy tranzakciós fájlrendszer képes helyreállítani az akciót a "tranzakció" újra-szinkronizálásával mindkét végponton, és korrigálja a hibát. Minden tranzakció feljgyzésre és tárolásra kerül, és ez a feljegyzés mutatja, mi történt, hol (és mikor). Ezeket a fájlrendszreket a hibatűrő rendszerek számára tervezik és ott is alkalmazzák őket, alkalmazásuk viszont természtesen sok járulékos (belső) adminisztrációval (overhead) jár.

[szerkesztés] Hálózati fájlrendszerek

Egy "hálózati fájlrendszer" egy olyan fájlrendszer, amely úgy viselkedik, mint egy távoli fájlelérési protokollal rendelkező kliens, ami biztosítja a szerveren lévő fájl elérését. Példák hálózatit fájlrendszerekere az NFS, a SMB, az AFP, és a 9P protokolok, és fájlrendszer-szerű kliensek a FTP-vel és WebDAV-val .

[szerkesztés] Speciális célú fájlrendszerek

Speciális célú fájlrendszer alapvetően minden olyan fájlrendszer, amely sem nem diszkes-, sem nem hálózati fájlrendszer. Ezek a fájlrendszerek azok közé a rendszerek közé tartoznak, ahol a fájlokat egy szoftver dinamikusan kezeli, egyben biztosítja a kommunikációt a számítógépen futó feladat(ok) és a ideiglenes fájl tárolási terület között.

Bizonyos szempontból speciális célú fájlrendszert használnak a leggyakrabban használ, fájl-centrikus operációs rendszerek, mint a Unix.

A mélyűri felfedező űrhajók, mint a Voyager I és a Voyager II egy speciális, digitális szalag alapú fájlrendszert használnak. A modern felfedező űrhajók, mint a Cassini-Huygens egy valós idejű operációs rendszert és fájlrendszert használ. A Mars Roverek is egy valós idejű fájlrendszert használnak, amelyet flash memóriával valósítanak meg.

[szerkesztés] Fájlrendszerek és operációs rendszerek

A legtöbb operációs rendszer rendelkezik fájlrendszerrel, azaz a fájlrendszer a modern operációs rendszerek integráns része. A korai microcomputer operációs rendszerekben ténylegesen elkülönült feladat volt a fájlkezelés; — ez a tény visszatükröződik az elnevezéseikben is (lásd DOS és QDOS). Néhány korai operációs rendszerben a fájlkezelő rendszer külön rendszerként jelentkezett, ezeket nevezték diszk operációs rendszereknek. Néhány mikrószámítógépen a diszkes fájlkezelőt külön kellett betölteni az operációs rendszer mellé. A korai operációs rendszerek általában csak egy, nekik készült fájlkezelő rendszert támogattak, ami többnyire névtelen volt; pl. a CP/M csak asaját fájlkezelő rendszerét támogatta, amit "CP/M file system" néven ismerünk, de így szinte senki sem nevezte...

A fentiek miatt szükségessé vált, hogy legyen egy interfész az operációs rendszer és a fájlkezelő rendszer és a felhasználó között. Ez az interfész lehet szöveges (amit egy parancs soros interfész biztosít, mint például a Unix shell, vagy OpenVMS DCL) vagy grafikus (mint amit egy grafikus felhasználói interfész biztosít, mint például a file browserek). Ha grafikus, akkor megfelel valamilyen gyakran használt mappa ábrázolásnak, ami dokumentumokat és egyéb fájlokat illetve beágyazott mappákat tartalmaz (lásd: katalógus és mappa).

[szerkesztés] Egyszerű fájlrendszerek

Az egyszerű fájlrendszerek esetében nincsenek katalógusok — minden azonos szinten (gyökér) kerül tárolásra (a hordozó szintjén), legyen az merevlemez, floppy diszk, stb. Az egyszerűsége miatt, a rendszer a fájlok számának növekedésével egyre kevésbé lesz hatékony, a felhasználó(k) számára egyre nehezebb lesz az adatcsoportok kezelése.

Mint alegtöbb régebbi kis rendszer, az eredeti Apple Macintosh egy egyszerű, Macintosh File System nevű fájlkezelőt használt. A Mac OS már nem ezt használta, hanem egy olyan rendszert, ami egy nem teljesen hierarchikus fájlkezelő illúzióját nyújtotta (Macintosh Finder). A Macintosh Finder-t gyorsan helyettesítették a Hierarchical File System-mel, amely már valóban támogatta a katalógusokat.

[szerkesztés] Unix és Unix-szerű rendszerek fájlrendszerei

A Unix és a Unix-szerű operációs rendszerek minden eszközhöz egy eszköznevet rendelnek, de ennek nincsen köze ahoz, hogy hogyan is érhetők el az eszközön lévő fájlok. Valójában a Unix létrehoz egy virtuális fájlrendszert, amelyben minden eszközön lévő minden fájl egy hierarchiába rendeződik. Ez azt jelenti, hogy a Unix-ban van egy gyökérkönyvtár, és minden létező fájl valahol ebben a gyökértől induló struktúrában helyezkedik el. Sőt, ennek a gyökérnek nem is kell tényleges fizikai hely. Nem kell az első merevlemezen lennie, még csak a gépben sem kell lennie, a Unix képes egy megosztott hálózati erőforrást gyökérkönyvtárként kezelni.

Valamilyen eszközön lévő fájl eléréséhez először meg kell mondani az operációs rendszernek, hol van az a könytárfa, ahol a fájl található. Ez a művelet a csatlakozás egy fájlrendszerhez. Például, egy CD-ROM-on lévő fájl eléréséhez meg kell mondani az operációs rnedszernek, hogy "keress egy fájlrendszeret ezen a CD-ROM-on, ami az ilyen-és-ilyen katalógusban található". Az adott katalógust az operációs rendszer csatlakozási pontnak tekinti - legyen ez mondjuk /mnt. Az /mnt katalógus több Unix-szerű rendszerben létezik (ahogyan azt a fájlrendszer hierarchia szabvány meghatározza) és az a célja, hogy kapcsolódási pontot biztosítson az ideiglenes/cserélhető hordozók számára, mint a floppy diszkek vagy CDk. Lehet üres is, vagy tartalmazhat alkönyvtárakat más, különálló egységek csatalakoztatásához. Általában csak a adminisztrátor (u.m. root user) rendelkezik olyan jogokkal, hogy csatlakoztathat fájlrendszereket.

Unix-like operációs rendszereknek gyakran része program vagy eszköz, ami támogatja a csatlakoztatási eljárást, és új lehetőségeket is biztosít. Ezek közül a stratégiák közül a legtöbb az úgynevezett "auto-mounting" - automatikus csatlakoztatás, aminek az elnevezése már utal is a használatára.

  1. A legtöbb esetben, a fájlrendszerekenek, úgy mint a gyökérnek elérhetőnek kell lennie a betöltés boot alatt. Ezért minden Unix rendszer biztosít egy szolgáltatást, amivel a betöltés alatt csatlakoztathók a fájlrendszerek. A rendszer adminisztrátorok ezeket a fájlrendszereket egy konfigurációs fájlban fstab meghatározhatják, amelyekben lehetnek más csatlakozási pontok is.
  2. Néhány esetben nem szükséges a fájlrendszer csatlakoztatása a betöltési idő alatt, hanem később is megtehető. Léteznek különböző segédprogramok a Unix-szerű rendszereknél, amelyek megengedik a csatlakoztatást egy előre meghatározott fájlrendszer esetében.
  3. Cserélhető hordozók esetén, amelyek nagyon gyakoriak a microcomputer esetében, és biztosítják a fizikai kapcsolat néküli adat- és programok átvitelét két berendezés között (CD-ROM-ok és DVDk), segédporogramokat fejlesztettek ki azért, hogy érzékeljék a hordozó(k) jelenlétét és hozzáférhetőségét, és emberi beavatkozás nélkül végezzék el a csatlakoztatást.
  4. Fejlett Unix-szerű rendszerekben alkalmazzák a supermounting-nak nevezett - szuper csatlakoztatás koncepciót; angol nyelvű részelteket lásd: the Linux supermount-ng project. Példaként, egy floppy diszk, amit a "szuper csatlakozás" segítségével csatlakoztattak a rendszerhez, fizikailag eltávolítható, amjd újra visszahelyezhető. Normál esetben a diszk műveleteknek be kell fejeződniük, a csatlakoztatást meg kell szüntetni, és ezután távolítható el fizikailag a rendszerből. A visszahelyezést követően a rendszer helyreállítja az adatokat, majd egy másik lemezt lehet az egységbe tenni. Ekkor a rendszer automatikusan felismeri, hogy a lemez megváltozott, és módosítja a csatlakozási pontot az új lemezésn lévő információknak megfelelően. Hasonló szolgáltatást találhatunk a Windows-ban is.
  5. Néhány felhasználó egy hasonló fejlesztést használ, ez a autofs, ekkor a rendszer, a szuper csatlakozázhos hasonlóan, nem igényel mauális beavatkozást. Ay elérés a szuper csatlakozház képest annyi, hogy az alkalamzások nagyobb csoportja, mint például a hálózati, megosztott fájlrendszereket használók, számára a csatlakoztatás "láthatataln", ha a saját fájlrendszeréről van szó, ideértve a hálózati fájlrendszert is, míg ez a "láthatlanság" kevéssé igaz cserélhető hordozók esetére.

[szerkesztés] Fájlrendszerek Mac OS X alatt

A Mac OS X a Mac OS -ben használt és HFS Plus-nak nevezett fájlrendszert örökölte. Ez a fájlrendszer egy meta-adatokban bővelkedő és case preserving fájlrendszer. A Mac OS X Unix gyökerei miatt, a Unix engedélyezési megoldásai megjelentek a HFS Plus-ban. A HFS Plus későbbi változatai kibővülnek a naplózó fájlrendszer szolgáltatásaival, megelőzve a fájlrendszer struktúra sérülését és rendelkezik egy algoritmussal a töredezés elkerülésére, hogy ne kelljen külső töredezésmentesítő eszközt igénybe vanni.

A fájlnevek hossza 255 karaterig terjedhet. A HFS Plus a fájlnevek tárolásánál a Unicode-ot használja. A Mac OS X-en a fájltípus a típus kód, és vagy a fájl meta-adatai között, vagy a fájlnévben tárolják.

A HFS Plus három kapcsoló típust ismer: beégetett kapcsolatok, szimbólikus kapcsolatok és álnevek. Az álnevek képesek fenntartani a kapcsolatot akkor is, ha az eredeti fájlt átnevezték vagy átmásolták.

[szerkesztés] Fájlrendszerek a Bell Labs Plan 9-e alatt

A Bell Labs Plan 9-e tervezése eredetileg a Unix jól bevált megoldásain, valamint néhány új elképzelésen alapult, megoldva ezzel néhány ismert Unix hiányosságot.

Ami a fájlrendszert illeti, a Unix rendszer úgy kezeli a dolgokat, mint például egy fájlt, hogy az folytatható, a Plan-9 viszont mindent fájlként kezel, és úgy is fér hozzá, mintha fájl lenne (pl. nincs ioctl vagy mmap). Talán meglepő, de a fájl interfész univerzális, és jelentősen legyszerűsített, például a szimbólikus kapcsolatok, a beégetett kapcsolatok nem használatosak, és egy elemi létrehoz/megnyit művelet létezik csak. nagyon fontos, hogy a fájlműveletek halmaza jól meghatározott és az alváltozatok, mint az ioctl hiányoznak.

Másodszor, a 9P protkoll használatával megszüntethető a helyi és a távoli fájlok közötti különbség (kivéve a lappangást). Itt jelentkezik annak az előnye, hogy mindent fájlként kezel a rendszer, ugyanis a meghajtó vagy meghajtók szintén fájlként jelentkeznek, és a távoli számítógépeket is úgy tekinthetjük, mit a helyi gép egy meghajtóját vagy meghajtóit. Ez azt jelenti, hogy a Plan 9-alatt többszörös fájlrendszerek biztosítanak hozzáférést a meghajtókhoz, amelyek a fájlok egy osztályát képviselik.

A Plan 9-en mindent egy fájlnak kell elképzeni, a hálózati részt, a grafikát, a nyomkövetést, a hitelsítést, a képességeket, a titkosítást, és minden egyéb szolgáltatást, amelyek I/O műveletekkel érhetőek el, különböző fájl-leírokkal.

Egy másik példa: egy Plan-9 alkalmazásnak szüksége van egy FTP szolgáltatásra egy FTP helyszín megnyitásával. Az ftpfs külső beavatkozás nélkül kezeli a megnyitást és a szükséges távoli csatlakoztatást, és ezt úgy jeleníti meg, mint ez egy helyi fájlrendszer lenne. Egy másik példa a mail rendszer, amely szintetikus, virtuális fájlok és katalógusok használatával éri el, hogy a fájlrendszeret tudja használjni. A katalógus vagy virtuális fájl a felhasználói mailbox rendszert reprezentálja, mint /mail/fs/mbox. A wikifs egy interfészt biztosít a wiki eléréséhez.

Ezek a fájlrendszerek saját help rendszerre, saját, folyamathoz tartozó névtérrel szervezhetők. A különböző folyamatok számára megengedett, hogy különböző nézeteket alkalmazzanak a fájlrendszerekre és az elosztott rendszerek erőforrásaira.

Az Inferno operating system hsonló koncepciót alapján működik, mint a Plan 9.

[szerkesztés] Fájlrendszerek a Microsoft Windows alatt

A Microsoft Windows a korai operációs rendszerén (MS-DOS amely a QDOS és a CP/M-80 alapján jött létre, és több elképzelést is a kezdeti operációs rendszertől átvett, főként a DEC-től) kifejlesztett egy fájlrendszert, amelynek az mind a rendszer-, mind pedig a felhasználói interfész forráskódját több rendszer is használta (Unix, OS/2, etc). Ma a Windows használja mind a FAT (File Allocation Table) mind pedig a NTFS (New Technology File System) fájlrendszereket. A FAT rendszer későbbi változatai, a (FAT12 és FAT16) esetében a fájlnevek hossza korátozott, és létezik egy korlát a gyökérkönyvtárban lévő bejegyzések számára is, de megkötések vannak a FAT-rendszerrel formázott diszkek vagy partíciók méretére is. Egészen pontosan, a FAT12 és a FAT16 8 karakterre korlátozza a fájlnév hosszat, és 3 karakterre a kiterjesztést. (Erre általában a 8.3 korlát néven hivatkoznak.) A VFAT, amely a FAT12 és a FAT16 bővítése volt, és a Windows NT 3.5-nél jelent meg, de még a Windows 95-ben is megjelent, megengedte a hosszú fájlneveket - long file names (LFN). A FAT32-ben néhány, a FAT12-ben és a FAT16-ban meglévő korlát megmaradt, de ezek elhanyagolhatók, összevetve az NTFS-el.

Az NTFS a Windows NT operációs rendszerrel egyidőben jelent meg, megengedi a hozzáférési ellenőrző lista - access control list (ACL) alapú ellenőrzést, a többszörös fájl hozzáférést, a beégetett kapcsolatot, a jellemzővel való indexelést, a feltöltöttség követést, a tömörítést és a kapcsolódási pont létrehozást másik fájlrendszerek számára (ezek a "junctions"-ök), azonban ezek a szolgáltatások nem mind dokumentáltak.

A legtöbb operációs rendszertől eltérően, a Windows használja a meghajtó betűjel fogalmat felhasználói szinten, két diszk vagy partíció egymástól való megkülönböztetésére. Például, a C:\WINDOWS\ elérési út egy WINDOWS könyvtárat jelent, ami a C betűvel jelölt partíción helyezkedik el. A C meghajtó a leggyakrabban használt esődleges diszk partíció, ami a Windows-ban létrejött, és amiről betöltődik. Ez a "hagyomány" olyan erős, hogy a régebbi Windows változatoknál hibaként is jelentkezett, hogy ezek a változatok azt tételezték fel, hogy az a meghajtó, amin a Windows rendszer található, az csak a C meghajtó lehet. A "C" meghajtóval kapcsolatos hagyomány egészen az MS-DOS-ig nyúlik vissza, ahol az A és B betűk a két floppy meghajtó számra voltak fenntartva; egy általános konfiguráció esetében az A meghajtónak egy 3 1/2 hüvelykes mini floppy meghajtónak kell lennie, és a B pedig egy 5 1/4 hüvelykes floppy. A hálózati meghajtókhoz szintén hozzá kell rendelni egy-egy betűt a MAP paranccsal.

Mióta a Windows grafikus felhasználói interfész segítségével áll kapcsolatban a használójával, a Windows kézikönyvei a katalógusokra úgy hivatkoztak, mint egy olyan mappára amely fájlokat tartalmaz, és ezeket a grafikus mappa ikonnal jelölték.

[szerkesztés] Fájlrendszerek OpenVMS alatt

Részleteket lásd: Files-11

[szerkesztés] Fájlrendszerek MVS IBM Mainframe alatt

Részleteket lásd: MVS fájlrendszer

[szerkesztés] Lásd még