Mit kell tudni az inódokról Linux-on? (2. rész)
Az előző részben megnéztünk néhány érdekességet a Linux fájlrendszerekről és azok építőelemeiről. Láttuk, hogy az úgynevezett inódoknak fontos szerepe van a fájlok lokalizálásában a merevlemezen, továbbá láttuk, hogy az elérhető inódoknak van minden fájlrendszer esetében egy maximális száma. Nézzük milyen metaadatok fontosak az inódok szempontjából.
Ha meg akarjuk nézni egy fájl inódszámát, akkor a következő paranccsal tehetjük meg:
„ls -i file.txt”
A „file.txt” a fájl neve jelen esetben. A terminál a parancsra kidob egy számot, mely kinézhet például így: 1441801. A lekérdezett inódnak tehát látjuk a számát, és tudjuk, hogy hordozza azt az információt is, hogy a merevlemezen mely blokkba kell mutatni, hogy megtaláljuk az adott fájlt. Ha egy nagyobb vagy szétszedett fájlról van szó, akkor egy inód mutathat egy blokkra, ahonnan aztán további mutatók irányulnak más blokkokra, ahol a fájl maradék részei el vannak helyezve. Ez azért van így, mert a merevlemezen egy blokk tárhelye véges, merevlemeztől függő, hogy mekkora, de gyakori például a 4096 bájt.
Ha lekérdezünk valamit az inódokkal kapcsolatban, akkor sok mindent megtudhatunk egy fájlról, a nevét azonban elsőre nem igazán. A Linux fájlrendszerek könyvtárak és almappák, alkönyvtárak szerinti kialakítása játszik ilyenkor kulcsszerepet. Pont mint bármely fájlhoz, egy könyvtárhoz is tartozik egy inód. Az ilyen inódok a merevlemezen olyan blokkokra mutatnak, melyek könyvtárszerkezeteket tárolnak, és nem individuális fájlokat. A könyvtárszerkezetek az inódokhoz képest kevesebb infót biztosítanak egy fájlról, viszont olyanokat, melyek csak az inódoktól nem tudunk meg. A könyvtárszerkezetek ugyanis megadják nekünk a fájlok nevét, inódszámát, és a név hosszát. Amikor egy alkalmazásnak szüksége van releváns adatokra, akkor az inódoktól és a könyvtárszerkezetektől mindent megkap, ami csak kellhet.
Nem csak fájloknak lehet saját inódjuk, hanem mappáknak is. Egy mappa inódszámát a következő paranccsal nézhetjük meg:
„ls -lid work/”
Jelenleg a „work” nevű mappa adatait néztük meg. Szintén egy olyasmi számot kapunk, mint amit már feljebb említettünk. Ha a Home mappa adataira vagyunk kíváncsiak: ls -lid ~
Összegezve tehát, ahhoz, hogy egy jól megformált hozzáférésünk legyen egy Linux fájlrendszerben egy fájlhoz, 3 dologra van szükség: a fájl létezésére, a könyvtárszerkezetre és az inódra. Legutóbbi tartalmazza azokat a metaadatokat, melyekre szükség van ahhoz, hogy megtaláljuk a fájlokat, mint említettük. Az inódok világa rendkívül érdekes. Érdemes tanulmányozni Linux-on!