Névjegyzék

Fájlrendszer ext2. A Windows környezetben, az EXT2, az ext3, az ext4 fájlrendszerek elérése. Logikai szervezet EXT2.

Ha két operációs rendszer, a Windows és a Linux van telepítve, akkor valószínűleg hasonló lehet, amely szerepel az szakaszai a szabad operációs rendszer közvetlenül a Windows újratöltése nélkül a számítógép.

Sajnos a Linux OS szakaszok támogatását nem biztosítják. És hiába. Úgy tűnik számomra, hogy lehet, hogy egy gyönyörű gesztus a Microsoftból.

A probléma lényege az, hogy a Windows az NTFS fájlrendszert használja, és a Linuxnak saját módja van a fájlok megszervezésére, a kiterjesztett fájlrendszerre, legújabb verzió amelynek szekvenciaszáma van.

A Linux jobban barátságos a felhasználóknak, nem pedig a kereskedelmi húgának: Linux alatt, az alapértelmezettet a Windows NTFS fájlrendszer támogatja. Természetesen nem tudod telepíteni a Linuxot az NTFS részre, de ebből olvashat és írhat adatokat.

Ext2 IFS.

Az EXT2 IFS támogatja a Windows NT4.0 / 2000/2000/2003/2003 / Vista / 2008 verzióit az x86 és az x64, és lehetővé teszi a Linux ext2 szakaszok tartalmát, és rögzítheti rájuk is. A segédprogram beállítja az ext2fs.sys rendszer-illesztőprogramot, amely kibővül ablakok jellemzői és magában foglalja a teljes mértékben támogatja a EXT2 benne: az ext2 szakaszok vannak rendelve a betűket lemezek, valamint a fájlok és mappák jelennek meg őket a dialógusok az összes alkalmazást, például a felfedező.

Ext2 fsd.

Ext2 FSD - Ingyenes meghajtó windows rendszerek (2K / XP / VISTA / 7 VERSIONS X86 és X64). Mint az előző segédprogram, amely lényegében is a vezető, magában foglalja az ext2 fájlrendszer teljes támogatását az ablakokban.

LTOOLS - SET segédprogramok parancs soramely lehetővé teszi, hogy olvassa el, és rögzíti az adatokat a / Linux EXT2, EXT3 és reiserfs szakaszok (standard Linux fájlrendszerek) a DOS vagy Windows Machine.

A program egy változata grafikus héjjal (Java-on írt) - az LTOOOLSGUI, valamint egy grafikus héjú változat.

Ext2read.

A desszert mindig a leginkább finom.

Az Ext2Read egy vezetőfájlon alapuló segédprogram, amely lehetővé teszi az ext2 / ext3 / ext4 szakaszok megtekintését és írását. Támogatja az LVM2-et, és amely megkülönbözteti a felülvizsgálat egyéb programjait, az EXT4 fájlrendszert. Beágyazott támogatás rekurzív másolási könyvtárakhoz.

És itt van a második desszert. Kezdetben azt mondták, hogy a Microsoftból származó jó gesztus alapértelmezés szerint a Windows Linux szakaszok támogatását tartalmazza.

A gesztus még mindig a Linux 20. évfordulóján készült. Nézd meg magad.

Ez minden. Kösz a figyelmet. Fogok harcolni a májusi bogarakból. Ez a tavasz sok sooo. 🙂

14 június

Fájlrendszerek EXT2, EXT3, XFS, REISERFS, NTFS

Fájlrendszer - Ez egy rend meghatározására eljárás rendezéséhez, tárolásához és elnevezési adatok bármilyen elektronikus média információs számítógépek.

A különböző fájlrendszerek magyarázata azzal magyarázható, hogy mindegyiket az adott feladatcsomag alatt találták meg. Néhány nagyon gyorsan írja le a kis fájlokat (mondjuk, akár 1 GB), de nem kapcsolja ki jól a nagy fájlokkal, vagy nem működik velük. Néhány jó a biztonság szempontjából, mások a felvétel / olvasási sebesség szempontjából. Minden fájlrendszer előnye, mínusz, sebezhetőségei és megkülönböztető jellemzői.

BAN BEN Linux. A leggyakrabban használt fájlrendszerek leggyakoribb fajtái:

  1. ext2. - megfejtették Második kiterjesztés. Fájlrendszer (Második kiterjesztett fájlrendszer). A Remy kártyát 1993-ban fejlesztették ki, mivel a Linux kernel fájlrendszer 1993-2001-től a fő fájlrendszer volt Linux..
    A méltóság nagy olvasási / írási sebesség.
    A rendszer fő hátránya ext2. Ez nem naplózó, de pontosan ennek köszönhető, hogy sok teljesítményt ( naplózás - ez egy naplózási folyamat, amely tárolja a változtatások listáját, hogy segítsen megmenteni a integritását a fájlrendszer különböző rendszer hibák);
  2. ext3 - megfejtették Harmadik kiterjesztett fájlrendszer (A kiterjesztett fájlrendszer harmadik verziója). 2001-ben Stephen Tweedy által kifejlesztett, ezen a napon az eloszlásokban Linux.. Megjelent a fényben, mint egy javított ext2..
    Ennek a rendszernek az az előnye, hogy naplózott, vagyis megbízhatósága időkben emelkedik ext2..
    A hátrányt egy kicsit kisebb teljesítménynek és olvasási / írási sebességnek nevezhetjük.
  3. XFS. - a vállalat által kifejlesztett Silicon grafika. 1993-ban adták hozzá a rendszermaghoz Linux. Mint 2002-es fájlrendszerként az eloszlások teljes családjában Linux., a ebben a pillanatban "Natív" -ként használják az elosztásban Piros kalap..
    Az előny a jelenléte metaadat-naplózási, nagy stabilitás a munka, a forgalmazás I / O stream csoportok tartjuk, nagy írási / olvasási sebessége, lehetőség van a töredezettségmentesítés még egy szerelt részt, és akkor bővíteni a méret a fájlrendszer. A leghatékonyabban működik nagy fájlokkal.
    A hátránya az, hogy a partíció mérete nem lehet csökkenteni, a feldolgozó a metaadatok folyamat nem olyan gyors, működik lassabban kis fájlokat, mint más típusú fájlrendszereket.
  4. Reiserfs. - a vállalat által kifejlesztett Névjegyek A Hans Reizer vezetése alatt 2001-ben. Csak operációs rendszereken használható Linux.. Ez volt az első naplófájlrendszer, amelyet a magban vettek.
    Ennek a fájlrendszernek az az előnye, hogy nagyon gyorsan működik a kis fájlok (olvasási / írási sebesség magasabb, mint a család ext4.), Támogatja a naplózást.
    A hátrány az, hogy fejlődése jelentősen lelassult a Gansa Riazer fejének letartóztatása miatt, és nincs háttér titkosítás.
  5. Ntfs - megfejtették Új technológiai fájlrendszer (Új technológia fájlrendszere). 1993 júliusában fejlett a vállalat által Microsoft.. A különböző operációs rendszerekben széles körben alkalmazzák, valamint az információ különböző médiájában.
    A méltóság a beépített képes arra, hogy megkülönböztesse az adatokhoz való hozzáférést a különböző felhasználók számára, valamint korlátozza a korlátozásokat maximális hangerő Lemezterület, naplózási rendszer használata, nagy sebességű olvasás / írás kis fájlok.
    A hátrány az, hogy stabil munka Nem szükséges kicsi ram PC, a nagy fájlok lassan működnek, korlátozzák a fájlok elérési útvonalát (32,767 Unicode karakter).

Egy ilyen egyszerű módon foglalkozunk "fájlrendszerekkel ext2., ext3, XFS., Reiserfs., Ntfs«!

Hogyan van windows környezet Legyen hozzáférést a lemezszakaszhoz vagy a cserélhető adathordozókhoz fájlrendszerekkel Ext2 / 3/4 ? Ha például a számítógép második rendszere is van Linux.. És annak adataival kell dolgoznia a környezetből ablakok. Vagy más példa - amikor ablakok vannak felszerelve virtuális lemezek telepítve van virtuális gépek Rendszerek Linux. vagy Android . Ext2 / 3 / 4 A Windows nem tudja, hogyan kell dolgozni, szükség van harmadik fél pénzeszközre erre. Mi ez az eszköz? Fontolja meg az alábbiakat.

***
Az első három lehetővé teszi, hogy csak az információs eszközök olvasása Ext2 / 3/4 . Az utolsó megoldás lehetővé teszi és olvasni és írni az adatokat. Az alábbiakban tárgyalt valamennyi alap ingyenes.

1. DiskInternals Linux Reader program

Egy egyszerű program egy primitív fájlkezelő, amelyet a szabványtípus windows Intéző, a fájlrendszerek támogatásával Ext 2/3/4 , Reiser4. , HF-ek. , UFS2. . A programablakban a szakaszokat és eszközöket fogjuk látni Linux. vagy Android.

A másoláshoz válassza ki a mappát vagy fájlt, kattintson a gombra. "MENTÉS".

Ezután adja meg a másolási útvonalat.

2. Plugin a Total Commander Diskinternals olvasóhoz

A népszerű szerelmeseinek kivonhatják az adatokat Linux. vagy Android A Windows belsejében ezzel fájl kezelő. De miután telepítette egy speciális bővítményt. Az egyik ilyen bővítmény - tudja, hogyan kell csatlakoztatni és olvasni az információs eszközök formázott Ext2 / 3/4 , Zsír / exfat. , HFS / HFS + , Reiserfs. . Betöltjük a plugint, kicsomagoljuk az archívumot , Erősítse meg a telepítést.

Fuss (fontos) Az adminisztrátor nevében. Menjen a részre. Nyomja meg.

Itt, más lemez- és médiafejekkel együtt, az egyik megjelenik Ext2 / 3/4 .

Az adatok másolása hagyományos A módszerben - az F5 kulcsa a második panelhez.

3. Plugin az összes EXT4TC parancsnok számára

Az előző döntés egyszerűsített alternatívája - ext4tc., még egy plugin . Az információ csak az olvasáshoz kapcsolódhat Ext2 / 3/4 . Töltse le a bővítményt, csomagolja ki az archívumot a fájlkezelő belsejében, futtassa a telepítést.

Fuss (fontos) Az adminisztrátor nevében. Kattintson. Menj.

Ha az adatokat másolnia kell hagyományos módon Az F5 gombbal.

4. EXT2FSD támogató illesztőprogram

Program Ext2fsd. - ez a vezető Ext2 / 3/4 Ezeket a fájlrendszerek támogatását az operációs rendszer szintjén hajtja végre. A lemezszakaszokkal és meghajtókkal, ezeken a fájlrendszerekben formázva, a hagyományos támogatottaknál is működhet. Windows eszközök információk a vezetőablakban vagy harmadik féltől származó programok. Az illesztőprogram lehetővé teszi és olvasni és írni az adatokat.

Töltse le az utóbbit tényleges verzió Ext2fsd..

Az aktiválás telepítésekor (Ha a hosszú távú munka esetén) Három kiválasztott ChekBoxes:

1 - autorun illesztőprogram ablakokkal együtt;
2 - Felvételi támogatás Ext2.;
3 - Támogatás formázása Ext3.

Az előfinom szakaszban aktiválja az opciót a Driver Dispatcher ablak elindításához - - információs eszközök társításával Ext2 / 3/4 Lemezbetűk.

A megnyitott ablakban Meg fogjuk látni a fuvarozót a már hozzárendelt levelével. Például a mi esetünkben a fuvarozó Ext4. Az első ingyenes levelet megkérdezik. F..

Most egy lemezzel dolgozhatunk F. A vezetőablakban.

Hozzárendelje a betűt az új plug-in eszközökhöz Ext2 / 3/4 Használhatja a megjelenített ablakban lévő helyi menüt. eszközök. De csak egy lemezbetű hozzárendelése során egy ilyen eszköz nem jelenik meg windows újraindulEz a megoldás csak egy számítógépes munkamenetre vonatkozik. Új eszköz készítése Ext2 / 3/4 Folyamatosan látható a Windows környezetben, meg kell nyitnia egy konfigurációs ablakot egy dupla kattintással, és telepítenie kell az állandó csatlakozási paramétereket. A második oszlopban:

A cserélhető adathordozóhoz aktiválja a jelölőnégyzetet, amelyet az 1-es képernyőképen feltüntetett, és adja meg a meghajtó betűjét;
Belső lemez és partíció, aktiválja a négyzetet jelölve az alábbi képernyőképet a 2. számú, valamint azt a lemezt írni.

(Második kiterjesztett fájlrendszer).

· A Linux fájlrendszerek erdészete

· Az ext2fs lemezmegmunkálási struktúrája

·

· Katalógusok

· Fájlok eszközök

·

·

· Könyvtár ext2fs.

· Az EXT2FS rendszer szakasza

· A magánélet kiszámítása

Matfak

PROG.

2. kurzus 5. gramm.

Chichirov Andrey

Falomethem EXT2FS (második kiterjesztett fájlrendszer).

Linux fájlrendszerek lejáratait

A Linux változók a Minix operatív rendszer alapján adatbázisok voltak. Két rendszer között kijelölt lemezek lennének, mint új fájlrendszer, így a Linus Torvalds követte a Linux Minix fájlrendszer alfejezetét. Míg ez a fájlrendszer viszonylag hatékony volt kis mennyiség Hibák.

Azonban a villog társított MINIX fájlrendszer igen magas, ezért elkezdett gondolkodni az új fájlrendszer Linux.

A Linux Poison új fájlrendszerének megvalósításának ellenőrzése érdekében virtuális fájlrendszert (VFS) használtunk. A VFS-t Chris Provenzano írta, majd a Linus Torvalds a méregbe integrálta.

A VFS Poison telepítése után az új FAL System System (kiterjesztett fájlrendszer) könnyen és hozzáadva a Linux 0.96c Vexa-hoz. Az új fájlrendszerben két lényeges minixrendszert eltávolítottak: maximális hangereje elérheti a 2 gigabájtot, és a maximális fájlnév 255 karakter. A minix fájlrendszerrel való elérés volt, bár az egyszerűen nyilvánvalóan még mindig gépelés. Nem volt függőleges hozzáférés, az Index Descippet módosítása, és módosítja a fájlváltozás sejtjeit. Ez használt fájlrendszer kapcsolódó listák megnyitásához ingyenes blokkok és index descppings, ami nagyban befolyásolja a rendszer a rendszer: a listákat a listákat vált meghatározatlan és eloltására, amely korábban a fájl egy fájlrendszer.

A szonda döntése 1993 januárjában két új fájlrendszer felszabadulása volt: Xia és EXT2FS (második kiterjesztett fájlrendszer). A XIA fájlrendszer nagyrészt a Minix-en alapult, több új funkció hozzáadásával. Alapvetően ez volt a hosszú fájlnevek gyakorlásának lehetősége, a nagyobb térfogatú lemezek jóváhagyása és a fájl sejtjeinek feszültsége. A finom kövekkel az Ext2fs számos fejlesztéssel és kiegészítéssel rendelkező Extfs-en alapult. Ő is volt lehetőség a jövőre is.

Amikor ezek a két fájlrendszer felszabadult, funkcionálisan határozottan volt. A XIA rendszer megbízhatóbb volt, mint az ext2fs, minimalizálása miatt. A csendes alkalmazásuk szerint az EXT2FS rendszer hibái nem voltak beágyazva, és hozzáadtak nagyszámú Új funkciók és fejlesztések. A jelenlegi EXT2FS fájlrendszer nagyon megbízható, és de facto Linux fájlrendszerré vált.

Az alábbi táblázat közös információkat szolgáltat a funkcionális funkciók funkcionalitásáról, amelyek szaggatott fájlrendszerekkel vannak ellátva.

Minix FS.

EXT FS.

Ext2 fs.

Xia FS.

Maximális fájlrendszer

Maximális fájlhossz

Maximális fájlnév hossza

A fájlok változásainak tornyának alja

A tempó képessége

Változtatható pazmp blokk

Az infoment védelme

Ha szüksége van a fájlnév hosszára Ext 2. 1012-re növelhető.

Az EXT2FS behatol a root felhasználó néhány blokkjában. Általában a teljes összeg 5% -a, amely lehetővé teszi a rendszer beadását, hogy elkerülje a térfogat hiányát merevlemez Öntsük, hogy töltse ki a felhasználók dpuchi felhasználók használatával.

Lemezpartícióstruktúra EXT2FS-ben

A merevlemezgyártók általában alacsony szinten formázott termékeiket. Amennyire tudom, ez azt jelenti, hogy a speciális címkék segítségével minden lemezterületet az "ágazatok", az 512 bájt méretének megszakítja. Az ilyen lemez (vagy lemezszakasz) egy adott operációs rendszerben történő használatra kell készíteni. MS-DOS-ban vagy ablakokban az előkészítési eljárást formázásnak és Linuxnak nevezik - fájlrendszer létrehozása. Fájlrendszer létrehozása ext2fs. Az adott logikai struktúra lemezszakaszában létre kell hoznia. Ez a szerkezet a következőképpen épül fel. Először is, a boot terület a lemezen van elosztva. A boot terület bármely fájlrendszerben jön létre. Az elsődleges partíció, tartalmaz egy boot bejegyzés - egy kódrészletet, amely kezdeményezi a folyamat az operációs rendszer betöltése induláskor. Más szakaszokon ezt a területet nem használják. A lemezterület többi részét blokkokra osztják. Az egység mérete 1, 2 vagy 4 kilobájt. A blokk a lemezterület egységével címezhető. A helyfájlok kiválasztása teljes blokkokat hajt végre, így a blokk méretének kiválasztásakor kompromisszumot kell tennie. A blokk nagyméretét szabályként csökkenti a lemez elolvasása vagy írása során a lemezre való felkérés számát, de növeli a ritkán használt tér arányát, különösen akkor, ha nagy számú kis fájl létezik.

A blokkok, a területen blokkok csoportjai. A csoportban lévő fájlrendszerben és blokkokban lévő blokkcsoportok egymás után vannak számozva, az 1. indítással. Az első blokk a lemezen 1-es számmal rendelkezik, és az 1. számmal tartozik a csoporthoz (a lemezen lévő blokkok száma) szakasz) az ágazatokban kifejezett lemezmennyiség osztó. És a blokkcsoportok száma nem szükséges megosztani a blokkok számát, mert a blokkok utolsó csoportja nem lehet teljes. A blokkok blokkok kezdete olyan címmel rendelkezik, amely ((csoportszám - 1) * (csoportszámok száma a csoportban)).

Minden blokkcsoportnak ugyanolyan szerkezete van. A szerkezetét a következő tabletta mutatja be.

A lemezpartíció blokkok csoportja ext2fs.

Ennek a szerkezetnek az első eleme (Superblock) minden csoport esetében megegyezik, és minden más az egyes csoportok számára egyedi. A szuperblokkot az egyes blokkok első blokkjában tárolják (az 1. csoport kivételével, amelyben az első blokk található indító rekord). Szuperblock Ez a fájlrendszer kiindulópontja. 1024 bájt és mindig a fájlrendszer kezdetétől 1024 bájt eltolásán található. A szuperblokk több példányának jelenléte a fájlrendszer elemének rendkívüli fontosságának köszönhető. Superblock Duplikátumokat használnak a fájlrendszer hibáinak visszaállításakor.

A Superbockban tárolt információkat a lemez egyéb adatainak elérésére használják. A Superblock meghatározza a fájlrendszer méretét, a fájl maximális számát a szekcióban, a szabad hely mennyiségét, és tartalmaz információkat arra, hogy hol keresse meg az üres helyeket. Amikor elkezdi az operációs rendszer, szuperblokkot olvasni a memóriába, és minden változást a fájlrendszer először megtalálni a kijelzőn a másolatot a superblock található az OP és felvételére csak időszakosan. Ez lehetővé teszi a rendszer teljesítményének növelését, annyi felhasználót és folyamatot, amely folyamatosan frissíti a fájlokat. Másrészt, amikor a szuperblokk ki van kapcsolva, meg kell írni a lemezre, amely nem teszi lehetővé, hogy kikapcsolja a számítógépet egyszerűen kikapcsolja a teljesítményt. Ellenkező esetben a következő terhelésnél a szuperblokkban rögzített információk nem alkalmasak a fájlrendszer valós állapotára.

A Superblock a következő struktúrával rendelkezik

A mező neve

Egy típus

Megjegyzés

s_inodes_count

Ulong

Az index leírók száma a fájlrendszerben

s_blocks_count.

Ulong

A fájlrendszer blokkjai száma

s_r_blocks_count.

Ulong

A superuser számára fenntartott blokkok száma

s_free_blocks_count.

Ulong

A szabad blokkok száma

s_free_inodes_count.

Ulong

A szabad index leírók számának számlálása

s_first_data_block

Ulong

Az adatokat tartalmazó első blokk. A készülék méretétől függően ez a mező 0 vagy 1 értéke lehet.

s_log_block_size.

Ulong

Logikai blokk méret jelző: 0 \u003d 1 KB; 1 \u003d 2 kb; 2 \u003d 4 kb.

s_LOG_FRAG_SIZE.

Hosszú.

Fragment méretű kijelző (Úgy tűnik, a fragmens fogalmát jelenleg nem használják)

s_blocks_per_Group.

Ulong

Blokkok száma minden blokkban

s_FRAGS_PER_GROUP.

Ulong

Az egyes blokkblokkok töredékeinek száma

s_INODES_PER_GROUP

Ulong

Az index leírók száma (inodes) minden blokkblokkban

s_mtime.

Ulong

Az idő, amikor a fájlrendszert utoljára szerelték.

s_wtime.

Ulong

Az utolsó alkalom, amikor az utolsó alkalommal rögzítették a fájlrendszerben

s_mnt_count.

Ushort

A rögzítő fájlrendszer mérete. Ha ez a számláló eléri a következő mezőben megadott értéket (S_MAX_MNT_COUNT), a fájlrendszert ellenőrizni kell (ez az újraindításkor történik), és a számláló visszaáll.

s_MAX_MNT_COUNT

Rövid

A fájl, amely meghatározza, hogy hányszor szerelhető a fájlrendszer

s_magic

Ushort

"Magic szám" (0xef53), jelezve, hogy a fájlrendszer az EX2FS típushoz tartozik

s_State.

Ushort

Zászlók, amelyek jelzik a fájlrendszer aktuális állapotát (függetlenül attól, hogy tiszta (tiszta) stb.)

s_Errors.

Ushort

Zenák, amelyek hibaüzenetkezelési eljárásokat adnak meg (mit kell tenni, ha hibákat találnak).

s_pad.

Ushort

Töltő

s_LASTCHECK.

Ulong

Az utolsó fájlrendszer ellenőrzése

s_checkinteral

Ulong

A fájlrendszer ellenőrzése közötti maximális időtartam

s_creator_os.

Ulong

Az OS típusának megadása, amelyben a fájlrendszer létrejön

s_REV_LEVEL.

Ulong

Felülvizsgálati szint fájlrendszer.

s_Rerved

Ulong

Legfeljebb 1024 bájt kitöltése

A Superblock után a blokkcsoport leírása (csoportleírók) található. Ez a leírás egy tömb, amelynek a következő struktúrája van.

A mező neve

Egy típus

Célja

bg_block_bitmap

Ulong

A blokk címe, amely a csoport bitkártyablokkjait tartalmazza (blokk bitmap)

bg_inode_bitmap

Ulong

A csoport bitmapját tartalmazó blokk címe (inode bitmap)

bg_inode_table

Ulong

A csoport indexleíró táblázata (inode táblázat) táblázata címe

bg_free_blocks_count.

Ushort

A csoportban lévő szabad blokkok számának számlálása

bG_FREE_INODES_COUNT

Ushort

Az ingyenes index leírások száma ebben a csoportban

bG_USED_DIRS_COUNT.

Ushort

Az index leírók száma ebben a csoportban, amelyek katalógusok

bG_PAD.

Ushort

Töltő

bG_REServed.

Ulong

Töltő

A blokk leírásának mérete kiszámítható (Méret_group_blok_v_ext2 * number_groups) / size_block (Ha szükséges, lekerekített).

A csoport leírásában tárolt információkat a blokkok és az index leírók bitkártyái, valamint az indexleírók táblázatát találják. Ne felejtsük el, hogy blokkok és blokkok blokkok száma 1.

A Bit Térképblokk (blokk bitmap) egy szerkezet, amelynek minden egyes bitje azt jelzi, hogy a megfelelő blokk hozzárendeli-e hozzá. Ha a bit 1, akkor a blokk elfoglalt. Ez a kártya arra szolgál, hogy keresni szabad blokkok olyan esetekben, amikor az szükséges, hogy kiemelje a helyét az a fájl, a bitmap blokkok elfoglalja a blokkok száma megegyezik a (NUMBER_BLOCK_V_GROUP / 8) / size_block (Ha szükséges, lekerekített).

Az indexleírók bitképe hasonló funkciót hajt végre az indexleírók táblázatához képest: azt mutatja, hogy melyik leíró foglalt.

A blokkszerkezet struktúrájának következő területe az indexfájlleírók táblázatának tárolására szolgál. Az indexleíró szerkezetét a következő alfejezetben figyelembe veszik.

Nos, végül a blokkcsoport fennmaradó helyét a ténylegesen tárolják.

FájlrendszerExt. A 2-et jellemzi:

  • hierarchikus struktúra
  • az adatgyűjtő feldolgozás,
  • dinamikus fájlkiterjesztés,
  • információbiztonság a fájlokban
  • a perifériás eszközök (például terminálok és szalagos eszközök) értelmezése fájlként.

A fájlok belső nézete

Az EXT 2 rendszer minden egyes fájlja egyedi indexgel rendelkezik. Az index olyan információkat tartalmaz, amelyekhez bármilyen folyamatra hivatkozhat a fájlra. Folyamatokat lásd a fájlokat egy egyértelműen meghatározott rendszer hívások és azonosítja a fájlt húr fájlt meghatalmazotti összetett fájl nevét. Minden összetett név feltétlenül határozza meg a fájlt, hogy a rendszer kernel alakítja ezt a nevet a fájl indexe. INDEX tartalmaz egy táblázatot a címet a fájl helyét információ a lemezen. Mivel a lemez minden blokkja a számának címzettje, ez a táblázat tárolja a lemezblokkszámok sorát. A rugalmasság növelése érdekében a rendszermag egy blokkhoz kapcsolódik a fájlhoz, lehetővé téve a fájlinformációkat, hogy szétszóródjanak az egész fájlrendszeren keresztül. De ez az elhelyezési rendszer bonyolítja az adatkeresési feladatot. A címeket tartalmazó lista blokk számok fájlt tartalmazó tulajdonosa a fájlt, azonban az egyszerű számítások azt mutatják, hogy a lineáris listát fájl blokkolja az index nehéz ellenőrizni. Annak érdekében, hogy egy kis indexszerkezet nagy fájlokkal dolgozzon, a lemezblokk címe táblázata összhangba kerül az 1. ábrán bemutatott szerkezethez

Az EXT 2 rendszer legtöbb fájlja olyan méretű, amely nem haladja meg a 10 kb-ot, és akár 1 kb-ot is, mivel a 10 kb-os fájl a közvetlen címzési blokkokban található, a fájlokban tárolt adatok nagy részéhez, a hozzáférést egy fellebbezésben a lemezre. Ezért, ellentétben a fellebbezéssel nagy fájlokA szabványos méretű fájlok működése gyorsan folytatódik.

Index fájlleírók

A lemezen lévő minden fájl megfelel az egy és egyetlen indexfájl-fogantyúnak, amelyet a szekvencia száma - a fájl index. Ez azt jelenti, hogy a fájlok számát, hogy lehet létrehozni a fájlrendszerben korlátozott száma index leírásokat, amelyek egyszerűen meghatározni egy fájl létrehozásakor a rendszer, vagy alapján kerül kiszámításra a fizikai mennyisége az a partíció. Indiai Descpportok léteznek a lemezen statikus formában, és a rendszermag elolvassa őket a memóriában, mielőtt elkezdene dolgozni.

Az indexfájl fogantyúja a következő struktúrával rendelkezik:

A mező neve

Egy típus

Leírás

I_mode.

Ushort

Típus és hozzáférési jogok ehhez a fájlhoz.

I_uid

Ushort

Fájl tulajdonos azonosítója (tulajdonos UID).

I_SIZE.

Ulong

Fájlméret bájtban.

I_atime.

Ulong

Az utolsó hozzáférés ideje a fájlhoz (hozzáférési idő).

I_cime.

Ulong

Fájl létrehozás ideje.

I_mtime.

Ulong

A fájl utolsó módosításának időpontja.

I_dtime.

Ulong

Fájl törlési idő.

I_gid

Ushort

Csoportazonosító (GID).

I_links_count

Ushort

Kapcsolatok számláló (linkek száma).

I_blocks.

Ulong

A fájl által elfoglalt blokkok száma.

I_flags.

Ulong

Fájl zászlók Fájl zászlók)

I_rerved1

Ulong

Fenntartva az operációs rendszerhez

I_block

Ulong

A mutatók, amelyek blokkolják a fájladatok rögzítését (az 1. ábrán a közvetlen és közvetett címzés példája)

I_version.

Ulong

Fájlverzió (NFS esetén)

I_file_acl

Ulong

ACL fájl.

I_dir_acl

Ulong

ACL katalógus

I_faddr.

Ulong

Fragment cím (fragmentcím)

I_frag

Uchar.

Fragment szám (töredékszám)

I_fsize.

Uchar.

Fragment méret (fragment méret)

I_pad1

Ushort

Töltő

I_rerved2.

Ulong

Fenntartott

A típus a területen, és a hozzáférési jogokat a fájl egy két bájtos szó, minden egyes darab, amely arra szolgál, mint egy zászló jelzi a fájl aránya egy bizonyos típusú vagy telepítését egy adott jogot a fájlt.

Azonosító

Érték

Kinevezési zászló (mezők)

S_IFMT.

F000.

Fájltípus maszk

S_ifsock

A000.

Domain fészek (aljzat)

S_IFLNK.

C000

S_IFREG.

8000

Normál (rendszeres) fájl

S_IFBLK.

6000

Blokk-orientált eszköz

S_IFDIR.

4000

Katalógus

S_IFCHR

2000

Byte-orientált (szimbolikus) eszköz

S_IFIFO.

1000

Nevezett csatorna (FIFO)

S_isuid

0800

Suid - Bit Shift tulajdonos

S_isgid

0400

SGID - Csoport Shift bitek

S_isvtx

0200

Feladatvédelem bit (ragadós bit)

S_irwxu.

01c0.

Fájl tulajdonos jogai maszkja

S_irusr.

0100

Olvasási jog

S_iwusr.

0080

A felvételhez való jog

S_IXUSR.

0040

A végrehajtás joga

S_irwxg.

0038

Csoport maszk csoport

S_irgrp.

0020

Olvasási jog

S_iwgrp.

0010

A felvételhez való jog

S_ixgrp.

0008

A végrehajtás joga

S_irwxo.

0007

Más felhasználók jogainak maszkja

S_iroth

0004

Olvasási jog

S_iwoth

0002

A felvételhez való jog

S_ixoth

0001

A végrehajtás joga

Az index leírók között számos leíró van, amelyek speciális célokra vannak fenntartva, és speciális szerepet játszanak a fájlrendszerben. Ezek a következő leírások

Azonosító

Érték

Leírás

Ext2_bad_ino.

Az indexleíró, amelyben a lemezen lévő hibás blokkok címei szerepelnek (rossz blokk inode)

Ext2_root_ino.

Fájlrendszer gyökérkönyvtár index leírója (gyökér inode)

Ext2_acl_idx_ino.

ACL inode

Ext2_acl_data_ino.

ACL inode

Ext2_boot_loader_ino.

Loader index leíró (boot betöltő inode)

Ext2_undel_dir_ino.

Undelete könyvtár inode.

Ext2_first_ino.

Az első nem pro-index leíró

A lista legfontosabb fogantyúja a gyökérkönyvtár leírója. Ez a leíró a gyökérkönyvtárra mutat, amely, mint az összes könyvtár, a következő struktúra nyilvántartásaiból áll:

A mező neve

Egy típus

Leírás

Inode

Ulong

fájlindex leíró száma (index)

rEC_LEN.

Ushort

A rekord hossza

nAME_LEN.

Ushort

Fájlnév hossza

Név.

Char.

Fájl név

A katalógusban lévő külön bejegyzés nem haladhatja át a blokk határát (vagyis teljesen egy blokkban kell elhelyezni). Ezért, ha a következő bejegyzés nem illeszkedik teljesen ebben a blokkban, akkor a következő blokkba kerül, és az előző rekord folytatódik oly módon, hogy a blokkot a végéig töltse ki.

1. ábra A közvetlen és közvetett címzés blokkja az indexben

2. ábra A fájl mennyisége bájtban 1 kb blokk méretben

3. ábra. Példa a lemezindexre

A 3. ábra egy bizonyos fájl lemezindexét mutatja. Ez az index a szokásos fájlhoz tartozik, amelynek tulajdonosa az "MJB" és a mérete 6030 bájt. A rendszer lehetővé teszi az "MJB" felhasználót a fájl olvasásához, írásához és végrehajtásához; Az "OS" csoport tagjai és az összes többi felhasználó csak a fájl elolvasásához vagy végrehajtásához engedélyezhető, de nem rögzíti az adatokat. Az utóbbi időben a fájl olvasható október 23-án, 1984. 13:45, a rekord volt az utolsó alkalommal került sor október 22-én, 1984-ben és 10:30 között. Az index 1984. október 23-án, 13:30 órakor változott, bár ebben az időben nem volt információ. A kernel az index összes fenti adatait kódolja. Figyeljen a különbségre az index tartalmának és a fájl tartalmának nyilvántartásának különbségére. A fájl tartalma csak akkor változik, ha a fájlt rögzíti. Az index tartalma mind a fájl tartalmának megváltoztatásakor, mind a fájl tulajdonosának megváltoztatásakor változik, hozzáférési jogok és mutató készletek. A fájl tartalmának megváltoztatása automatikusan az index korrekciót okozza, de az index korrekció nem jelenti azt, hogy megváltoztatja a fájl tartalmát.

Katalógusok

A katalógusok olyan fájlok, amelyekből a fájlrendszer hierarchikus struktúrája épül; Fontos szerepet játszanak a fájlnévnek az indexszámra történő forgatásához. A könyvtár olyan fájl, amely tartalmazza az indexszámból és a könyvtárban szereplő fájlnevét. Az összetett név egy szimbólum karakterlánc, amelyet egy üres szimbólum és a ferde vonal megosztott ("/") több összetevőbe. Minden egyes komponens, az utóbbi mellett, könyvtárnévnek kell lennie, de az utolsó összetevő lehet olyan fájl, amely nem könyvtár. A UNIX rendszer V verziójában az egyes komponens hossza 14 karakterre korlátozódik; Így 2 bájtal együtt, az indexszámhoz rendelt, a könyvtár felvételi mérete 16 bájt.

Ellenőrizze a bájtokat
A katalógusban

Index szám
(2 byte)

Névfájl

1798

benne

1276

fsck.

clri

1268

mOTD.

1799

hegy

mKNOD.

2114

passwd.

1717

umount.

1851

ellenőrzőlista.

fsdbld

config

1432

getty.

Összeomlik.

mkfs.

4. ábra Katalógus formátum / stb

A 4. ábra az "ETC" könyvtár formátumát mutatja. Minden könyvtár fájlja van, mivel a nevek jelzött pont és két pont ("." És "..") és indexszámok, amelyek megfelelnek az indexszámoknak ez a katalógus és a szülői katalógus. Indexszám fájl "." A "/ etc" könyvtárnak van egy címe az Offset 0 és a 83-as értékkel. A ".." .. "fájl indexszáma a könyvtár kezdetétől kezdve a 16-as értékkel rendelkezik. , és az indexszám 0. Például a "/ etc" című címre való felvétel az "/ etc" címre üres, annak ellenére, hogy az "összeomlás" nevű fájl belépési pontja tartalmazza. Az MKFS program inicializálja a fájlrendszert oly módon, hogy az indexszámokat a fájlok "." És ".." A gyökérkönyvtár egybeesik a fájlrendszer root indexszámával.

A rendszermag a könyvtárban lévő adatokat ugyanúgy tárolja, mint a normál típusú fájlban az indexstruktúrával és blokkokkal a közvetlen és közvetett címzés szintjével. A folyamatok ugyanúgy olvashatnak adatokat a könyvtárakból, ugyanúgy, ahogyan rendszeres fájlokat olvasnak, de a könyvtárhoz való kizárólagos bejegyzést a mag tartja, amely biztosítja a könyvtárstruktúra helyességét. Katalógus A hozzáférési jogok a következő jelentéssel bírnak: Az olvasási jog lehetővé teszi a folyamatok lehetőséget, hogy az adatokat a katalógusból olvassa el; Felvételi jog Lehetővé teszi a folyamat új bejegyzését a könyvtárban, vagy törölje a régi (Creat, MKNOD, LINK és NINCK OLDISINGS), amelynek eredményeképpen a katalógus tartalma megváltozik; A végrehajtás joga lehetővé teszi, hogy a könyvtárat a fájlnév (mivel a "végrehajtás" a katalógus értelmetlen).

Ha bármely program a fájl elérési útját használja, a megfelelő Nomep of the Index Descip tartalmazza a katalógusokat. Miután a fájlnevet használták az index leírási számában, ez a Descippot a memóriába kerül, majd a következő zAP-ban használható.

A Unix fájlrendszerek fogalma tartalmazza a referencia fogalmát. Az egyik index descipboard társítható több fájlnévvel. A Deskpottot egy mező, egy Hinner segíti, amellyel a fájl társult. A link hozzáadása egy könyvtárbejegyzés létrehozása, ahol az Index Descippet száma egy diskpotot jelez, és növeli a Referencia számláló a Descpportban. Meg kell törölni a linkeket a méreg csökkenti a referencia számlálót és törli a desqpot, ha ez a mérő válik null.

Az ilyen linkeket merevnek nevezik, és csak egy fájlrendszerben lehet használni (nem hozhat létre linket egy fájlrendszerhez egy flip fájlrendszerből). Ezenkívül a merev link csak egy fájlt is megadhat (szigorú hivatkozás a könyvtárra a fájlrendszerbe való fókuszáláshoz).

A legtöbb UNIX rendszerben van egy másik típusú kapcsolat. Ezeket a hivatkozásokat, amelyek csak a fájlnevet népszerűsítik, szimbolikusnak nevezik. Az ilyen hivatkozások szegényebbét használja, miközben a fájl elérési útját használja a fájlba a Descipboard fájlba, a méreg helyettesíti a leállt szoftverre való hivatkozás nevét (azaz a célfájl nevében) és újra Intpps a fájl elérési útját. Mivel a szimbolikus link nem jelzi az Index desqpot-ot, lehetőség van olyan linkekre létrehozni, amelyek fertőtlenített fájlrendszerben találhatók. Ezek a hivatkozások bármilyen típusú fájlt jelezhetnek, még nem is léteznek. A szimbolikus hivatkozások annyira használatosak, mivel nincsenek olyan tüzek, amelyeknek kemény linkje van. Azonban olyan kötetet foglalnak el a lemezen, ahol az index descipboard és adatblokkok megengedettek. Használatuk lehet használni, hogy a mentesítési kapcsolatos módon használja a fájl elérési útját az index descipboard, ami annak köszönhető, hogy az a tény, hogy a szimbolizációt a szimbolikus linkeket a méreg újra meg kell adja meg a fájl elérési útvonalát.

Fájlok eszközök

Az UNIX-szerű operációs rendszerekben az eszközökhöz való hozzáférés speciális fájlokon keresztül történik. Ez a fájl nem történik meg a fájlrendszerben. Ez csak egy hozzáférési pont az eszköz meghajtójához.

Kétféle eszközfájl van: szimbolikus és blokk. Ha egy szimbolikus típusú, lehetséges, hogy adatokat cseréljen a készülék csak karakteres üzemmódban, míg blokk típusú eszközök fájlok lehetővé teszik, hogy kicseréljék csak blokk puffer alkalmazásával. Ha az I / O kérelmet kéri az eszközfájlba, akkor ezt a lekérdezést átirányítja a megfelelő eszköz vezetőjére. Minden hasonló fájl megfelel egy olyan vezető számnak, amely meghatározza az eszköz típusát, és a fiatalabb szobát, amely meghatározza a készüléket.

További funkciók EXT2FS.

A UNIX, az EXT2FS STOLE funkciók mellett vannak olyan további funkciók, amelyeket általában nem tartalmaznak UNIX fájlrendszerek.

A fájlok ATPIBUTS lehetővé teszi, hogy a Polar fájlok segítségével módosítsa a fájlokat. Telepítheti a fájlt vagy a könyvtárat. A második esetben a könyvtárban létrehozott fájlok örökölnek ezeket az atiometikusokat.

A rendszer montizációja során egyes funkciókat lehet telepíteni a fájl atiquotes-hez. A Mount opció lehetővé teszi az adminisztráció kiválasztásához a fájlok létrehozásának funkcióit. A BSD funkcióval rendelkező fájlrendszerben a fájlok ugyanazzal az azonosítóval rendelkeznek, mint a GPPP, valamint az apartmankatalógus. Jellemzői rendszer V kissé bonyolultabb. Ha a setgid bit katalógusban van állítva, a fájlok által létrehozott azonosítója GPPS a könyvtár kapott, és az alkönyvtárak öröklik a azonosítja a GPPP és setgid biteket. A jelen esetben fájlok és katalógusok jönnek létre a gppp alapvető azonosítójával, amely az okozó ppcress.

Az EXT2FS rendszer a BSD rendszerhez hasonló szinkron adatmódosítást használhat. A mount opció lehetővé teszi az adminisztrációt, hogy adja meg az összes adatot (index descplists, bitek, indirekt blokkok és a könyvtár blokkok) rögzítve a DC szinkronban azok módosításait. Ez a magas információs rekordok eléréséhez használható, de a papság romlását is magába foglalja. Tény, hogy ez a funkció általában nem használják, mivel a romló proliferáció, ezt fel lehet használni, hogy izzad a felhasználók a felhasználók, amelyek nincsenek jelölve a fájlrendszert.

Az EXT2FS lehetővé teszi, hogy létrehozzon egy fájlrendszert egy logikai blokk kiválasztásához. Ez lehet egy Pazmer 1024, 2048 vagy 4096 bájt. A használata nagy mennyiségű blokkok az I / O optiating (mint a mennyisége a szar, hogy a lemez csökken), és ezért, hogy egy kisebb fejléc a fejek. A blokk másik oldalán egy nagy blokkblokkok használata a lemez nyugdíj tárcsájához. Jellemzően az utolsó blokk a fájl használható nem teljesen a tájékoztatás terén, ezért egy mennyiségének növekedése a blokk, a kötet a teped lemez lyukasztó megnő.

Az EXT2FS lehetővé teszi az ösvény szimbolikus hivatkozások használatát. Az ilyen linkek használatával blokk adatblokkok nem használhatók. A célfájl neve nem az adatblokkban van, hanem az Index Descipboardban. Ilyen szerkezet lehetővé teszi, hogy fenntartsák a lemez ütését és elpárologtatják a szimbolikus kapcsolatok skótát. Persze, van egy csővezeték, deskted alatt descite, pelyhes, így nem minden kapcsolat lehet az elvállalt, mint hersal. A fájlnév maximális hossza másodlagos linkben 60 karakter. A közeljövőben tervezik, hogy szüneteltesse ezt a rendszert kis mennyiségű fájlokra.

Az EXT2FS követi a fájlrendszer állapotát. A szegények külön mezőt használnak a szuszpenzióban, hogy jelezzék a fájlrendszer állapotát. Ha a fájlrendszer olvasás / írásban van felszerelve, az állapot "nem tiszta". Ha a csak olvasható élvezetben lebontott vagy fel van szerelve, akkor a feltétele "tiszta". Amikor a rendszer és a fájlrendszer rendszere folyamatban van, ezt az információt a fájlrendszer szükségességének kezelésére használják. A szegények néhány huncut hibát is helyeznek ezen a területen. Megnyitott nem megfelelőségi mérgező, a fájlrendszer "hibás" jelöléssel van ellátva. A fájlrendszer szimulátora teszteli ezt az információt a rendszer rendszeréhez, még akkor is, ha az állapota valójában "tiszta".

A fájlrendszer tesztelése néha néha bizonyos elegendősé válhat, így az EXT2FS kétféle módszert tartalmaz a szabályozási rendszerhez. A SpearLockot a rendszer rögzítő számlálója elősegíti. Ez a számláló minden egyes PA-t növeli, ha a rendszer olvasási / írási funkcióba van szerelve. Ha értéke eléri a maximumot (a felfüggesztésben is huded), akkor a fájlrendszer tesztelését a pénztár elindítja, még akkor is, ha az állapota "tiszta". Az utóbbi, az első alkalommal és az első legmagasabb intelligens a felfüggesztésben is huded. Ha a PINKS között a maximális intelligencia érhető el, a fájlrendszer állapota figyelmen kívül hagyja, és az ellenőrzőpont elindul.

Az EXT2FS rendszert a jelenlegi. A TUNE2FS BRAMMA használható:

  • cselekvés PRI hiba kicsomagolással. Megnyitott egy nem megfelelőségi méreg, a fájlrendszer "hibás", és az alábbi lépések egyike elvégezhető: a végrehajtás végrehajtása, a fájlrendszer frissítése az olvasható élvezetben annak elkerülése érdekében Csatlakozás, a rendszer paging rendszere a fájlrendszerhez.
  • maximális szerelt érték.
  • maximális intelligencia a csapok között.
  • a root felhasználó számára a logikai blokkok száma.

A felépített opciók is használhatók a hiba méregének kötelezettségének módosítására is.

Az Atpibut használatával lehetővé teszi a felhasználók számára, hogy töröljék a szekvenciális fájlokat. Törölhet egy hasonló fájlt, a fájl használatához használt blokkokban, véletlenszerű információkkal rögzítve. Ezt fogják előmozdítani, hogy hozzáférjenek a fájl első részéhez a Hatóságban, és a lemez tárcsázása.

Az EXT2FS rendszer a közelmúltban új típusú fájlok 4,4 BSD fájlrendszerből készült. A típusú fájlok csak olvasásra használhatók: Senki sem kell megváltoztatnia őket, vagy törölnie őket. Ez a fontos konfigurációs fájlok védelmére használható. A fájlok típusát, ezek olyan fájlok, amelyek rögzítési funkciókká válhatnak, és az adatok csak a fájl végéhez adhatók hozzá. Ez a típusú fájlok eltávolíthatók vagy állandóak. Ezek olyan zeperes fájlokként használhatók, amelyek csak a köteten növelhetők.

A magánjog optimalizálása

Az EXT2FS rendszert olyan funkciók megkönnyítik, amelyek optimalizálják profilját, ami az olvasási és írási fájlokról szóló információk cseréjének növekedéséhez vezet.

Az EXT2FS aktívan használ egy lemez puffert. Amikor a készüléket el kell olvasni, a méreg megjeleníti az I / O opt / kimenet átlátszatlan. Így a szegényebb megpróbálja meggyőződni arról, hogy a következő blokk, amelyet el kell olvasni, már a lemez pufferért felelős. Az ilyen lehetőségeket általában soros olvasási fájlok segítségével végzik.

Az EXT2FS rendszer nagy mennyiségű információmódosítást is biztosít. A blokkokat a megfelelő index descippets és adatblokkok kombinálására használják. A méreg mindig megpróbálja nyomni az egyik fájl adatblokkjait egy gpupban, valamint a desqpot-ban. Ez a fejlécfejek és a leíró leírások és a megfelelő adatblokkok csökkentésére alkalmazzák.

Ezek az adatrekordok a fájlban, az Ext2fs legfeljebb 8 szomszédos blokkot erősít az új blokk segítségével. Az ilyen módszer lehetővé teszi a rendszer erősségeinek nagymértékű folyamatos javítását. Ezenkívül lehetővé teszi a fájlok szomszédos blokkjainak használatát, amelyek megfelelnek a következő olvasatnak.

Könyvtár ext2fs.

Az EXT2FS kártevők használatának kihasználása és a fájlrendszer érintkezési stroxitása, a Libext2fs könyvtár könnyű volt. Ez a könyvtár olyan funkciókat biztosít, amelyek használhatók az EXT2 fájlrendszer működtetéséhez és módosításához, a fizikailag kiküszöbölve.

A legtöbb EXT2FS segédprogramok (MKE2FS, E2FSCK, TUNE2FS, DUMPE2FS, DEBUGFS és DP) Használja ezt a könyvtárat. Ez határozottan kiegészíti ezeket a segédprogramok módosítását, mint bármilyen változás a bevezetéshez további jellemzők Az EXT2FS fájlrendszert csak az EXT2FS könyvtárba kell nyomni.

Mivel az Ext2FS internetes könyvtár elegendően shiyky és segéd, könnyen írható segítséggel. Alkalmazzák, az EXT2FS könyvtárat a 4.4 BSD dump és egyes segédprogramok visszanyerése használta. Megölték, hogy nagyon kevés változást alakítson ki ezeknek a felhasználásoknak a Linuxhoz való hozzáigazításához (több olyan funkciót kellett cserélni, amely kölcsönhatásba lép a fájlrendszerrel, hogy hívjon az EXT2FS könyvtárba).

Az EXT2FS könyvtár magában foglalja a több osztály működését. A pubertás osztály a fájlrendszerhez kapcsolódó átlátszatlan. Bármely samponam megnyithatja vagy eltolhatja a fájlrendszert, az olvasási vagy írási bit blokkot, hozzon létre egy új fájlrendszert a lemezen. A rossz blokk blokk blokkok listájának funkciói is vannak.

Az átlátszatlan második osztály katalógusokat fog használni. Profamma Az EXT2FS könyvtár segítségével létrehozhat vagy cserkész egy könyvtárat, valamint a könyvtárban lévő rekordok hozzáadását vagy törlését. Vannak olyan funkciók, mint a progellánsok az indexben a fájlba, és a fájl elérési útjának elérési útja a megadott descip.

Az áttetsző utolsó osztálya az Index Descilepts-szel nyílik meg. Lehetőség van olvasni a Descpport tábla, számolhatja meg vagy írja le a Descpotp, PP-t a megadott desqpot összes blokkjának megtekintése. Lehetőség van a blokkok és a Descpports képződésének és felszabadulásának funkcióinak megvalósításában.

Az EXT2FS rendszer szakasza

Az EXT2FS rendszerhez a kiegészítő felhasználás hatékony felhasználását alkalmaztuk. Ezeket a felhasználásokat az EXT2FS fájlrendszerek bármilyen ellentmondásainak létrehozására, módosítására és coppére használjuk. Az MKE2FS programot olyan lemezpasztász telepítésére használják, amely üres EXT2FS fájlrendszert biztosít.

A tune2fs alkalmazás lehet használni az erejét a fájlrendszer papalmet .cc meg lehet változtatni kell változtatni felmerülő hibákat, a maximális számú rendszer szerelés, a tervezett maximális között a rendszer előrehaladtával, és a több logikai blokkok hajtott a root felhasználó.

Talán a leginkább intelligens felhasználás az egyszerűsített fájlrendszer. Az E2FSCK a teljes rendszer átvételének beérkezését követő fájlrendszer befejezését követően komponálja. Az E2FSCK propamma kezdeti verziója a Linus Torvald FSCK fájlon alapul a Minix fájlrendszerhez. Azonban a transzmanens időszak jelenlegi verziói az EXT2FS könyvtár segítségével, és gyorsabbak és végrehajthatók nagy mennyiség Hibák a rendszer használatának rendszerében, a pápai vexa keretrendszer szerint.

Az E2FSCK szégyenét olyan idő alatt tanulmányozták, hogy a maximális sebességgel végezzük. Mivel a fájlrendszer tüskéjét a lemezfejnek hívják, optimalizálni kell az E2FSCK villogó algoritmusait, hogy a fájlrendszerre vonatkozó eljárást sokkal könnyebben kell használni. És emellett az index dezcts és könyvtárak szándékosai a blokkszám szerint kerülnek végrehajtásra a lemezmeghajtó fejének csökkentése érdekében.

Az E2FSCK törése során a fájlrendszert minden index descipient, és az egyik Descipputs a rendszer külön eleme. Ilyen alkalom, ezek a tesztelés nem illeszkedik a fájlrendszer objektumainak. Az ilyen csapok egyik célja a fájltípus típusának létezésének bemenete, valamint a Descpeppet összes blokkjának levelezése meglévő számokkal rendelkező blokkokkal. A kapcsolásban a bitek működnek, jelezve a blokkok és a desclisták használatát.

Ha az e2fsck találja az adatokat blokk, a noms amelyek összegyűjtött több mint egy descipping, akkor az 1B 1d utakat kezdett, hogy meghatározza a következetlenségeket - vagy növeli a hordozható blokkot vagy eltávolítása egy vagy több descipputs.

A legközelebbi Pepping a legtöbbet veszi fel, mivel az index Descippets-t el kell olvasni a memóriába és elválaszthatatlan. A későbbi testek bemeneti / kimeneti opcióinak csökkentése érdekében az összes szükséges információs mozgalom a pufferben marad. Ennek a rendszernek a boldogabb olvasása a fájlrendszer könyvtárának összes blokkjának keresése. Az információ beszerzéséhez az összes fájlrendszer könyvtárának szekvenciái a második utakon olvashatók.

A második díszítésben a könyvtárak a fájlrendszer egyedi elemeként íródnak. Az egyes könyvtárak blokkja különálló, a DPUCH könyvtár blokkjaira való hivatkozás nélkül. Ez lehetővé teszi az E2FSCK számára, hogy leválasztja a könyvtárak összes blokkját a blokkok számán, és lépjen kapcsolatba velük a futási időben, egy ilyen idő csökkenti a lemezhez való hozzáférést. A katalógusblokkokat a nyilvántartások valóságának levelezésére tesztelik, és hozzájárulnak a meglévő számmal rendelkező mezőkre való hivatkozásokhoz (ahogy bekapcsolták a törés során).

A könyvtár minden menetrendjében a könyvtár minden ütemezéséhez a bejegyzések létezése létezik. "." és "..", és hogy a Descpet szám a felvételre szolgál. " Megfelel az aktuális könyvtárnak. (Az ütemező szám a felvételhez ".." nem tesztel, amíg megfordul.)

A második fód végrehajtásakor az apartmankatalógusnak megfelelő információs mozgalom mentésre kerül a pufferbe.

Meg kell jegyezni, hogy a második pchoda végére szinte minden bemeneti / kimeneti opciót tartalmaz egy lemezen. Minden információ a mozgás, amely megpróbálja ezer negyedik és ötödik utak, elősegíti a memóriában, azonban a fennmaradó gödrök a PPPSSOP és kevesebb, mint 5-10% -át e2fsck végrehajtását.

A katalóguskapcsolatok a Trinketben találhatók. Az E2FSCK az egyes könyvtárak útvonalait az ágyba inni, a második fód által kapott információk felhasználásával. Itt van a rekord ".." .. Minden katalógus az első és a kapcsolatok nem kerül az / Lost + található könyvtárba.

A negyedik, az E2FSCK utazások, a referencia-számlálók minden index Descip tartalmazza az összes Descpports PPPlaying-t, és tükrözi a referencia mérőket (ezt az információt keresztfigurákból tartják) belső mérőkkel, amelyeket az értékek a Sub-Second és Trunks. Minden sikertelen fájl nulla referenciaóra is elhelyezhető az / elveszett + található könyvtárba.

És végül, az ötödikben az E2FSCK a fájlrendszer összes információs információjának levelezése. Itt vannak a bitek blokkok és descplists, amelyeket kapott az első forthy darab, érvényes értékeket, és ha szükséges, a lemez információt a lemez megfelelő bekövetkezik.

Használja a fájlrendszer hibakeresési hasznos használatát. A Debugfs egy erőteljes hiúság, amely lehetővé teszi, hogy leereszkedjen és állítsa be a fájlrendszer állapotát. Lényegében az Interaktív internet az EXT2FS könyvtárhoz, azaz a könyvtári funkciókhoz való híváshoz.

A Debugfs használható belső fájlrendszer-szűkület működtetésére, a helyreállítási rendszert, vagy az E2FSCK feltételes tesztjeit. Sajnos ez a Jammy megnyerheti a fájlrendszert, ha nem tudja, hogyan kell használni. Ezzel az erővel elegendő elpusztítani a fájlrendszert. Ezért a Debugfs a fájlrendszert az alapértelmezett csak olvasható helyzetben fordítja. Az olvasási / írási boríték eléréséhez meg kell adnia a -w opciót.

A magánélet kiszámítása

A Bonnie teszt eredményei az alábbi táblázatból láthatóak:

Sugar felvétel (CB / S)

Patch bejegyzés (CB / S)

Teljesítmény (kb / s)

Cukor olvasás (CB / S)

Piece Reading (KB / s)

BSD Async.

BSD szinkronizálása.

Ext2 fs.

1237

1033

Xia FS.

Az eredmények elég ismerik a blokk bemenet / kimenet: Az EXT2FS rendszer a referenciarendszeren nyer. Ez a PA közelítésben szereplő optimalizálásnak köszönhető. A bejegyzés is elég gyors ahhoz, hogy az a tény, hogy a kölyök a Gupiene Puremben. A nagy sebességű olvasás összefügg azzal a ténnyel, hogy a blokkokat beálltunk egy fájlt, így a cím fejeket nem végzett két mérés között, és az optimalizálás az első olvasat teljesen teljes mértékben.

Az oldal másik oldalán a FreeBSD rendszer a fenti referenciaérték szimbolikus bemenetét / kimenetét tartalmazza. Talán ez annak a ténynek köszönhető, hogy a FreeBSD és a Linux megfelelő a megfelelő C könyvtáraknak megfelelő könyvtárakkal. Ezen kívül, a FreeBSD-ben, annál optimalizáltabb szimbolikus olvasási könyvtár, ezért van egy kicsit jobb itt.

Vizsgálati eredmények andrew.

Andrew teszt eredményei láthatóak az alábbi táblázatból:

Pápa 1 létrehozása

Vízvezeték 2 másolás

Vízvezetés 3 állapot

Vízvezeték 4 Bapti

Vízvezeték-szerelő 5 Összeállítás

2203

7391

6319

17466

75314

BSD szinkronizálása.

2330

7732

6317

17499

75681

Ext2 fs.

Az elmúlt két gödrum eredményei azt mutatják, hogy a Linux megnyeri aszinkron adatcserét. A könyvtárakat és fájlokat hozza létre, a BSD rendszer szinkronban rögzíti a Descpports és a könyvtárak nyilvántartását. Van egy hívás, hogy az Asynchpone-t a FreeBSD-hez még nem hajtották végre teljesen.

A Linux és a BSD értékének tiszteletben tartása nagyon hasonló. Míg a BSD fent leírásakor, hozzáadunk egy csokrot a fájlnevekhez a Linux VFS rendszerhez, az erre a típusra van állítva.

Az ötödik és ötödik PPOD-kben a Linux gyorsan ingyenes, elsősorban a kombinált csokor használatára. A puffer térfogata több memóriát vehet igénybe, és több memóriát vehet igénybe, mint a FreeBSD-ben, ahol a rögzített kötetet használják. Az EXT2FS és a XIA FS válaszok eredményei azt mutatják, hogy az Ext2fs-ben tapasztalt optimalizálás valóban alkalmazható: ezeknek a rendszereknek az elkövetője körülbelül 5-10%.

Következtetés

Az EXT2 fájlrendszer a leginkább a Linux felhasználók számára készült. UNIX szabványos funkciókat és további funkciókat biztosít. Ráadásul a méregben szereplő optimalizálásnak köszönhetően kiváló válaszeredményeket mutat.

Az EXT2FS rendszer tartalmazza az új funkciók hozzáadását. Néhány ember gondoskodik az aktuális fájlrendszer használatáról: a hozzáférési vezérlés listája, amely megfelel a POSIX STANDA-nek, helyreállításnak távoli fájlok és a fájlok tömörítése hosszú szintű szakaszban.

Először is az EXT2FS rendszert beépítették a Linux méregbe, és aktívan mozog az operációs rendszerek működésénél. Az EXT2FS szintén fontos eleme a Masix operációs rendszernek, amelyet jelenleg az egyik autopsz.

Vladimir Miskov

Fájlrendszer-architektúra ext2

A cikk megvitatja a Linux operációs rendszer EXT2 fájlrendszerének logikai struktúráját.

Az EXT2 fájlrendszer alapvető összetevői

Mint minden Unix fájlrendszerben, az alábbi összetevők különböztethetők meg az EXT2 fájlrendszer részeként:

  • blokkok és blokkok blokkjai;
  • információs csomópont;
  • superblock.

Blokkok és blokkok blokkjai

A teljes lemezmegosztási hely rögzített méretű blokkok, többszektor méret - 1024, 2048 és 4096 bájt. A blokk mérete akkor jelenik meg, amikor fájlrendszert hoz létre a merevlemezen. A blokk kisebb mérete megmenti a merevlemez-területet, hanem korlátokat is maximális méret fájlrendszer. Minden blokk szekvenciaszámmal rendelkezik. Annak érdekében, hogy csökkentsék a fragmentáció és a mozgások száma a merevlemez fejek, olvasva nagy adattömbökkel a blokkokat egyesített csoportokba.

Információs csomópont

A fájlrendszer alapkoncepciója az információs csomópont, az információs csomópont vagy az inode. Ez egy speciális szerkezet, amely információkat tartalmaz az attribútumokról és a fizikai fájl helyéről. A fájl attribútuma a típus (normál fájl, könyvtár stb.), Hozzáférési jogok, tulajdonos azonosító, méret, létrehozási idő. A fizikai helyről szóló információk a fájladatok tartalmazó abszolút blokkszámok sorozata.

Szuperblock

A Superblock az EXT2 fájlrendszer fő eleme. A következő fájlrendszer információi (hiányos lista) tartalmazza:

  • a blokkok és inodódok száma a fájlrendszerben;
  • a szabad blokkok száma és inode a fájlrendszerben;
  • fájlrendszer blokk mérete;
  • blokkok száma és inode a csoportban;
  • méret inode;
  • fájlrendszer azonosítója;
  • az első adatblokk száma.

Más szóval, ez egy szuperblokkot tartalmazó blokkszám. Ez a szám mindig egyenlő 0, ha a fájlrendszer blokkjának mérete nagyobb, mint 1024 bájt, és 1, ha a blokk mérete 1024 bájt.

A fájlrendszer funkcionalitása közvetlenül a szuplock integritásától függ. Az operációs rendszer számos biztonsági másolatot készít a Superblock-ról, hogy képes legyen visszaállítani azt kárfogyasztás esetén. A fő másolat található az offset 1024 bájt a kezdetektől a szakasz, amelyen a fájlrendszer létrehozásakor (az első 1024 bájt van fenntartva az operációs rendszer bootloader).

Az EXT2 fájlrendszer korai verziói a szuperblokk másolatát hozták létre minden blokkblokk elején. Ez a lemezterület nagy veszteségéhez vezetett, így később csökkentették a szuperblokk biztonsági másolatának számát, és a 0, 1, 3, 5 és 7 blokkok csoportjait elhelyezésükhöz rendeztük.

Blok csoport formátuma

Az ext2 fájlrendszer általánosított szerkezeti diagramját az 1. ábrán mutatjuk be. egy.

Majdnem minden blokkcsoport azonos formátumú. Mindegyik csoportban az információs blokkok mellett a blokkok és inódcsoportok foglalkoztatására vonatkozó információkat bitkép formájában tárolják. A 0 blokkok blokkja magában foglalja a csoportok szuperblokkjait és asztalleíróit, amelyeket az alábbiakban figyelembe vesszük.

A foglalkoztatási blokkok betitása általában a csoport első blokkjában található. Ha a csoportban lévő biztonsági másolat jelen van, a bitmap a csoport második blokkjában található. A bitmap mérete egy blokk. A kártya minden egyes bitje a blokk állapotát jelöli. Ha a bit be van állítva (1), a blokk foglalt, ha a blokk visszaáll (0) - A blokk ingyenes. A csoport első blokkja megfelel a kártya nulla bitjének, a második blokknak - az első bit stb.

Az azonos csoportban található inode-ot az asztalban gyűjtik össze. A BITE foglalkoztatási térkép inode csoportban minden bit jellemzi az elem állapotát az inode csoportasztal táblázatában.

A blokkok minden blokkját a blokkcsoport leíró segítségével írják le. A csoportos fogantyú olyan szerkezet, amely információt tartalmaz a blokkok blokkok bitképeinek címével, az inode elfoglalt bitmap és a megfelelő csoport beadási táblázata. Az összes csoportos leírót az asztalleíró táblázatban gyűjtik össze, amelyet a blokkok csoportjában tárolnak 0. Csakúgy, mint egy szuperblokk, operációs rendszer A táblázatleírók biztonsági másolatait hozza létre.

Fájl olvasási algoritmus

Mindegyik inode, valamint a blokknak van egy sorszáma, amely egyedi a fájlrendszeren belül, és csak egyfájlt tartalmaz információkat. Így, hogy hozzáférjen a fájl tartalmát, meg kell tudni, hogy a sorszám a megfelelő inode neki megfelelő.

Mint már említettük, a fizikai fájl helyéről szóló információ az inode-ban található. Ez az információ 32 bites blokkszámok sorozatát tartalmazza, amelyek fájladatokat tartalmaznak (1. ábra). Az első 12 szám közvetlen linkek az információs blokkokhoz (közvetlen blokkok száma). A 13. szám közvetett link (közvetett blokkszám). Tartalmazza a blokk címét, amelyben az információs blokkok címét tárolják. A 14. szobában kettős közvetett link (kettős blokkszám), a 15. szám egy hármas közvetett kapcsolat (hármas blokkok száma).

Az inode fájlnév nem szerepel, a fájlnevek és az inode szekvenciaszámok közötti megfelelőség beállítása a könyvtárakon keresztül történik.

Katalógusok

A UNIX és POSIX rendszerekben található fájlokat egy fa hierarchikus fájlrendszerben tárolják. A fájlrendszer gyökere a "/" szimbólum által jelzett gyökérkönyvtár. A fájlrendszerben lévő összes közbenső csomópont egy könyvtár. A fájlrendszer fa végső csúcsai üres könyvtárak vagy fájlok. A fájl abszolút útjának neve a megadott fájlhoz vezető könyvtárak nevét tartalmazza, a gyökérkönyvtárral kezdődően. Tehát a /home/test.file műsorszáma azt jelenti, hogy a teszt.fájl fájl a kezdőkönyvtárban található, amely viszont a "/" gyökérkatalógusban található.

A katalógus, valamint a fájl, az inode használatával történik. A könyvtár tartalma a rekordok tömbje, amelyek mindegyike tartalmaz információt az aktuális könyvtár "belsejében" fájlról.

A könyvtár rekordja a következő formátumban van:

  • szekvencia szám inode fájl;
  • rögzítési hossz bájtban;
  • fájl név;
  • a fájlnév hossza.

Az inode fájl keresése mindig a gyökérkönyvtárral kezdődik. Például annak érdekében, hogy az inode sorszám a gyökérkönyvtárban, az operációs rendszernek kell szerezni az a root könyvtárban találja meg azt a fájl nevét, és távolítsa el a fájlt inode szám a lemezen.

A több inódszámszámot a fájlrendszer fenntartja, listájukat a fejléc fájl tartalmazza:

* Különleges inodh számok

#Define ext2_bad_ino 1 / * rossz blokkok inode * /

#Define ext2_root_in 2 / * root inode * /

#Define ext2_acl_idx_in 3 / * ACL inode * /

#Define ext2_acl_data_ino 4 / * ACL inode * /

#Define ext2_boot_loader_ino 5 / * boot betöltő inode * /

#Define ext2_undel_dir_ino 6 / * undelete könyvtár inode * /

A gyökérkönyvtár rögzítéséhez az inode a 2. számon (root inode) van fenntartva. Ez az inode a 0 blokk blokkjában van, és a második pozíciót veszi a csoport inode táblázatában. Az első nem kötelező inode számát a szuperblokkban tárolják.

Az inode szekvencia számának meghatározása után a rendszermag kiszámítja azt a csoportszámot, amelyben ez az inode található, és pozíciója az inode csoportasztalnál. Figyelembe véve az inode ebből a pozícióból, az operációs rendszer fogadja teljes információ A fájlról, beleértve a blokk-címeket, amelyekben a fájl tartalmát tárolja.

Az inode-inodén található blokk számát a képlet alapján számítjuk ki:

csoport \u003d (inode_num - 1) / inodes_per_group

hol:

  • csoport.- a blokkblokk kívánt számát;
  • inode_num - a fájl meghatározó sorszáma;
  • inOodes_per_csoport - A csoport inode száma (ez az információ a szuperblokkban van).

Az inode-pozíciót az inode csoport táblázatban a képlet határozza meg:

index \u003d (inode_num - 1)% inOodes_per_grupa

ahol az index egy inode pozíció a táblázatban.

Tekintsünk egy példát a Test.file fájl tartalmának megszerzésére a gyökérkönyvtárban. A /test.file fájl elolvasása:

  • a gyökérkönyvtárak sorában talál egy bejegyzést a fájlról;
  • kivonja az inode fájl sorszámát, kiszámolja a csoportszámot, amelyben ez az inode található;
  • a csoport leírójából kivonja az inode csoportasztal címét;
  • kiszámolja az inode pozíciót ebben a táblázatban;
  • olvassa el az inode fájlt;
  • az inode-ból a címblokk címeinek kivonásához és a blokkokban található információk olvasása.

Ábrán. 2 Részletek Megjeleníti a / tesztfájl olvasását. Fájl.

    1-6. Lépés - A gyökérkatalógus olvasása:

  1. A 0 blokkok csoportjától a táblázat leírásai olvashatók.
  2. Az asztalleíró táblázatból a 0 blokkcsoport csoportja letöltésre kerül, és az inode csoport címe olvasható.
  3. A 0 blokkcsoportból 0 elolvassa az inode asztalt.
  4. A gyökérkönyvtár beágyazási sorszáma rögzítve van és 2, így a második elem a 0 inode csoportból olvasható, amely tartalmazza a blokkcímet a gyökérkönyvtár tartalmával. Tegyük fel, hogy ez a készülék az A. blokkok blokkjában található.
  5. Az A blokkok csoportjától a gyökérkönyvtár rekordjait tartalmazó blokk olvasja.
  6. A "TEST.FILE" nevű bejegyzés rekordját keresik. Ha ilyen rekord található, a "Test.file" inode sorozat került letöltésre.
  7. Az inode szám meghatározásával hozzáférhet a fájl információs blokkjaihoz (7-11. Lépés):

  8. A csoport száma számítják, amelyben ezt a inode található, és pozícióját a inode-táblázat (tegyük fel, hogy a csoport szám egyenlő a B, és a helyzet a táblázatban - x).
  9. A csoportos leírók táblázatból távolítsa el a B részcsoport leíróját, és a blokk blokkjának beadási táblázatának címét olvassa el.
  10. Az inode táblázat a B blokkcsoportból olvasható.
  11. A blokkok blokkok beolvasási táblájából B inode, az X pozícióban helyezkedik el.
  12. A kiolvasott inode, a blokk címeket tartalomfájltól /test.File letöltődik és információt olvashatunk a blokkot a megadott címre.

A fájl olvasási algoritmus szoftverének megvalósítása

Forrásadatok: kemény szekció Az ext2 fájlrendszer létrehozásának lemezt. Ez a rész megfelel az eszköz / dev / hda3 fájlnak. A szakasz gyökérkönyvtárában a Home Subdirectory létrejön, és tartalmazza a következő tartalom tesztét.

A citrus délen élne?

Igen, de hamis eset!

1234567890-=

Nem hiszem, hogy rossz, nem értelmetlen, hanem a Telegráfiák képzésének folyamata a korábbi Szovjetunió kommunikációjának csapataiban!

Figyelem! Figyelembe kell venni egy fontos pontot. A létrehozott fájl nem kerül azonnal rögzítve a lemezen, és először a lemezpufferbe esik. A fenti algoritmus szerint azonnali megpróbáltatás, hogy a fájl tartalmának megszerzése ne vezessen semmit, mivel a fájlról szóló információ nem fizikailag a lemezen. Szükséges "kényszeríteni" a rendszert a lemez puffer rögzítésére a lemezen. Ennek legegyszerűbb módja az újraindítási művelet végrehajtása. Ezért a fájl létrehozása után indítsa újra a rendszert.

Feladatunk az eszköz / dev / hda3 fájlt használja, hogy elolvassa az /home/test.file fájlt az információs blokkokhoz való közvetlen hozzáféréssel.

Tekintsük a program végrehajtását, amely végrehajtja ezt a műveletet.

Fejléc fájlok:

#Inlude.

#Inlude.

#Inlude.

#Inlude.

#Inlude.

#Inlude.

A fejléc fájl meghatározza az ext2 fájlrendszer - szuperblokk, a blokkcsoport leíró, információs csomópont, könyvtár belépés fő összetevőit leíró szerkezeti típusokat.

Tekintsük röviden az egyes struktúrákban szereplő mezőket:

  1. Struct ext2_super_block Superblock struktúra:
    • __U32 S_INODES_COUNT- a fájlrendszerben lévő inode teljes száma;
    • __U32 S_Blocks_Count.- a fájlrendszerben lévő blokkok teljes száma;
    • __U32 S_Free_blocks_Count.- a szabad blokkok száma;
    • __U32 S_Free_inodes_Count.- a szabad inode száma;
    • __U32 S_FIRST_DATA_BLOCK- az első adatblokk száma (a blokkszám, amelyben a szuperblokk található);
    • __U32 S_LOG_BLOCK_SIZE. - Ez az érték a blokk méretének kiszámításához használható. A blokk méretét a következő képlet határozza meg: blokk méret \u003d 1024<< s_log_block_size;
    • __U32 S_Blocks_per_Group - a csoport blokkjai száma;
    • __U32 S_INODES_PER_GROUP - a csoport inode száma;
    • __U16 S_Magic - ext2 fájlrendszer-azonosító (0xef53 aláírás);
    • __U16 s_inode_size - az információs csomópont (inode) mérete;
    • __U32 S_First_ino. - Az első nem felmérett inode száma.
  2. Struct ext2_group_desc csoport leíró tervezési struktúra:
    • __U32 bg_block_bitmap- a csoportblokkok foglalkoztatásának bitképe;
    • __U32 bg_inode_bitmap- a foglalkoztatás inode csoportjának betitása;
    • __U32 bg_inode_table - Az inode asztal címe.
  3. Struct Ext2_inode Információs csomópont szerkezet:
    • __U16 I_MODE a fájl típusát és a hozzáférési jogokat. A fájl típusának beállítása a mező 12-15 bitjei:
      • 0xa000.- szimbolikus kapcsolat;
      • 0x8000.- normál fájl;
      • 0x6000.- blokk blokk eszköz;
      • 0x4000.- katalógus;
      • 0x2000- szimbolikus eszközfájl;
      • 0x1000- FIFO csatorna.
    • __U32 I_SIZE. - méret bájtban;
    • __U32 i_atime.- az utolsó fájl hozzáférési idő;
    • __U32 i_cime. - Fájlteremtési idő;
    • __U32 i_mtime.- az utolsó módosítás ideje;
    • __U32 i_blocks. - a fájl által elfoglalt blokkok száma;
    • __U32 i_block - Az információs blokkok címei (beleértve az összes közvetett linket is).
  4. Az ext2_n_blocks érték a fájlban található:

    * Az adatblokkokhoz viszonyított konstansok

    #Define ext2_ndir_blocks 12.

    #Define ext2_ind_block ext2_ndir_blocks.

    #define ext2_dind_block (ext2_ind_block + 1)

    #Define ext2_tind_block (ext2_dind_block + 1)

    #Define ext2_n_blocks (ext2_tind_block + 1)

  5. Struct ext2_dir_entry_2 Directory belépési struktúra:
  6. #Define ext2_name_len 255.

  • __U32 inode - inode számfájl;
  • __U16 REC_LEN. - a könyvtár rögzítési hossza;
  • __U8 NAME_LEN.- a fájlnév hossza;
  • char név.fájl név.

Meghatározzuk a fájlrendszer nevét, amelyen a fájlrendszer létrehozása, globális struktúrák és változók.

#Define part_name "/ dev / hda3"

struktúra ext2_super_block sb;

/ * Buffer asztalleírók tárolására * /

nem jelölt char buff_grp;

aláírás nélküli char buff; / * Információs puffer * /

int indev; / * Eszközfájl fogantyú * /

int blksize; / * Fájlrendszer blokk mérete * /

Számos olyan funkciót határozunk meg, amelyeket meg kell dolgoznunk:

Superblock olvasási funkció:

void Read_SB ()

Memet (& sb, 0,1024);

A szakasz kezdetétől 1024 bájtra tolódik, és elolvassa a szuperblokkot a struktúra ext2_super_block sb szerkezetéhez:

Ha (LSEEK (INDEV, 1024.0)< 0) {

Perror ("lseek");

Kilépés (-1);

Ha (Olvasás (Indev, Char * & SB, Sizeof (SB))< 0) {

Perror ("Olvasás");

Kilépés (-1);

Ellenőrizze a fájlrendszer azonosítóját:

Ha (sb.s_magic! \u003d Ext2_super_magic) (

Printf ("Ismeretlen fájlrendszer típusa!");

Kilépés (-1);

Az EXT2_SUPER_MAGIC értéke a fejléc fájlban van meghatározva.

Megjeleníti a szuperblockban található fájlrendszerről szóló információkat:

printf ("Superblock info -----------");

Printf ("inodes count -% u", sb.s_inodes_count);

Printf ("blokkok száma -% u", sb.s_blocks_count);

Printf ("Blokk méret -% U", 1024<< sb.s_log_block_size);

Printf ("első inóda -% d", sb.s_first_ino);

Printf ("mágia - 0x% x", sb.s_magic);

Printf ("inode méret -% d", sb.s_inode_size);

Printf ("inodes per csoportonként -% u", sb.s_inodes_per_group);

Printf ("blosks per csoport -% u", sb.s_blocks_per_group);

Printf ("első adatblokk -% u", sb.s_first_data_block);

Visszatérés;

Funkció olvasási táblázatleírók:

void Read_GDT ()

Számítsa ki a fájlrendszer blokk méretét:

Blksize \u003d 1024.<< sb.s_log_block_size

A csoportleíró táblázat egy blokkban található, amely közvetlenül az első adatblokk mögött található (szuperblokk esetén).

Olvassa el az asztalt:

Ha (lseek (indev, (sb.s_first_data_block + 1) * blksize, 0)< 0) {

Perror ("lseek");

Kilépés (-1);

Ha (olvasás (indev, buff_grp, blksize)< 0) {

Perror ("Olvasás");

Kilépés (-1);

Visszatérés;

Az inode tartalom funkciója számával:

void get_inode (int inode_num, struct ext2_inode * in)

A funkció bemeneti funkciói - Az inode szekvencia száma és a struktúra ext2_inode szerkezete.

Struktúra ext2_group_desc gd;

U64 csoport, index, pos;

Számítsa ki a blokkcsoport számát, amelyben az inode az inode_num szekvencia számmal van elhelyezve:

Csoport \u003d (inode_num - 1) / sb.s_inodes_per_csoport;

A táblázatból jellemzőket, távolítsa el a csoport leíró és másolja azt a STRUCT EXT2_GROUP_DESC GD szerkezete:

Memet ((void *) & gd, 0, sizeof (gd));

Memcy ((void *) & gd, buff_grp + (csoport * (sizeof (GD)), sizeof (GD));

Számítsuk ki a inode helyzetben a inode_num sorszám a Inode táblázatban a csoport csoport, és olvassa ezt a inode a szerkezet a STRUCT EXT2_INODE:

index \u003d (inode_num - 1)% sb.s_inodes_per_csoport;

POS \u003d ((__U64) gd.bg_inode_table) * BlkSize + (index * sb.s_inode_size);

Pread64 (indev, in, sb.s_inode_size, pos);

Visszatérés;

Adatblokk olvasási funkció:

void Read_iblock (Struct EXT2_INODE * IN, INT BLK_NUM)

U64 POS;

Bemeneti funkcióparaméterek - inode struktúra és blokkszám (az inode-ban található címblokk szekvenciájából származó szám).

Számítsa ki az eltolódást az információs blokkhoz a szakaszon, és olvassa el ezt a készüléket a globális pufferbe:

POS \u003d ((__U64) in-\u003e i_block) * Blksize;

Pread64 (INDEV, BUFF, BLKSIZE, POS);

Visszatérés;

Funkció a gyökérkönyvtár tartalmának fogadására:

void get_root_dentry ()

Struktúra ext2_inode in;

A gyökérkönyvtár inode sorszáma ismert, ezért megkapjuk a gyökérkönyvtár inode tartalmát, és olvassuk el a tartalmát a pufferben:

get_inode (ext2_root_ino, & in);

Read_iblock (& \u200b\u200bin, 0);

A buff puffer tartalmazza a gyökérkönyvtár tartalmát.

Visszatérés;

A beadási szám beérkezésének funkciója fájlnévvel:

int get_i_num (char * név)

Bemeneti funkció paraméterek - fájlnév. Visszatérési érték - a szekvencia szám inode fájl.

Int i \u003d 0, rec_len \u003d 0;

Struct ext2_dir_entry_2 dent;

A puffart pufferben van egy sor könyvtári bejegyzések. Az inode fájl sorszámának meghatározásához ebben a fájlban találja meg a fájl nevét:

Mert (; én< 700; i++) {

Memcy ((void *) és dent, (Buff + REC_LEN), sizeof (dent));

Ha (! Memcmp (dent.name, név, dent.name_len)) törés;

REC_LEN + \u003d DENT.REC_LEN;

Visszatérés dent.inode;

És most leírjuk a fő funkciót:

int Main ()

Változók és struktúrák:

struktúra ext2_inode in;

// abszolút utazási fájlnév

Unsigned char * full_path \u003d "/home/test.file";

Aláírás nélküli char buff1;

Statikus int i \u003d 1;

Int n, i_num, outf, típus;

A fájl abszolút útvonalának első karakterének közvetlen slash (/) kell lennie. Ellenőrizd:

Ha (full_path! \u003d "/") (

Perror ("slash");

Kilépés (-1);

Nyissa meg az eszközfájlt, olvassa el a szuperblocks és a táblázat leírásait:

Indev \u003d nyitott (part_name, o_rdonly);

Ha (INDEV.< 0) {

Perror ("nyitott");

Kilépés (-1);

Read_sb ();

Read_gdt ();

A gyökérkatalógus tartalmát kapjuk:

get_root_dentry ();

Most a buff puffer tartalmazza a gyökérkönyvtár összes rekordját (ha szeretné, megmentheti őket külön fájlba). Most, miután a gyökérkönyvtárban bejegyzések, akkor kap, hogy a tartalmát a test.file fájlt a fenti fájlt olvasási algoritmus. Ebből a célból egy ciklust szervezünk. A ciklus testében elemezzük a fájl abszolút útvonal nevét, kiemelve elemeit - alkönyvtárak (ez egy, otthon) és a keresési fájl neve (teszt.file). Minden egyes elem esetében meghatározzuk az inode sorszámát, figyelembe vesszük ezt az inodót, majd megkapjuk a nulla blokk tartalmát (a be innádban található címblokkok sorozata):

míg (1) (

Memet (buff1.0, sizeof (buff1));

(N \u003d 0; n)< EXT2_NAME_LEN; n++, i++) {

Buff1 [n] \u003d full_path [I];

Ha (((buff1 [n] \u003d\u003d "/") || (buff1 [n] \u003d\u003d "?"))) (

I ++;

Szünet;

buff1 [n] \u003d "?";

A fájl abszolút útvonalának minden eleméhez meghatározzuk az inode szekvencia számát, olvassuk el ezt az inode-ot a memóriában, majd megkapjuk a nulla blokk tartalmát:

I_num \u003d get_i_num (buff1);

Get_inode (i_num, & in);

Read_iblock (& \u200b\u200bin, 0);

A fájlinformációk megjelenítése (név, inódszám, fájlméret és típus):

Printf ("inódszám -% u", i_num);

Printf ("fájlnév -% s", buff1);

Printf ("fájlméret -% u", in.i_size);

A fájltípust az I_MODE mezőszerkezet EXT2_INODE négy bitje határozza meg:

típus \u003d ((in.i_mode & 0xf000) \u003e\u003e 12);

Printf ("Type -% d", típus);

Kapcsoló (típus) (

Case (0x04):

Printf ("(katalógus)");

Szünet;

Case (0x08):

Printf ("(normál fájl)");

Szünet;

Case (0x06):

Printf ("(blokkegység)");

Szünet;

Case (0x02):

Printf ("(szimbolikus eszköz)");

Szünet;

Alapértelmezett:

Printf ("(ismeretlen típus)");

Szünet;

Ellenőrizze a fájl típusát. Ha ez rendszeres fájl - megszakítja a ciklust:

Ha (Type & 0x08) (

A buff puffer az /Home/test.file fájl információs blokkjaiból olvasható. Ezt az információt a fájlhoz írjuk:

Outf \u003d nyitott ("out", o_creat | o_rdwr, 0600);

Írás (outf, buff, sizeof (buff));

Szoros (outf);

Szünet;

Távozunk:

Közel (INDEV);

Vissza 0;

Az EXT2 fájlrendszer logikai szerkezetének figyelembevételével.



Tetszett a cikket? Oszd meg