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úniusFá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:
- 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); - 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. - 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. - 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. - 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 |
Index szám |
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.
- A 0 blokkok csoportjától a táblázat leírásai olvashatók.
- Az asztalleíró táblázatból a 0 blokkcsoport csoportja letöltésre kerül, és az inode csoport címe olvasható.
- A 0 blokkcsoportból 0 elolvassa az inode asztalt.
- 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ó.
- Az A blokkok csoportjától a gyökérkönyvtár rekordjait tartalmazó blokk olvasja.
- A "TEST.FILE" nevű bejegyzés rekordját keresik. Ha ilyen rekord található, a "Test.file" inode sorozat került letöltésre.
- 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).
- 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.
- Az inode táblázat a B blokkcsoportból olvasható.
- A blokkok blokkok beolvasási táblájából B inode, az X pozícióban helyezkedik el.
- 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.
1-6. Lépés - A gyökérkatalógus olvasása:
Az inode szám meghatározásával hozzáférhet a fájl információs blokkjaihoz (7-11. Lépés):
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:
- 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.
- 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.
- 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).
- __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:
- Struct ext2_dir_entry_2 Directory belépési struktúra:
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)
#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.