A Linux fájlrendszer egy lemezmeghajtón vagy partíción található fájlok strukturált gyűjteménye. A partíció a memória egy szegmense, és bizonyos meghatározott adatokat tartalmaz. A gépünkön a memóriának különböző partíciói lehetnek. Általában minden partíció tartalmaz egy fájlrendszert.
Az általános célú számítógépes rendszernek szisztematikusan kell tárolnia az adatokat, hogy a fájlokat könnyen, kevesebb idő alatt elérhessük. Az adatokat merevlemezeken (HDD) vagy valamilyen ezzel egyenértékű tárolótípuson tárolja. A fájlrendszer fenntartásának az alábbi okai lehetnek:
- A számítógép elsősorban a RAM-tárolóba menti az adatokat; kikapcsolás esetén elveszítheti az adatokat. Létezik azonban nem-illékony RAM (Flash RAM és SSD), amely az adatok áramszünet utáni megőrzésére alkalmas.
- Az adatok tárolása a merevlemezeken előnyösebb a hagyományos RAM-mal szemben, mivel a RAM többe kerül, mint a lemezterület. A merevlemezek költségei fokozatosan csökkennek a RAM-hoz képest.
A Linux fájlrendszer a következő részeket tartalmazza:
- A gyökérkönyvtár (/)
- Egy adott adattárolási formátum (EXT3, EXT4, BTRFS, XFS stb.)
- Egy adott fájlrendszerrel rendelkező partíció vagy logikai kötet.
Mi a Linux fájlrendszer?
A Linux fájlrendszer általában a Linux operációs rendszer beépített rétege, amelyet a tároló adatkezelésére használnak. Segít a fájlok rendezésében a lemeztárolón. Kezeli a fájl nevét, a fájl méretét, a létrehozás dátumát és még sok más információt egy fájlról.
Ha egy nem támogatott fájlformátum van a fájlrendszerünkben, akkor letölthetünk egy szoftvert, amely kezeli azt.
Linux fájlrendszer felépítése
A Linux fájlrendszer hierarchikus fájlszerkezettel rendelkezik, mivel tartalmaz egy gyökérkönyvtárat és annak alkönyvtárát. Az összes többi könyvtár a gyökérkönyvtárból érhető el. Egy partíció általában csak egy fájlrendszerrel rendelkezik, de lehet több is.
A fájlrendszer úgy van kialakítva, hogy képes legyen kezelni és helyet biztosítani a nem illékony tároló adatok számára. Minden fájlrendszernek szüksége volt egy névtérre, amely egy elnevezési és szervezési módszertan. A névtér határozza meg a névadási folyamatot, a fájlnév hosszát, illetve a fájlnévhez használható karakterek egy részhalmazát. Meghatározza továbbá a fájlok logikai felépítését egy memóriaszegmensen, például a könyvtárak használatát az egyes fájlok rendszerezésére. Miután egy névtér leírásra került, egy Metaadat leírást kell definiálni az adott fájlhoz.
Az adatszerkezetnek támogatnia kell a hierarchikus könyvtárstruktúrát; ez a struktúra egy adott blokk rendelkezésre álló és felhasznált lemezterületének leírására szolgál. Tartalmazza a fájlokra vonatkozó egyéb részleteket is, például a fájlméretet, a létrehozás, a frissítés és az utolsó módosítás & időpontját.
Mellett a lemez szakaszára vonatkozó speciális információkat is tárolja, például a partíciókat és köteteket.
A speciális adatok és az általuk reprezentált struktúrák tartalmazzák a meghajtón tárolt fájlrendszerre vonatkozó információkat; ez különálló és független a fájlrendszer metaadataitól.
A Linux fájlrendszer két részből álló fájlrendszer szoftver implementációs architektúrát tartalmaz. Tekintsük az alábbi képet:
A fájlrendszernek szüksége van egy API-ra (alkalmazásprogramozási interfész) a fájlrendszer összetevőivel, például fájlokkal és könyvtárakkal való interakcióhoz szükséges funkcióhívások eléréséhez. Az API megkönnyíti az olyan feladatokat, mint a fájlok létrehozása, törlése és másolása. Megkönnyíti az algoritmust, amely meghatározza a fájlok elrendezését a fájlrendszerben.
Az adott fájlrendszer első két részét együttesen Linux virtuális fájlrendszernek nevezik. Egyetlen parancskészletet biztosít a kernel és a fejlesztők számára a fájlrendszer eléréséhez. Ez a virtuális fájlrendszer megköveteli az adott rendszerillesztőprogramot, hogy interfészt adjon a fájlrendszerhez.
Linux fájlrendszer jellemzői
A Linuxban a fájlrendszer egy fa szerkezetet hoz létre. Az összes fájl egy fa és annak ágai formájában van elrendezve. A legfelső könyvtárat gyökér (/) könyvtárnak nevezzük. A Linuxban az összes többi könyvtár a gyökérkönyvtárból érhető el.
A Linux fájlrendszer néhány legfontosabb jellemzője a következő:
- Útvonalak megadása: A Linux nem használja a backslash-t (\) az összetevők elválasztására; alternatívaként a forward slash-t (/) használja. Például a Windowshoz hasonlóan az adatokat a C:\ My Documents\ Work könyvtárban tárolhatjuk, míg Linuxban a /home/ My Document/ Work könyvtárban.
- Partíció, könyvtárak és meghajtók: A Linux nem használ meghajtóbetűket a meghajtó rendszerezéséhez, mint a Windows. A Linuxban nem tudjuk megkülönböztetni, hogy egy partíciót, egy hálózati eszközt vagy egy “közönséges” könyvtárat és egy meghajtót címezünk-e.
- Nagybetű-érzékenység: A Linux fájlrendszere nagy- és kisbetű érzékeny. Megkülönbözteti a kis- és nagybetűs fájlneveket. Például a Linuxban különbség van a test.txt és a Test.txt között. Ez a szabály a könyvtárakra és a Linux-parancsokra is vonatkozik.
- Fájlkiterjesztések: Linuxban egy fájlnak lehet ‘.txt kiterjesztése, de nem szükséges, hogy egy fájlnak legyen kiterjesztése. A Shellel való munka során a kezdők számára némi problémát okoz a fájlok és a könyvtárak megkülönböztetése. Ha a grafikus fájlkezelőt használjuk, akkor szimbolizálja a fájlokat és a mappákat.
- Rejtett fájlok: A Linux megkülönbözteti a standard fájlokat és a rejtett fájlokat, többnyire a konfigurációs fájlok vannak elrejtve a Linux operációs rendszerben. Általában nincs szükségünk a rejtett fájlok elérésére vagy olvasására. A rejtett fájlokat Linuxban a fájlnév előtt egy pont (.) jelöli (pl. .ignore). A fájlok eléréséhez meg kell változtatnunk a nézetet a fájlkezelőben, vagy egy adott parancsot kell használnunk a shellben.
A Linux fájlrendszer típusai
A Linux operációs rendszer telepítésekor a Linux számos fájlrendszert kínál, például Ext, Ext2, Ext3, Ext4, JFS, ReiserFS, XFS, btrfs és swap.
Magyarázzuk el részletesen az egyes fájlrendszereket:
Ext, Ext2, Ext3 és Ext4 fájlrendszer
A fájlrendszer Ext jelentése Extended File System. Elsősorban a MINIX operációs rendszerhez fejlesztették ki. Az Ext fájlrendszer egy régebbi változat, és bizonyos korlátozások miatt már nem használják.
Az Ext2 az első Linux fájlrendszer, amely lehetővé teszi két terabájtnyi adat kezelését. Az Ext3 az Ext2-n keresztül lett kifejlesztve; ez az Ext2 továbbfejlesztett változata, és visszafelé kompatibilitást tartalmaz. Az Ext3 legnagyobb hátránya, hogy nem támogatja a szervereket, mivel ez a fájlrendszer nem támogatja a fájlok helyreállítását és a lemez pillanatképek készítését.
Az Ext4 fájlrendszer az Ext fájlrendszerek közül a leggyorsabb. Ez egy nagyon kompatibilis lehetőség az SSD (solid-state drive) lemezekhez, és ez az alapértelmezett fájlrendszer a Linux disztribúcióban.
JFS fájlrendszer
A JFS a Journaled File System rövidítése, és az IBM fejlesztette ki az AIX Unixhoz. Ez az Ext fájlrendszer alternatívája. Az Ext4 helyett is használható, ahol stabilitásra van szükség kevés erőforrás mellett. Praktikus fájlrendszer, ha a CPU teljesítménye korlátozott.
ReiserFS fájlrendszer
AReiserFS az Ext3 fájlrendszer alternatívája. Jobb teljesítménnyel és fejlett funkciókkal rendelkezik. Korábban a ReiserFS-t használták alapértelmezett fájlrendszerként a SUSE Linuxban, de később megváltozott néhány irányelv, így a SUSE visszatért az Ext3-hoz. Ez a fájlrendszer dinamikusan támogatja a fájlkiterjesztést, de a teljesítményben van néhány hátránya.
XFS fájlrendszer
Az XFS fájlrendszert nagy sebességű JFS-nek tekintették, amelyet párhuzamos I/O feldolgozásra fejlesztettek ki. A NASA még mindig ezt a fájlrendszert használja a nagy tárhelyű szerverén (300+ Terabyte-os szerver).
Btrfs fájlrendszer
A Btrfs a B-fa fájlrendszer rövidítése. Hibatűrésre, javítórendszerre, szórakoztató adminisztrációra, kiterjedt tárolókonfigurációra és sok másra használják. A termelési rendszerhez nem alkalmas.
Swap fájlrendszer
A swap fájlrendszert a Linux operációs rendszerben a rendszer hibernálása során a memória lapozására használják. Egy olyan rendszernek, amely soha nem megy hibernált állapotba, a RAM méretével megegyező méretű swap-tárhellyel kell rendelkeznie.