Kontakty

Súborový systém EXT2. Rovnako ako v prostredí Windows, prístup EXT2, EXT3, File Systems. Logická organizácia EXT2.

Ak máte dva operačné systémy, Windows a Linux sú nainštalované, potom by ste sa pravdepodobne radi obsiahli na častiach voľného operačného systému priamo z Windows bez toho, aby sa obnovil počítač.

Bohužiaľ, podpora Linuxových OS sekcií v systéme Windows nie je k dispozícii. A márne. Zdá sa mi, že to môže byť krásne gesto od spoločnosti Microsoft.

Podstatou problému je, že systém Windows používa systém súborov NTFS a Linux má svoj vlastný spôsob, ako usporiadať súbory, rozšírený súborový systém, najnovšia verzia ktorý má poradové číslo 4.

Linux je skôr priateľský k svojim užívateľom skôr ako jej obchodná sestra: v Linuxe, predvolené je podporované systémom súborov Windows NTFS. Samozrejme, nebudete môcť inštalovať Linux na sekcii NTFS, ale môžete z toho čítať a písať údaje.

EXT2 IFS

EXT2 IFS podporuje Windows NT4.0 / 2000 / XP / 2003 / Vista / 2008 verzie X86 a X64 a umožňuje zobraziť obsah sekcií Linux EXT2 a môže tiež nahrávať na ne. Utility nastaví ovládač systému Ext2fs.sys, ktorý rozširuje funkcie systému Windows a obsahuje plnú podporu pre EXT2 v ňom: Sekcie EXT2 sú priradené písmená diskov a súbory a priečinky sa na nich zobrazujú v dialógových okien všetkých aplikácií, napríklad v Explorer.

EXT2 FSD.

Ext2 FSD - voľný ovládač pre systémy Windows (2K / XP / Vista / 7 verzie X86 a X64). Podobne ako predchádzajúca pomôcka, ktorú je v jeho podstate aj vodičom, obsahuje plnú podporu pre súborový systém EXT2 v systéme Windows.

LTOLS - Nastavte nástroje príkazový riadokPovolenie na čítanie a zaznamenávanie údajov o / z profilov Linuxu EXT2, EXT3 a REISERFS (štandardné systémy súborov Linuxu) z počítača DOS alebo Windows.

Existuje verzia programu s grafickým plášťom (napísaným na Java) - Ltoolsgui, ako aj verzia s grafickým plášťom.

Ext2Read.

Pre dezert ako vždy najchutnejšie.

Ext2Read je nástroj založený na manažérskom súbore, ktorý vám umožňuje zobraziť a zapisovať do sekcií EXT2 / EXT3 / EXT4. Podporuje LVM2 a to odlišuje od iných programov tohto preskúmania, súborového systému EXT4. Vložená podpora rekurzívnych adresárov.

A tu je druhý dezert. Spočiatku bolo povedané, že dobré gesto zo spoločnosti Microsoft by bolo zahrnuté v predvolenom nastavení podpory pre časti Linuxu v systéme Windows.

Gesto sa stále uskutočnilo na 20. výročí Linuxu. Vidieť sami.

To je všetko. Ďakujem za pozornosť. Budem bojovať späť z nechtov. Ich toto jar je veľa sooo. 🙂

14 Jun.

Súborové systémy EXT2, EXT3, XFS, REISERFS, NTFS

Systém súborov - Toto je objednávka určiaca metódu organizovania, skladovania a pomenovania údajov o akýchkoľvek elektronických médiách informácií v počítačoch.

Rôzne súborové systémy je vysvetlené skutočnosťou, že každý bol vynájdený v rámci svojho konkrétneho pracovného balíka. Niektorí veľmi rýchlo zapíšte malé súbory (povedzme, až 1 GB), ale neinštalujú dobre s veľkými súbormi alebo nefungujú s nimi. Niektoré sú dobré z hľadiska bezpečnosti, iných z hľadiska nahrávania / čítania rýchlosti. Každý súborový systém má svoje výhody, mínusy, zraniteľné miesta a charakteristické vlastnosti.

V Linux Najčastejšie používané odrody súborových systémov sú najbežnejšie:

  1. ext2. - dešifrované ako Druhý rozšírený Systém súborov. (Druhý rozšírený súborový systém). Remy Card bol vyvinutý v roku 1993 ako systém súborov Linuxu Kernel od roku 1993-2001 bol hlavným systémom súborov Linux.
    Dôstojnosť je vysoká rýchlosť čítania / zápisu.
    Hlavná nevýhoda systému ext2. Je to, že to nie je žurnál, ale je to práve kvôli tomu, že má veľa výkonu ( Žurnál - Toto je proces protokolovania, ktorý ukladá zoznam zmien, ktoré pomáhajú uložiť integritu súboru systému v rôznych zlyhaniach systému);
  2. ext3 - dešifrované ako Tretí rozšírený súborový systém (Tretia verzia rozšíreného súboru systému). Vyvinutý Stephen Tweedy v roku 2001, zvyknutý tento deň v distribúcii Linux. Objavil sa na svetle ako zlepšená ext2..
    Výhodou tohto systému je, že je žurnalizovaný, to znamená, že jeho spoľahlivosť stúpa v porovnaní s ext2..
    Nevýhodou sa môže nazývať malý menší výkon a čítanie / zápis rýchlosť.
  3. Xf. - vyvinutý spoločnosťou Silikónová grafika. V roku 1993 bol pridaný do jadra Linux Ako súborový systém v roku 2002 v celej rodine distribúcií Linuxna tento moment Používa sa ako "Native" v distribúcii Červený klobúk..
    Výhodou je prítomnosť prihlásenia o metadát, vysoká stabilita práce, distribúcia I / O potoky podľa skupín je udržiavaná, vysoká rýchlosť čítania / zápisu, je možné defragmentáciu aj s namontovanou časťou a môžete zväčšiť veľkosť systém súborov. Najaktuálnejšie pracuje s veľkými súbormi.
    Nevýhodou je, že veľkosť oddielu nie je možné znížiť, spracovanie procesu metaúdajov nie je tak rýchle, funguje to výrazne pomalšie s malými súbormi ako iné typy súborových systémov.
  4. Reiserfs. - vyvinutý spoločnosťou Namesys. Pod vedením Hansa Reizer v roku 2001. Používa len na operačných systémoch Linux. Bol to prvý súborový systém, ktorý bol prijatý v jadre.
    Výhodou tohto súboru systému je, že funguje veľmi rýchlo s malými súbormi (rýchlosť čítania / zápisu je vyššia ako hodnota rodiny ext4.), Podporuje žurnálovanie.
    Nevýhodou je, že jeho vývoj sa výrazne spomalil kvôli zatknutiu hlavy Gansa Riezer a neexistuje žiadne šifrovanie pozadia.
  5. Ntfs - dešifrované ako systém nových technológií (súborový systém nových technológií). V júli 1993 spoločnosťou Corporation Microsoft.. Je široko používaný v rôznych operačných systémoch, ako aj v rôznych médiách informácií.
    Dôstojnosť je vstavaná schopnosť rozlišovať prístup k údajom pre rôznych používateľov, ako aj priradiť obmedzenia maximálny objem Priestor na disku, použitie protokolového systému, vysokorýchlostné čítanie / zápis malé súbory.
    Nevýhodou je, že stabilná práca Nie je potrebné malé ram PC, s veľkými súbormi pracuje pomaly, obmedzuje dĺžku cesty do súborov (32 767 znakov Unicode).

V takom jednoduchom spôsobom sme sa zaoberali "súbormi súborov ext2., ext3, Xf., Reiserfs., Ntfs«!

Ako v prostredie systému Windows Urobte možný prístup k sekcii disku alebo vymeniteľným médiám so súborovými systémami Ext2 / 3/4 ? Ak je napríklad v počítači aj druhý systém Linux. A jej údaje potrebujú pracovať z prostredia Okná. Alebo iný príklad - keď vnútri okien namontovaný virtuálne disky s nainštalovaným virtuálne stroje Systém Linux alebo Android . S ext2 / 3 / 4 Systém Windows nevie, ako pracovať, potrebuje finančné prostriedky tretích strán. Aké sú tieto nástroje? Zvážiť nižšie.

***
TROJE TROJE VYKONÁVAŤ LEN PRE ČÍTAŤ INFORMAČNÉ ZARIADENIA Ext2 / 3/4 . Posledné riešenie umožní a čítať a písať údaje. Všetky finančné prostriedky diskutované nižšie sú zadarmo.

1. DiskInternals Linux Reader Program

Jednoduchý program je primitívny správca súborov, ktorý urobil typ štandardu windows Explorer, s podporou súborových systémov Ext 2/3/4 , Reiser4. , HFS. , UFS2. . V okne programu uvidíme sekcie a zariadenia Linux alebo Android.

Ak chcete kopírovať, vyberte priečinok alebo súbor, kliknite na tlačidlo. "Uložiť".

Potom zadajte cestu kópií.

2. Plugin pre celkový veliteľ DiskTinternals Reader

Populárne milencovia môžu extrahovať údaje Linux alebo Android Vnútri Windows s týmto správca súborov. Ale po inštalácii špeciálneho pluginu v ňom. Jeden z týchto pluginov - vie, ako pripojiť a čítať informačné zariadenia naformátované Ext2 / 3/4 , FAT / EXFAT. , HFS / HFS + , Reiserfs. . Vložíme plugin, rozbaľujeme jeho archív vo vnútri , Potvrďte inštaláciu.

Spustiť (dôležité) V mene administrátora. Prejdite do časti. Stlačte.

Tu bude s inými diskovými a médiami Ext2 / 3/4 .

Údaje sa kopírujú tradičné V spôsobe - tlačidlo F5 na druhý panel.

3. Plugin pre celkový veliteľ EXT4TC

Zjednodušená alternatíva k predchádzajúcemu rozhodnutiu - ext4tc., ešte jeden plugin . Môže pripojiť informácie len na čítanie Ext2 / 3/4 . Stiahnite si plugin, rozbaľte archív do Správcu súborov, spustite inštaláciu.

Spustiť (dôležité) V mene administrátora. Kliknite na tlačidlo. Ísť do.

Ak potrebujete kopírovať údaje konvenčný spôsob S kľúčom F5.

4. EXT2FSD Nositeľ vodiča

Program Ext2fsd. - Je to vodič Ext2 / 3/4 Vypracuje podporu týchto súborových systémov na úrovni operačného systému. S diskami a diskami, naformátovanými v týchto súborových systémoch, môžete pracovať ako s konvenčnými podporovanými. Zariadenia systému Windows Informácie v okne vodiča alebo programy tretích strán. Vodič umožňuje a čítať a písať údaje.

Stiahnite ho skutočná verzia Ext2fsd..

Pri inštalácii aktivujte (ak pre dlhodobú prácu) Tri vybrané Chekboxes:

1 - Autorun vodiča spolu s Windows;
2 - Podpora nahrávania Ext2.;
3 - Podpora formátovania pre Ext3.

Na fáze predfinického aktivujete možnosť spustite okno dispečer vodiča - - so združením informačných zariadení Ext2 / 3/4 Diskové písmená.

V okne, ktoré sa otvorilo Uvidíme dopravcu s už prideleným písmenom. Napríklad v našom prípade dopravca Ext4. Spýta sa prvý bezplatný list. F..

Teraz môžeme pracovať s disku F. V okne vodiča.

Priraďte písmeno novým zariadeniam plug-in Ext2 / 3/4 Môžete použiť kontextové menu zavolané na každé zobrazené okno. zariadenia. Ale práve pri priradení písmena disku sa takéto zariadenie nezobrazí po windows RebootsToto riešenie je len pre jednorazovú reláciu počítača. Ak chcete vytvoriť nové zariadenie Ext2 / 3/4 Neustále viditeľné v prostredí Windows, musíte otvoriť konfiguračné okno s dvojitým kliknutím a nainštalovať permanentné parametre pripojenia. V druhom stĺpci potrebujete:

Pre vymeniteľné médium aktivujete začiarkavacie políčko, označené v obrazovke číslo 1 a zadajte písmeno jednotky;
Pre interné disky a oddiely aktivujte začiarkavacie políčko označené v snímke obrazovky pod číslom 2 a tiež zadajte písmeno disku.

(Druhý rozšírený súborový systém).

· Lesníctvo súborových systémov Linuxu

· Štruktúra diskov v ext2F

·

· Katalógy

· Zariadenia súborov

·

·

· Knižnica EXT2FS

· Časť systému EXT2FS

· Výpočet súkromia

Matfak

Prog.

2. kurz 5. gramy.

Chichirov Andrey

Falomethem Ext2Fs (druhý rozšírený súborový systém).

Expirácie súborových systémov Linuxu

Linuxové premenné boli databázou na základe operatívneho systému MINIX. Bolo by nominované disky medzi dvoma systémami, ako mať nový súborový systém, takže Linus Torvalds nasledoval pododdiel v Linuxovom Minixovom systéme. Kým tento súborový systém bol celkom účinný s relatívne účinným malé množstvo Chyby.

Blezy spojené s systémom MINIX sú však pomerne vysoké, takže začali premýšľať o novom súborovom systéme pre Linux.

Ak chcete ovládať implementáciu nového súboru systému v jedom Linuxu, bol použitý virtuálny súborový systém (VFS). VFS napísal Chris Provenzano, a potom Linus Torvalds to prešlo do integrácie do jedu.

Po inštalácii do jedu VFS, nový systém System FAL FAL (rozšírený súborový systém) bol jednoduchý a pridaný do Linuxu 0,96c VexA. V novom systéme súborov boli odstránené dva značné minixové systémy: jeho maximálny objem by mohol dosiahnuť 2 gigabajty a maximálny názov súboru je 255 znakov. Bol to úspech s Minixovým súborovým systémom, hoci niektoré jednoducho zrejmé sú stále písanie. Neexistoval žiadny čiastkový prístup, modifikácia indexového desippetu a modifikovať bunky zmeny súboru. Tento súborový systém používal súvisiace zoznamy, ktoré sa majú otvoriť s voľnými blokmi a indexovými odjazdmi, čo značne ovplyvnili systém systému: S zoznammi zoznamov sa stal nešpecifikovaným a doutovým, ktorý sa používa na podanie súboru systému.

Rozhodnutie týchto sondy bolo vydanie dvoch nových súborových systémov v januári 1993: XIA a EXT2FS (druhý rozšírený súborový systém). Z väčšej časti bola súborový systém XIA založený na Minix s pridaním niekoľkých nových funkcií. V podstate to bola možnosť cvičenia s dlhými názvami súborov, schválenie diskov väčšieho objemu a napätia buniek zmien súborov. S jemnými kameňmi bola ext2FS založená na exTRF s mnohými vylepšeniami a dodatkami. Mala tiež možnosť pre budúcnosť.

Keď boli tieto dva súborové systémy uvoľnené, boli funkčne pily. Systém XIA bol spoľahlivejší ako ext2F, v dôsledku jeho minimalizácie. Podľa ich pokojnejšej aplikácie boli chyby v systéme EXT2FS nespevnené a pridané veľký počet Nové funkcie a vylepšenia. Aktuálny súbor File ELT2FS je veľmi spoľahlivý a stal sa systémom súborového systému de facto Linux.

Nasledujúca tabuľka poskytuje spoločné informácie o funkčnosti funkčných funkcií, ktoré sú vybavené systémovými systémami.

Minix FS.

Ext fs.

Ext2 fs.

Xia FS.

Maximálny systém súborov

Maximálna dĺžka súboru

Maximálny názov názvu súboru

Pododdiel veže zmien zmien súborov

Schopnosť tempo

Premeniteľná PazMP BLOKA

Ochrana infoment

Ak potrebujete dĺžku názvu súboru Ext 2. Môže sa zvýšiť na 1012.

EXT2FS preniknú niektorým blokom pre užívateľa root. Zvyčajne je to 5% z celkového počtu, čo umožňuje administratívu systému, aby sa zabránilo nedostatku hlasitosti pevný disk Nalejte ho, aby ste ho naplnili používaním užívateľov užívateľov užívateľov.

Štruktúra diskov v ext2F

Výrobcovia pevného disku zvyčajne dodávajú svoje výrobky naformátované na nízkej úrovni. Pokiaľ viem, to znamená, že všetky miesta na disku s pomocou špeciálnych štítkov je rozbité "sektormi", veľkosť 512 bajtov. Takýto disk (alebo disk) musí byť pripravený na použitie v špecifickom operačnom systéme. V MS-DOS alebo Windows sa postup prípravy nazýva formátovanie a v Linuxe - vytvorenie systému súborov. Vytvorenie systému súborov ext2fs. Je to vytvoriť v časti Disková časť konkrétnej logickej štruktúry. Táto štruktúra je postavená nasledovne. Po prvé, oblasť zavádzania je pridelená na disku. Boot oblasť je vytvorená v ľubovoľnom systéme súborov. Na primárnom oddiele obsahuje zavádzací zápis - kódový fragment, ktorý iniciuje proces načítania operačného systému pri spustení. Na iných častiach sa táto oblasť nepoužíva. Všetok zvyšok miesta na disku je rozdelený do blokov. Jednotka môže byť veľkosť od 1, 2 alebo 4 kilobajtov. Blok je adresovaný jednotkou miesta na disku. Výber polohových súborov sa vykonáva celé bloky, takže pri výbere veľkosti bloku musíte kompromitovať. Veľká veľkosť bloku, spravidla znižovať počet odvolaní na disk pri čítaní alebo písaní súboru, ale zvyšuje podiel zriedkavo použitého priestoru, najmä ak existuje veľký počet malých súborov.

Bloky, v jeho oblasti, sú kombinované do skupín blokov. Blokové skupiny v systéme súborov a blokov vo vnútri skupiny sú očíslované postupne, počnúc 1. Prvý blok na disku má číslo 1 a patrí do skupiny s číslom 1. Celkový počet blokov na disku (na disku Časť) je delič zväzku disku vyjadrený v sektoroch. A počet blokových skupín nie je potrebný na rozdelenie počtu blokov, pretože posledná skupina blokov nemusí byť úplná. Začiatok každého bloku blokov má adresu, ktorú možno získať ako ((počet skupín - 1) * (počet blokov v skupine)).

Každá skupina blokov má rovnakú štruktúru. Jeho štruktúra je prezentovaná v nasledujúcej tablete.

Štruktúra skupiny blokov diskového oddielu v ext2fs.

Prvý prvok tejto štruktúry (Superblock) je rovnaký pre všetky skupiny, a všetky ostatné sú pre každú skupinu jednotlivec. Superblock je uložený v prvom bloku každého bloku blokov (s výnimkou skupiny 1, v ktorej sa nachádza prvý blok zavádzací záznam). Superblock Je to východiskový bod súboru. Má veľkosť 1024 bajtov a vždy umiestnené na posunu 1024 bajtov zo začiatku systému súborov. Prítomnosť niekoľkých kópií superbloku je spôsobená extrémnym významom tohto prvku systému. Superblock Duplicates sa používajú pri obnovení súboru systému po zlyhaniach.

Informácie uložené v Superblock sa používajú na usporiadanie prístupu k ostatným údajom na disku. Superblock definuje veľkosť systému súborov, maximálny počet súborov v sekcii, množstvo voľného miesta a obsahuje informácie o tom, kde hľadať neobsadené oblasti. Keď spustíte operačný systém, superblock sa číta do pamäte a všetky zmeny v systéme súborov najprv nájdete displej v kópii superblock umiestneného v OP a sú zaznamenané len periodicky. To vám umožní zvýšiť výkon systému, čo najviac používateľov a procesov neustále aktualizovať súbory. Na druhej strane, keď je superblock vypnutý, musí byť zapísaný na disk, ktorý vám nedovoľuje vypnúť počítač jednoduchým vypnutím výkonu. V opačnom prípade, s ďalším zaťažením, informácie zaznamenané v superbloku nie sú vhodné pre skutočný stav systému súborov.

Superblock má nasledujúcu štruktúru

Názov poľa

Typ

Komentár

s_inodes_count

Drobný

Počet deskriptorov indexov v systéme súborov

s_blocks_count.

Drobný

Počet blokov v súbore

s_r_blocks_count.

Drobný

Počet blokov vyhradených pre Superuser

s_free_blocks_count.

Drobný

Počet voľných blokov

s_free_inodes_count.

Drobný

Počet deskriptorov bezplatného indexu

s_first_data_block

Drobný

Prvý blok, ktorý obsahuje údaje. V závislosti od veľkosti jednotky môže byť toto pole rovné 0 alebo 1.

s_log_block_size.

Drobný

Indikátor veľkosti bloku LOGIC: 0 \u003d 1 kb; 1 \u003d 2 kb; 2 \u003d 4 kb.

s_log_frag_size.

Dlho.

Indikátor veľkosti fragmentu (Zdá sa, že koncepcia fragmentu sa momentálne nepoužíva)

s_blocks_per_group.

Drobný

Počet blokov v každom blokovom bloku

s_frags_per_group.

Drobný

Počet fragmentov v každom blokovom bloku

s_inodes_per_group

Drobný

Počet deskriptorov indexov (inodes) v každom blokovom bloku

s_mtime.

Drobný

Čas, kedy bol súborový systém naposledy namontovaný.

s_wtime.

Drobný

Čas, kedy bol posledný čas zaznamenaný v systéme súborov

s_mnt_count.

USHORT.

Meradlo montážneho systému. Ak tento počítadlo dosiahne hodnotu zadanú v nasledujúcom poli (S_MAX_MNT_COUNT), musí byť systém súborov overiť (toto sa vykoná pri reštartovaní) a počítadlo sa resetuje.

s_max_mnt_count

Krátky

Číslo určujúce, koľkokrát je možné súborový systém namontovať

s_magic

USHORT.

"Magic Number" (0xEf53), čo naznačuje, že súborový systém patrí do typu Ex2FS

s_state.

USHORT.

Vlajky označujúce aktuálny stav systému súborov (či už je čisté (čisté) atď.)

s_errors.

USHORT.

Vlajky, ktoré určujú postupy správy chýb (čo robiť, ak sa nájdu chyby).

s_pad.

USHORT.

Plnenie

s_lastcheck.

Drobný

Čas kontroly posledného systému súborov

s_checkInterval

Drobný

Maximálna doba medzi kontroly súborov

s_creater_os.

Drobný

Zadanie na typ OS, v ktorom je vytvorený súborový systém

s_rev_level.

Drobný

Systém súborov revízie.

s_erved

Drobný

Plnenie až 1024 bajtov

Po superblock sa nachádza opis blokovej skupiny (deskriptory skupiny). Tento opis je pole s nasledujúcou štruktúrou.

Názov poľa

Typ

Účel

bg_block_bitmap

Drobný

Adresa bloku obsahujúceho bloky bitovej karty (bloková bitmap) tejto skupiny

bg_inode_bitmap

Drobný

Adresa bloku obsahujúceho bitmapu indexových deskriptorov (inode bitmap) tejto skupiny

bg_inode_table

Drobný

Adresa bloku obsahujúceho tabuľku deskriptorov indexov (tabuľka inódu) tejto skupiny

bg_free_blocks_count.

USHORT.

Počítadlo počtu voľných blokov v tejto skupine

bg_free_inodes_count

USHORT.

Počet voľných deskriptorov indexov v tejto skupine

bg_used_dirs_count.

USHORT.

Počet deskriptorov indexov v tejto skupine, ktoré sú katalógy

bG_PAD.

USHORT.

Plnenie

bg_Reserved.

Drobný

Plnenie

Veľkosť bloku bloku môže byť vypočítaná ako (SIBOPT_GROUP_BOK_V_EXT2 * NUMBER_GROUPS) / SIVER_BLOCK (V prípade potreby zaoblené).

Informácie, ktoré sú uložené v popise skupiny, sa používajú na nájdenie bitových kariet blokov a deskriptorov indexov, ako aj tabuľku deskriptorov indexov. Nezabudnite, že bloky a bloky blokov sú očíslované z 1.

Blok bitovej mapy (bloková bitmapka) je štruktúra, z ktorých každý znamená, či je príslušný blok priradený. Ak je bit 1, potom je blok zaneprázdnený. Táto karta slúži na vyhľadávanie bezplatných blokov v prípadoch, keď je potrebné zdôrazniť umiestnenie v súbore, bitmap blokov zaberá počet blokov rovných (Number_block_v_group / 8) / SIVERE_BLOCK (V prípade potreby zaoblené).

Bitmap indexových deskriptorov vykonáva podobnú funkciu vzhľadom na tabuľku deskriptorov indexov: ukazuje, ktoré deskriptory sú zaneprázdnení.

Nasledujúca oblasť v štruktúre blokovej štruktúry slúži na uloženie tabuľky deskriptorov indexových súborov. Štruktúra samotného indexového deskriptora sa uvažuje v nasledujúcom pododseku.

Nuž, nakoniec, zostávajúce miesto v skupinovej skupine je pridelené na ukladanie skutočných súborov.

Systém súborovExt. 2 je charakterizovaný:

  • hierarchická štruktúra
  • dohodnuté spracovanie súborov údajov, \\ t
  • dynamické rozšírenie súborov,
  • informačná bezpečnosť v súboroch
  • interpretácia periférnych zariadení (napríklad terminálov a páskových zariadení) ako súborov.

Interný pohľad na súbory

Každý súbor v systéme EXT 2 má jedinečný index. Index obsahuje informácie potrebné na akýkoľvek proces, ktorý sa má odkazovať na súbor. Procesy sa týkajú súborov pomocou jasne definovaného sady systémových hovorov a identifikáciu súboru súboru reťazca, ktorý pôsobí ako názov kompozitného súboru. Každý kompozitný názov určite určuje súbor, takže systém Kernel konvertuje tento názov do indexu súboru. Index obsahuje tabuľku adries umiestnenie informácií o súbore na disku. Keďže každý blok na disku je adresovaný na jeho číslo, táto tabuľka ukladá sadu čísiel blokových blokov. Aby sa zvýšila flexibilita, jadro pripojí k súboru jeden jedným blokom, čo umožňuje informácie o súbore, ktoré majú byť roztrúsené v celom systéme súborov. Tento systém umiestnenia však komplikuje úlohu vyhľadávania údajov. Tabuľka adries obsahuje zoznam blokových čísel obsahujúcich súbor vo vlastníctve súboru, avšak jednoduché výpočty ukazujú, že lineárny zoznam súborov súborov v indexe je ťažké ovládať. Aby ste mali malú indexovú štruktúru pracovať s veľkými súbormi, tabuľka adresy diskových blokov sú uvedené do riadku so štruktúrou uvedenou na obrázku 1

Väčšina súborov v systéme EXT 2 má veľkosť, ktorá nepresahuje 10 kB a dokonca 1 KB! Vzhľadom k tomu, 10 kB súboru sa nachádza v priamom adresovacom blokoch, do z väčšej časti dát uložených v súboroch, prístup je možné vykonať v jednom odvolaní na disk. Preto na rozdiel od príťažlivosti veľké súboryPráca so štandardnými súbormi veľkosti prebieha rýchlo.

Indexové deskriptory súborov

Každý súbor na disku zodpovedá jednej a iba jednej rukoväti indexového súboru, ktorý je identifikovaný svojimi poradovými číslom - indexom súboru. To znamená, že počet súborov, ktoré možno vytvoriť v systéme súborov, je obmedzený počtom deskriptorov indexov, ktorý je jednoducho definovaný pri vytváraní súboru systému, alebo sa vypočíta na základe fyzického objemu disku. Indian Descpports existujú na disku v statickej forme a jadro ich číta v pamäti, než sa s nimi začne pracovať.

Rukoväť indexového súboru má nasledujúcu štruktúru:

Názov poľa

Typ

Popis

I_mode.

USHORT.

Typ a prístupové práva k tomuto súboru.

I_uid

USHORT.

Identifikátor vlastníka súboru (vlastník UID).

I_size.

Drobný

Veľkosť súboru v bajtoch.

I_atime.

Drobný

Čas posledného prístupu k súboru (prístup prístup).

I_CTIME.

Drobný

Čas tvorby súborov.

I_mtime.

Drobný

Čas poslednej úpravy súboru.

I_dtime

Drobný

Čas vymazania súboru.

I_gid

USHORT.

Identifikátor skupiny (GID).

I_links_count

USHORT.

Počítadlo vzťahov (počet odkazov).

I_blocks.

Drobný

Počet blokov obsadených súborom.

I_flags.

Drobný

File Flags File Flags)

I_RERVED1

Drobný

Vyhradené pre OS.

I_block

Drobný

Ukazovatele na bloky, v ktorých sa zaznamenávajú údaje súborov (príklad priameho a nepriameho adresovania na obr. 1)

I_version.

Drobný

Verzia súboru (pre nfs)

I_file_acl

Drobný

Súbor ACL.

I_dir_acl

Drobný

ACL katalóg

I_faddr.

Drobný

Adresa fragmentu (adresa fragmentu)

I_frag

Uchar.

Číslo fragmentu (číslo fragmentu)

I_fsize.

Uchar.

Veľkosť fragmentu (veľkosť fragmentu)

I_PAD1

USHORT.

Plnenie

I_ervered2.

Drobný

Rezervovaný

Typové pole a prístupové práva k súboru je dvojbajtové slovo, ktorého každý kúsok, ktorý slúži ako vlajka, ktorá označuje pomer súboru na konkrétny typ alebo inštaláciu jedného konkrétneho práva na súbor.

Identifikátor

Hodnota

Vlajka menovania (polia)

S_IFMT.

F000.

Maska typu súboru

S_IFSOCK

A000.

Doménové hniezdo (zásuvka)

S_IFLNK.

C000

S_IFREG.

8000

Normálny (pravidelný) súbor

S_IFBLK.

6000

Blokovo orientované zariadenie

S_IFDIR.

4000

Katalóg

S_IFCHR

2000

Byte-orientované (symbolické) zariadenie

S_IFIFO.

1000

Pomenovaný kanál (FIFO)

S_isuid

0800

SUID - BIT Majiteľ zmeny

S_isgid.

0400

SGID - Skupina Shift Bity

S_isvtx

0200

Ochrana úlohy Bit (Sticky Bit)

S_irwxu.

01c0.

Maska vlastníka vlastníka súboru

S_irusr.

0100

Právo čítať

S_iwusr.

0080

Právo nahrávať

S_IXUSR.

0040

Právo na vykonanie

S_irwxg.

0038

Group Mass Group

S_irgr.

0020

Právo čítať

S_iwgrp.

0010

Právo nahrávať

S_IXGRP.

0008

Právo na vykonanie

S_irwxo.

0007

Maska práv iných používateľov

S_iroth

0004

Právo čítať

S_iwoth

0002

Právo nahrávať

S_ixinoth

0001

Právo na vykonanie

Medzi deskriptormi indexov existuje niekoľko deskriptorov, ktoré sú vyhradené na špeciálne účely a zohrávajú osobitnú úlohu v súbore. Toto sú nasledujúce deskriptory

Identifikátor

Hodnota

Popis

Ext2_bad_ino.

Indexový deskriptor, v ktorom sú uvedené adresy chybných blokov na disku (zlé bloky blokov)

Ext2_root_ino

File System System Root Directory Index Deskriptor (root inode)

Ext2_acl_idx_ino.

ACL INODE

Ext2_acl_data_ino.

ACL INODE

Ext2_boot_loeder_ino.

Index indexov nakladač (zavádzací nakladač)

Ext2_undel_dir_ino.

Undelete Directory Inode.

Ext2_first_ino.

Prvý non-pro-index deskriptor

Najdôležitejšou rukoväťou v tomto zozname je deskriptor root adresár. Tento deskriptor poukazuje na koreňový adresár, ktorý, rovnako ako všetky adresáre, pozostáva zo záznamov nasledujúcej štruktúry:

Názov poľa

Typ

Popis

Vrodený

Drobný

Číslo deskriptora súboru (index)

rec_len.

USHORT.

Dĺžka tohto záznamu

name_len.

USHORT.

Dĺžka názvu súboru

Názov.

Char.

Názov súboru

Samostatný záznam v katalógu nemôže prekročiť blokovú hranicu (to znamená, že by mala byť umiestnená úplne vnútri jedného bloku). Preto, ak by nasledujúci záznam nehodí úplne v tomto bloku, je prenesený do nasledujúceho bloku a predchádzajúci záznam pokračuje takým spôsobom, ktorý vyplní blok do konca.

Obrázok 1 bloky priameho a nepriameho adresovania v indexe

Obrázok 2 Objem súboru v bajtoch pri veľkosti bloku 1 kB

Obrázok 3. Príklad indexu disku

Obrázok 3 zobrazuje index disku určitého súboru. Tento index patrí do obvyklého súboru, ktorého majiteľ je "MJB" a veľkosť, ktorá je 6030 bajtov. Systém umožňuje užívateľovi "MJB" čítať, zapisovať a vykonať súbor; Členovia skupiny "OS" a všetci ostatní používatelia sú povolené len na čítanie alebo vykonanie súboru, ale nie na zaznamenávanie údajov do nej. Naposledy bol súbor čítaný 23. októbra 1984 o 13:45, záznam bol posledný čas bol urobený 22. októbra 1984 o 10:30. Index zmenil posledný čas 23. októbra 1984 v 13:30, hoci v tomto čase neboli zaznamenané žiadne informácie. Kernel kóduje všetky vyššie uvedené údaje v indexe. Venujte pozornosť rozdielu v zázname obsahu indexu a obsahu súboru. Obsah zmien súboru len vtedy, keď je súbor zaznamenaný. Obsah indexu sa mení pri zmene obsahu súboru a pri zmene vlastníka súboru, prístupových práv a ukazovateľov. Zmena obsahu súboru automaticky spôsobí korekciu indexu, ale korekcia indexu neznamená zmenu obsahu súboru.

Katalógy

Katalógy sú súbory, z ktorých je postavená hierarchická štruktúra súboru systému; Hrajú dôležitú úlohu pri zapnutí názvu súboru na číslo indexu. Adresár je súbor obsahujúci, ktorý je súbor záznamov pozostávajúcich z indexového čísla a názvu súboru zahrnuté v adresári. Kompozitný názov je reťazec symbolov, dokončených prázdnym symbolom a zdieľaným zdieľaným riadkom ("/") do niekoľkých komponentov. Každý komponent, okrem toho musí byť názov adresára, ale posledný komponent môže byť súbor, ktorý nie je adresár. V verzii systému UNIX je dĺžka každého komponentu obmedzená na 14 znakov; Tak, spolu s 2 bajciami, pridelenými na indexové číslo, veľkosť nahrávania adresára je 16 bajtov.

Offset v Bytes
Vnútorný katalóg

Indexové číslo
(2 bajty)

názovspis

1798

init

1276

fSCK.

clri

1268

mOTD.

1799

držať

mknodu.

2114

passwd.

1717

podnecovať

1851

kontrolný zoznam.

fsdbld

konfigurácia

1432

getty.

havárie.

mkfs.

Obrázok 4 Format katalógu / atď

Obrázok 4 zobrazuje formát adresára "ETC". Každý adresár má súbory, ako sú uvedené názvy a dva body ("." A "..") a indexové čísla, ktoré zodpovedajú číslam indexu tento katalóg a materský katalóg. Indexové číslo pre súbor ". Adresár "/ ETC" má adresu s posunutím 0 a hodnotu 83. Indexové číslo pre súbor ".." má adresu s posunutím 16 od začiatku adresára a hodnoty 2. Záznamy v adresári môže byť prázdne a indexové číslo je 0. Napríklad nahrávanie s adresou 224 v adresári "/ etc" je prázdny, napriek tomu, že kedysi obsahoval vstupný bod pre súbor s názvom "Crash". Program MKFS inicializuje súborový systém takým spôsobom, ktorý indexové čísla pre súbory ". A ".." Koreňový adresár sa zhoduje s číslom koreňového indexu systému.

Kernel ukladá údaje v adresári rovnakým spôsobom, ako to robí v normálnom type súboru pomocou indexovej štruktúry a blokov s úrovňami priamej a nepriamej adresovania. Procesy môžu čítať údaje z adresárov rovnakým spôsobom, ako si prečítajú pravidelné súbory, ale exkluzívny záznam priamo do adresára je vyhradený jadrom, ktorý zaisťuje správnosť adresárovej štruktúry. Katalógové prístupové práva majú nasledujúci význam: Právo čítania dáva spracovať možnosť čítať údaje z katalógu; Právo nahrávania umožňuje proces vytvárať nové položky v adresári alebo vymazať staré (pomocou operácií CURT, MKNOD, LINK AND INPIS), v dôsledku čoho sa zmení obsah katalógu; Právo na vykonanie umožňuje proces vyhľadávania v adresári podľa názvu súboru (pretože "Vykonanie" Katalóg je bezvýznamný).

Keď akýkoľvek program používa cestu k súboru, zodpovedajúca menovitá menovka indexového odDSP obsahuje v katalógoch. Po použití názvu súboru v indexovom opise je tento desippot umiestnený v pamäti a potom sa používa v nasledujúcej ZAP.

Koncepcia súborových systémov UNIX obsahuje koncept referencie. Jeden index odskrutkovač môže byť spojený s viacerými názvami súborov. Deskpott pomáha poľa, Hinner, s ktorým súbor spája. Pridanie odkazu je vytvorenie záznamu adresára, kde index despodipket číslo indikuje diskpot a zvýšenie referenčného počítadla v odkaze. Mali by ste vymazať odkazy jedu znižovať referenčný pult a vymažte desqpot, ak sa tento meradlo stane null.

Takéto odkazy sa nazývajú tuhé a môžu sa používať len v jednom systéme súborov (nemôžete vytvoriť odkaz na súborový systém z flipového systému). Okrem toho, tuhé spojenie môže určiť iba súbor (na sústredný odkaz na adresár môže byť použitý na zameranie do systému súborov).

Vo väčšine systémov UNIX je ďalší typ odkazu. Tieto odkazy, ktoré podporujú iba názov súboru, sa nazývajú symbolické. Používate chudobnejší z takýchto odkazov, pričom používate cestu k súboru k indexu odskrutkovacej doske, jed je jed názov odkazu na softvér depite (tj v mene cieľového súboru) a re-internetových cestách Cesta k súboru. Vzhľadom k tomu, symbolický odkaz neindikuje index desqpot, je možné vytvoriť odkazy na súbory, ktoré sa nachádzajú v dezinfektnom systéme súborov. Tieto odkazy môžu označiť súbor akéhokoľvek typu, dokonca aj na neexistujúcej. Symbolické odkazy sú tak použité, pretože nemajú tie požiare, ktoré majú tvrdý odkaz. Avšak, zaberajú určitý zväzok na disku, kde sú povolené index odskrutkovacie a dátové bloky. Ich použitie môže byť použité na spôsoby prepustenia, ktoré používajú cestu k súboru k indexu odskrutkovacej dosky, čo je spôsobené tým, že symbolizácia symbolických odkazov jedu by mali znovu zadať cestu k súboru.

Zariadenia súborov

V operačných systémoch podobných Unixu sa prístup k zariadeniam vykonáva prostredníctvom špeciálnych súborov. Tento súbor sa neuskutoční v systéme súborov. Je to len prístupový bod na jednotku zariadenia.

Existujú dva typy súborov zariadení: symbolický a blok. Pri použití symbolického typu je možné výmenu dát so zariadením len v režime znakov, zatiaľ čo súbory typu bloku vám umožňujú vymieňať iba bloky pomocou vyrovnávacej pamäte. Pri vyžiadaní požiadavky I / O na súbor zariadenia je tento dotaz presmerovaný na vodiča príslušného zariadenia. Každý podobný súbor zodpovedá seniorovému číslu, ktoré definuje typ zariadenia a mladšiu miestnosť, ktorá určuje samotné zariadenie.

Ďalšie funkcie Ext2Fs.

Okrem jednotných funkcií UNIX, EXT2FS sú niektoré ďalšie funkcie, ktoré zvyčajne nie sú predložené systémovými systémami UNIX.

Súbor ATPIBUTS vám umožňujú zmeniť stlačenie polárne pomocou súborov so súbormi. Môžete nainštalovať do súboru alebo adresára. V druhom prípade súbory vytvorené v tomto adresári zdedia tieto zariadenia.

V priebehu montáže systému môžu byť nainštalované niektoré konkrétne funkcie spojené so súbormi antiquoty. Možnosť pripojenia Umožňuje administrácii vybrať funkcie vytvárania súborov. V súborovom systéme s funkciami BSD sú súbory vytvorené s rovnakým identifikátorom GPPP, ako aj katalógu bytového katalógu. Vlastnosti System V je trochu komplikovanejší. Ak je nastavený bitový katalóg súborov SETGID, súbory vytvorené identifikátorom GPP tohto adresára sú prijaté a podadresáre zdedia identifikovať identifikáciu GPPP a bity STGID. V tomto prípade sú súbory a katalógy vytvorené so základným identifikátorom GPPP spôsobujúceho PPCC.

Systém ExTR2FS môže používať synchrónnu modifikáciu dát podobnú systému BSD. Možnosť pripojenia Umožňuje administráciu špecifikovať všetky údaje (indexové descplists, bity, nepriame bloky a adresárové bloky) zaznamenané na DC synchrónne v ich modifikáciách. To možno použiť na dosiahnutie vysokých informačných záznamov, ale tiež berie do zhoršenia kňazstva. V skutočnosti sa táto funkcia zvyčajne nepoužíva, pretože zhoršenie proliferácie, môže sa použiť na používateľov používateľov používateľov, ktoré nie sú označené pomocou systému súborov.

EXT2FS vám umožňuje vytvoriť súborový systém na výber logického bloku. Môže to byť Pazmer 1024, 2048 alebo 4096 bajtov. Použitie veľkých objemovitých blokov pre I / O optiace (ako množstvo saje na disk klesá), a preto do menšej hlavičky hlavy. S druhou stranou bloku, použitie veľkých blokov blokov na číselný dôchodok. Typicky sa posledný blok súboru používa, nie je úplne pre oblasť informácií, preto sa zvyšuje zvýšenie objemu bloku, môže sa zvýšiť objem hrotového kotúča.

EXT2FS vám umožňuje používať OsKizované symbolické odkazy. Použitím takýchto odkazov sa nepoužívajú bloky blokových dátových blokov. Názov cieľového súboru nie je v dátovom bloku, ale v samotnom indexe. Takáto konštrukcia vám umožňuje udržiavať diskový punč a odpariť škótko symbolických odkazov. Samozrejme, je tu potrubia, stožiare pod deptikom, flaky, takže nie každý odkaz môže byť upísaný ako hersal. Maximálna dĺžka názvu súboru na sekundárnom spojení má 60 znakov. V blízkej budúcnosti sa plánuje pozastaviť tento systém pre malé súbory hlasitosti.

EXT2FS nasleduje stavový systém. Chudák používa samostatné pole v suspenzii, aby sa uvádza stav súboru systému. Ak je súborový systém namontovaný v čítaní / zápise, jeho stav je inštalovaný ako "nie je čistý". Ak je opäť demontovať alebo opäť namontovaný v užívaní len na čítanie, potom je jeho stav nainštalovaný v "Čistenie". Keď systém systému a súborový systém prebieha, tieto informácie sa používajú na prevádzku potreby súborového systému. Chudobní tiež umiestni niektoré zlomyseľné chyby v tejto oblasti. Otvorený nedodržovací jed, súborový systém je označený ako "chybné". Simulátor systému súborov bude otestovať tieto informácie pre systém systému, aj keď je jej stav vlastne "čistý".

Dlhodobé ignorovanie testovania súborového systému niekedy môže byť niekedy s určitou dostatočnosťou, takže EXT2FS obsahuje dve metódy regulačného systému. Spearlock je podporovaný počítačovým pultom. Toto počítadlo zvyšuje každý Pa, keď je systém namontovaný v funkcii čítania / zápisu. Ak jeho hodnota dosiahne maximum (je tiež hudded v suspenzii), potom testovanie súborového systému sa spustí pokladni, aj keď je jeho stav "čistý". Ten, prvýkrát a maximálny inteligentný medzi prvým je tiež hudded v suspenzii. Keď sa dosiahne maximálna inteligencia medzi ružovými, stavový systém je ignorovaný a kontrolný bod sa spustí.

Systém ext2FS pomáha svojmu súčasnosť. TUNE2FS BRAMMA je možné použiť na zmenu:

  • akcia PRI Chyba Rozbalenie. Otvorený s nedodržajúcim jedom, súborový systém je označený ako "chybné" a jeden z nasledujúcich krokov možno vykonať: implementácia vykonania, aktualizáciu súboru systému v radosti len s cieľom vyhnúť sa jeho Spojka, stránkovací systém systému pre súborový systém.
  • maximálna montážna hodnota.
  • maximálna inteligencia medzi kolíkmi.
  • počet logických blokov, poháňaní užívateľovi root.

Možnosti určené namontovaným možno tiež použiť na zmenu činností povinnosti chybového jedu.

Používanie ATPIBUT Umožňuje používateľom odstrániť sektné súbory. Podobný súbor môžete odstrániť, v blokoch, ktoré sa používajú na používanie tohto súboru, zaznamenávajú náhodné informácie. Toto bude povýšené, aby ste získali prístup k prvotriednemu tohto súboru v autorite a pomocník disku.

Systém ext2FS nedávno pridal nové typy súborov z 4.4 BSD súborového systému. Putting type súborov možno použiť len na čítanie: Nikto ich nesmie zmeniť ani ich odstrániť. Toto môže byť použité na ochranu dôležitých konfiguračných súborov. Typ súboru súborov, to sú súbory, ktoré sa dajú zmeniť na záznamové funkcie a údaje môžu byť pridané až do konca tohto súboru. Tento typ súborov môže byť tiež odstránený alebo trvalý. Môžu byť použité ako súbory Zeper, ktoré sa môžu zvýšiť iba v objeme.

Optimalizácia prijímania

Systém EXT2FS je uľahčený mnohými funkciami, ktoré optimalizujú svoj profil, čo vedie k zvýšeniu rozsahu výmeny informácií o čítaní a písaní súborov.

EXT2FS aktívne používa nárazník na disk. Keď sa musí jednotka prečítať, jed sa zobrazí i / o opt / výstup nepriehľadné. Chudobnejšie sa teda uistite, že ďalší blok, ktorý by sa mal čítať, je už na starosti nárazník na disk. Takéto opporcie sa zvyčajne vykonávajú pomocou sériových čítacích súborov.

Systém exTR2FS tiež poskytuje veľké množstvo optimalizácií informácií. Bloky sa používajú na kombinovanie zodpovedajúcich indexových despilcov a dátových blokov. Poison sa vždy snaží stlačiť dátové bloky jedného súboru v jednom GPUP, ako aj jeho desqpot. Používa sa na zníženie konania hlavy hlavičky a description a príslušné dátové bloky zodpovedajúce.

Tieto dátové záznamy v súbore, EXT2FS posilnia až 8 susedných blokov pomocou nového bloku. Takýto spôsob umožňuje dosiahnuť silu systému systému. To tiež umožňuje používať susedné bloky pre súbory, ktoré vyhovujú ich následnému čítaniu.

Knižnica EXT2FS.

Ak chcete využívať používanie škodcov EXT2FS a kontrolu kontaktných stórov tohto súboru systému, LibExt2FS knižnica bola jednoduchá. Táto knižnica poskytuje funkcie, ktoré môžu byť použité na prevádzku a zmenu týchto súborových systémov EXT2 odkazom na fyzicky elimináciu.

Väčšina pomôcky EXT2FS (MKE2FS, E2FSCK, Tune2fs, Dumple2fs, Debugfs a DP.) Použite túto knižnicu. Tým sa dôrazne dopĺňa úpravu týchto nástrojov, ako akékoľvek zmeny na zavedenie pridané vlastnosti Systém súborov ELT2FS musí byť stlačený iba v knižnici EXT2FS.

Keďže internetová knižnica EXT2FS je dostatočne shiyky a pomocná, môže byť ľahko napísaná svojou pomocou, ktorá bude ľahko napísaná, na ktorej je možné použiť súborový systém. Použiť, knižnica EXT2FS použila 4,4 BSD Dump a Recovery niektorých nástrojov. Bol zabitý, aby sa veľmi malé zmeny prispôsobili tieto použitia Linuxu (bolo potrebné nahradiť niekoľko funkcií, ktoré komunikujú so systémom súborov na volanie do knižnice EXT2FS).

Knižnica ETR2FS obsahuje prístup k operáciám niekoľkých tried. Trieda puberty je nepriehľadná so systémom súborov. Každý šampón môže otvoriť alebo posunúť súborový systém, čítať alebo písať bitový blok, vytvoriť nový súborový systém na disku. Existujú aj funkcie zoznamu zlých blokov blokových blokov.

Druhá trieda nepriehľadných bude používať katalógy. Propamma pomocou knižnice EXT2FS môže vytvoriť alebo skašovať adresár, ako aj pridať alebo odstrániť záznamy v adresári. Existujú funkcie ako pohonné látky na ceste kódu kódu k súboru a dráhe dráhy k súboru podľa zadaného odloženia.

Posledná trieda nepriehľadných otvorov s indexom descilipts. Je možné si prečítať tabuľku descpport, počítať alebo zapísať dole descpotp, pp Zobraziť všetky bloky zadaného desqpot. Je možné pokračovať vo funkciách formácie a uvoľnenia blokov a desíkov.

Časť systému EXT2FS

Pre systém ELT2FS sa použil výkonné použitie komplementárneho použitia. Tieto použitia sa používajú na vytvorenie, modifikáciu a Coppe akýchkoľvek nezrovnalostí v súborových systémoch EXT2FS. Program MKE2FS sa používa na inštaláciu diskovej pasty, ktorá poskytuje prázdny systém súborov ELT2FS.

Aplikácia Tune2fs môže byť použitá pre silu súborového systému Papalmet .cc, ktorý sa môže zmeniť, aby sa zmenil na nové chyby, maximálny počet montážnych systémov, maximálne určené medzi postupmi systému a počet logických blokov poháňaných pre užívateľ root.

Možno, že najinteligentnejšie použitie je zjednodušený súborový systém. E2FSCK Postavil sa na dokončenie nezrovnalostí v súbore po inspekcii prijatia celého systému. Počiatočná verzia E2FSCK Propamma je založená na Linus Torvald FSCK FRCK pre systém súborov MINIX. Avšak, súčasné verzie transmandentného obdobia pomocou knižnice EXT2FS a je rýchlejšie a môžu byť vykonané veľká kvantita Chyby v systéme používania, podľa rámca s papalóznou VexA.

Hanba E2FSCK bola študovaná v takom čase, aby bola vykonaná s maximálnou rýchlosťou. Vzhľadom k tomu, pricks súboru systému sú povolaní na hlavnú pásku, mali by ste optimalizovať blikajúce algoritmy E2FSCK, že postup pre súborový systém by sa mal používať oveľa jednoduchšie. A navyše by sa rokates indexových priložených a adresárov uskutočnilo podľa čísla bloku, aby sa znížilo hlavy disku.

Pri porušovaní E2FSCK je súborový systém zostrihovaný všetkými indexovými despipientmi a jeden desciputs ako samostatný prvok systému. Takáto príležitosť, tieto testovanie nehodí objekty systému súborov. Jedným z cieľov takýchto kolíkov je vstupom existencie typu typu súboru, ako aj korešpondencie všetkých blokov v descpeppet s blokmi s existujúcimi číslami. V zapínaní sú bity v prevádzke, čo indikuje použitie blokov a oddýchaní.

Ak E2FSCK nájde dátové bloky, ktorých nomáre sa zbierajú vo viac ako jednom odpustku.

Najbližšie podpísanie zaberá väčšinu všetkých, pretože všetky indexové despilpity musia byť čítané do pamäte a neoddeliteľnú. Aby sa znížili vstupné / výstupné opaky v nasledujúcich telesách, všetky potrebné informačné hnutie zostáva v nárazníku. Leporným čítaním tejto schémy je vyhľadávanie všetkých blokov adresára súborového systému. Ak chcete získať tieto informácie, sekvencie všetkých adresárov súborov sú čítané v druhom výlete.

V druhom obložení sa adresárne píšajú ako jednotlivé prvky súboru systému. Blok každého adresára je oddelený bez odkazu na adresárové bloky DPUCH. To umožňuje E2FSCK odpojiť všetky bloky adresárov na počte blokov a kontaktujte ich v čase behu, taký čas znižujúci prístup k disku. Katalógové bloky sa testujú na korešpondenciu reality ich záznamov a že prispievajú k odkazom na odkopy s existujúcim číslom (ako bolo zapnuté v zlomení).

Pre adresárový blok v každom pláne adresára bude existovať existencia záznamov. ". a ".." a že číslo descppet je na nahrávanie. " Zodpovedá aktuálnemu adresáru. (Soature Number pre nahrávanie ".." netestuje, kým sa nezmení.)

Pri vykonávaní druhého fódu sa info pohyb zodpovedajúci katalógu apartmánu uloží do vyrovnávacej pamäte.

Treba poznamenať, že do konca druhého pchoda budú zakryté takmer všetky vstupné / výstupné časti s disku. Všetky info hnutie, ktoré sa snaží o tisíce štvrtého a piateho výletu, je povýšený v pamäti, avšak zostávajúce jamy PPPSOP a trvať menej ako 5-10% z celkového výkonu E2FSCK.

Katalógové spojenia sú zahrnuté v Trinkete. E2FSCK robí cesty každého adresára piť do postele, pomocou informácií získaných druhým fóde. Tu je záznam ".." pre každý katalóg. Všetky katalógy identifikované po prvom a nemajú pripojenia sú umiestnené v adresári / Lost + nájdete.

Vo štvrtách, výletoch E2FSCK, referenčné počítadlá pre každý odpustky indexu obsahuje PPPlaying všetky descpports a referenčné referenčné metre (tieto informácie sa uchovávajú z krížového nudného) s vnútornými meradlami, ktoré boli vypočítané hodnoty sub-sekundy a kmene. Všetky zlyhané súbory s nulovým referenčným meračom sú umiestnené aj v adresári nájdených / Lost +.

A nakoniec, v piatom, E2FSCK je korešpondencia všetkých informácií o informáciách v systéme súborov. Tu sú kúsky blokov a descplistov, ktoré boli získané v prvých kusoch, s platnými hodnotami av prípade potreby dochádza k informáciám o disku na disku vhodné.

Použite užitočné používanie debugger systému súborov. Debugfs je výkonná márnosť, ktorá vám umožní zostupovať a nastaviť stav systému súborov. V podstate je to interaktívny internet pre knižnicu EXT2FS, to znamená, že typické príkazy na zavolanie funkcií knižnice.

Debugfs možno použiť na prevádzku interného systému súborového systému, takže systém obnovy alebo vytváranie podmienených testov pre E2FSCK. Bohužiaľ, tento Jammy môže vyhrať súborový systém, ak neviete, ako ho používať. S touto silou stačí zničiť súborový systém. Preto Debugfs zmení súborový systém v predvolenej pozícii na čítanie. Ak chcete získať prístup k obálke čítania / zápisu, mali by ste určiť možnosť -W.

Výpočet súkromia

Výsledky testovania Bonnie sú viditeľné z nasledujúcej tabuľky:

Nahrávanie cukru (CB / S)

Patch Vstup (CB / S)

Výkon (KB / S)

Čítanie cukru (CB / S)

Čítanie kusov (KB / S)

BSD Async.

BSD Sync.

Ext2 fs.

1237

1033

Xia FS.

Výsledky sú dostatočne oboznámené s blokom / výstupom: systém ELT2FS vyhráva na referenčnom systéme. Je to spôsobené optimalizáciou zahrnutou v aproximácii PA. Záznam je tiež dostatočne rýchly, podľa skutočnosti, že je štebáčik v Gupione Purem. Vysoká rýchlosť čítania súvisí so skutočnosťou, že bloky boli vytiahnuté do súboru, takže hlavičkové hlavy sa nevykonávajú medzi dvoma údajmi a optimalizácia prvého čítania plne bude plne.

S na druhú stranu strany, systém FreeBSD obsahuje symbolický vstup / výstup referenčnej hodnoty vyššie. Možno je to spôsobené skutočnosťou, že FreeBSD a Linux používajú vhodný s knižnicami zodpovedajúcimi knižniciam C. Okrem toho, v FreeBSD, optimalizovanejšia symbolická čítacia knižnica, a preto je tu o niečo lepšie.

Skúšobné výsledky Andrew.

Výsledky testov Andrew sú viditeľné z nasledujúcej tabuľky:

Pápež 1

Inštalatérstvo 2 Kopírovanie

Inštalatérstvo 3 Stav

Inštalatérstvo 4 bapti

Inštalatér 5 kompilácie

2203

7391

6319

17466

75314

BSD Sync.

2330

7732

6317

17499

75681

Ext2 fs.

Výsledky minulých dvoch jamiek ukazujú, že Linux vyhrá asynchonálnu výmenu údajov. Vytvárate adresáre a súbory, systém BSD synchrónne zaznamenáva descpports a záznamy o adresároch. Tam je hovor, že Asynchpone subdeeping pre FreeBSD ešte nebol plne implementovaný.

Na Tribute na hodnotu Linuxu a BSD sú veľmi podobné. Zatiaľ čo keď je BSD popísané vyššie, pridá sa k tomuto typu pridávanie nebeccoty pre názvy súborov do systému Linux VFS.

V piatej a piatej PPODS bude Linux rýchlo freebsd, hlavne na použitie kombinovaného použitia kytice. Objem buffer môže mať viac pamäte a prevziať viac pamäte ako v FreeBSD, kde sa používa pevný objem. Výsledky odpovedí EXT2F a XIA FS ukazujú, že optimalizácia, s ktorou sa vyskytne v EXT2FS, sa skutočne používa: páchateľ týchto systémov je približne 5-10%.

Záver

Súborový systém EXT2 je najviac krátko používaný v užívateľoch Linuxu. Poskytuje štandardné funkcie UNIX a ďalšie funkcie. Okrem toho, vďaka optimalizácii zahrnutej v jedine, ukazuje vynikajúce výsledky reakcie.

Systém ExTR2FS obsahuje funkcie na pridanie nových funkcií. Niektorí ľudia sa postarajú o používanie aktuálneho systému súborov: zoznam prístupovej kontroly, zodpovedajúcej polohe POSIX vzdialené súbory a kompresia súborov v časti s dlhým meradlom.

Po prvé, systém ext2fs bol integrovaný do jedu Linuxu a aktívne sa pohybuje na prevádzke operačných systémov. EXT2FS je tiež dôležitou súčasťou operačného systému Masix, ktorý sa v súčasnosti študuje jedným z putov.

Vladimir Miskov

Architektúra systému EXT2

Článok sa zaoberá logickou štruktúrou súboru súboru EXT2 systému operačného systému Linux.

Základné komponenty systému súborov EXT2

Rovnako ako v akomkoľvek systéme súborov UNIX, môžu byť uvedené nasledujúce komponenty ako súčasť súborového systému EXT2:

  • bloky a bloky blokov;
  • informačný uzol;
  • superblock.

Bloky a bloky blokov

Celý priestor na disk diskov je rozdelený na pevné veľkostné bloky, viacero sektorových veľkostí - 1024, 2048 a 4096 bajtov. Veľkosť bloku je indikovaná pri vytváraní súboru systému na pevnom disku. Menšia veľkosť bloku šetrí priestor na pevnom disku, ale aj limity maximálna veľkosť systém súborov. Všetky bloky majú poradové čísla. Aby sa znížila fragmentácia a počet pohybu hlavy pevného disku, pri čítaní veľkých dátových polí, bloky sú kombinované do skupín.

Informačný uzol

Základným konceptom súboru systému je informačný uzol, informačný uzol alebo inode. Toto je špeciálna štruktúra, ktorá obsahuje informácie o atribútoch a polohe fyzického súboru. Atribúty súborov sú jeho typ (normálny súbor, adresár atď.), Prístupové práva, identifikátor majiteľa, veľkosť, stvorenie času. Informácie o fyzickej polohe je postupnosť absolútnych blokových čísel obsahujúcich údaje.

Superblock

Superblock je hlavným prvkom systému súborov EXT2. Obsahuje nasledujúci textový systém súborov (neúplný zoznam):

  • celkový počet blokov a inode v súbore;
  • počet voľných blokov a inode v systéme súborov;
  • veľkosť bloku súborového systému;
  • počet blokov a inode v skupine;
  • veľkosť inode;
  • identifikátor systému súborov;
  • Číslo prvého dátového bloku.

Inými slovami, toto je číslo bloku obsahujúce superblock. Toto číslo sa vždy rovná 0, ak je veľkosť blokového bloku súborového systému väčšia ako 1024 bajtov a 1, ak veľkosť bloku je 1024 bajtov.

Funkčnosť súboru systému priamo závisí od integrity superblock. Operačný systém vytvorí niekoľko záložných kópií superbloku, aby ste mohli obnoviť v prípade poškodenia. Hlavná kópia sa nachádza na posunu 1024 bajtov zo začiatku časti, na ktorom je vytvorený súborový systém (prvé 1024 bajtov sú vyhradené pre zavádzač operačného systému).

Včasné verzie systému súborov EXT2 vytvorili kópie superblock na začiatku každého bloku blokov. To viedlo k veľkej strate miesta na disku, takže neskôr sa znížil počet záložných kópií superblock a skupiny blokov 0, 1, 3, 5 a 7 boli pridelené na ich umiestnenie.

Formát skupiny BLOK

Všeobecný konštrukčný diagram súboruového systému EXT2 je uvedený na obr. jeden.

Takmer všetky blokové skupiny majú rovnaký formát. V každej skupine sa okrem informačných blokov uložia informácie o zamestnávaní blokov a skupín inode vo forme bitmapy. Blok blokov 0 tiež obsahuje superbloky a deskriptory tabuľky skupín, ktoré budeme zvážiť nižšie.

Bittou mapu blokov zamestnanosti sa zvyčajne nachádza v prvom bloku skupiny. Ak je v skupine prítomná záložná kópia, bitmap sa nachádza v druhom bloku skupiny. Veľkosť bitmapy je jeden blok. Každý bit tejto karty označuje stav bloku. Ak je bit nastavený (1), blok je zaneprázdnený, ak sa blok resetuje (0) - blok je bezplatný. Prvý blok skupiny zodpovedá nulovému kúsku karty, druhý blok - prvý bit, atď.

Inode, ktorý sa nachádza v tej istej skupine, sa zbierajú v tabuľke. V skupine Bite MAPE MAPO AKTULÁCIE CHAPTY CHARTY CHCEUTIZÁCIE POTREBUJÚCEHO STAVY prvku v tabuľke skupiny Inode.

Každý blok blokov je opísaný pomocou deskriptora blokovej skupiny. Skupinová rukoväť je štruktúra, ktorá obsahuje informácie o adrese bitovej mapy blokov blokov, nastavovacej bitovej bitovej bitovej bitky a inode tabuľky príslušnej skupiny. Všetky deskriptory skupiny sa zhromažďujú v tabuľke deskriptorov tabuľky, ktorá je uložená v skupine blokov 0. Rovnako ako pre superbloku, operačný systém Vytvorí záložné kópie deskriptorov tabuliek.

Algoritmus súborov

Každý inode, rovnako ako blok, má poradové číslo, jedinečné v systéme súborov, a obsahuje informácie len o jednom súbore. Ak chcete získať prístup k obsahu súboru, musíte poznať poradové číslo zodpovedajúceho inódu zodpovedajúcej.

Ako je uvedené vyššie, informácie o umiestnení fyzického súboru sú obsiahnuté v Inode. Tieto informácie sú sekvenciou 32-bitových blokov obsahujúcich údaje obsahujúce súbory (obr. 1). Prvých 12 čísiel sú priame odkazy na informačné bloky (číslo priameho bloku). 13. číslo je nepriamy odkaz (nepriame číslo blokov). Obsahuje adresu bloku, v ktorej sú uložené adresy informačných blokov. 14. miestnosť je dvojitý nepriamy odkaz (dvojité číslo blokov), 15. Číslo je trojnásobný nepriamy odkaz (číslo trojitého bloku).

Názov súboru v Inode nie je zahrnutý, nastavenie zhody medzi názvami súborov a číslami sekvencií Inode sa vykonáva prostredníctvom adresárov.

Katalógy

Súbory v systéme UNIX a POSIX sú uložené v systéme hierarchického súboru stromov. Koreňový adresár súboru je koreňový adresár označený symbolom "/". Každý prechodný uzol v strome súborov je adresár. Konečné vrcholy stromu súborového systému sú buď prázdne adresáre alebo súbory. Absolútna cesta Názov súboru sa skladá z mien všetkých adresárov, ktoré vedú k zadanému súboru, počnúc koreňovým adresárom. Názov skladby /Home/test.File znamená, že súbor testu.file sa nachádza v domovskom adresári, ktorý sa zase nachádza v katalógu root "/".

Katalóg, ako aj súbor, je opísaný pomocou inode. Obsah adresára je rad záznamov, z ktorých každý obsahuje informácie o súbore, ktorý je "vnútri" aktuálneho adresára.

Záznam adresára má nasledujúci formát:

  • súbor inode sekvenčného čísla;
  • dĺžka nahrávania v bajtoch;
  • názov súboru;
  • dĺžka názvu súboru.

Vyhľadávanie inode súboru vždy začína s koreňovým adresárom. Napríklad, aby sa dosiahlo číslo sekvencie Inode v koreňovom adresári, operačný systém musí získať obsah koreňového adresára, nájsť ho v ňom s názvom tohto súboru a odstrániť číslo súboru Iny z tohto záznamu.

Niekoľko čísiel inódu sú vyhradené systémom súborov, ich zoznam je obsiahnutý v súbore hlavičky:

* Špeciálne čísla inode

#Define ext2_bad_ino 1 / * Zlé bloky 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 / * zavádzač Inode * /

#Define ext2_undel_dir_ino 6 / * Undelete Directory Inode * /

Na zaznamenanie koreňového adresára je Inode vyhradený na čísle 2 (root inode). Tento inode je v bloku blokov 0 a berie druhú polohu v tabuľke inode tejto skupiny. Počet prvých confartovaných inódy je uložený v superblock.

Po určení čísla sekvencie Inode, jadro vypočíta číslo skupiny, v ktorom sa tento inódium nachádza, a jeho poloha v tabuľke skupiny Inode. Vzhľadom na inódu z tejto pozície prijíma operačný systém Úplné informácie O súbore, vrátane blokových adries, v ktorých sú obsah súboru uložené.

Počet blokov, v ktorom sa nachádza INODE, je vypočítaný vzorcom:

skupina \u003d (INODE_NUM - 1) / INODES_PER_GROUP

kde:

  • skupina.- požadovaný počet blokových blokov;
  • inode_num - InDode sekvenčného čísla definujúci súbor;
  • inodes_per_group - Počet inóru v skupine (tieto informácie sú v superbloku).

Poloha inode v tabuľke skupiny Inode sa stanovuje vzorcom:

index \u003d (inode_num - 1)% inodes_per_grupa

kde index je pozícia v tabuľke.

Zvážte príklad získania obsahu súboru test.File umiestnený v koreňovom adresári. Prečítajte si súbor /test.file:

  • v poli záznamov o koreňovom adresári nájdite záznam o tomto súbore;
  • extrahuje poradové číslo súboru inode, vypočítajte číslo skupiny, v ktorom sa tento inode nachádza;
  • z deskriptora tejto skupiny získate adresu tabuľky skupiny Inode;
  • vypočítajte polohu inódu v tejto tabuľke;
  • prečítajte si súbor inode;
  • od iného na extrahovanie adresy adresy adresy a prečítajte si informácie v týchto blokoch.

Na obr. 2 Podrobnosti zobrazujú údaje / testovací súbor. Súbor.

    Kroky 1-6 - Čítanie katalógu koreňov:

  1. Z skupiny blokov 0 sa čítajú deskriptory tabuľky.
  2. Z tabuľky deskriptorov tabuľky sa získa skupina skupín 0 blokov 0 a adresa skupiny inode sa odčíta.
  3. Z skupiny blokov 0 číta tabuľku inode.
  4. Číslo sekvencie inóru koreňového adresára je fixované a rovné 2, takže druhý prvok číta z skupiny 0, ktorá obsahuje adresu bloku s obsahom koreňového adresára. Predpokladajme, že táto jednotka sa nachádza v bloku A. blokov.
  5. Z skupiny blokov A číta blok obsahujúci záznamy koreňového adresára.
  6. Hľada sa záznam o zázname s názvom "test.file". Ak sa nájde takýto záznam, súbor Inode Series "test.file" sa z nej získa.
  7. Definovaním čísla Inode môžete pristupovať k informačným blokom súboru (kroky 7-11):

  8. Číslo skupiny sa vypočíta, v ktorom sa tento inódium nachádza, a jeho poloha v tabuľke skupiny inode (predpokladá sa, že číslo skupiny sa rovná B a polohu v tabuľke - X).
  9. Z tabuľky deskriptorov skupiny vyberte deskriptor skupiny B a adresa tabuľky inóru tohto bloku blokov je z neho číta.
  10. Tabuľka inode sa číta z skupiny B Blok.
  11. Z tabuľky inóru blokov blokov B číta inode, ktorý sa nachádza v polohe X.
  12. Zo čítacieho inódu je blokové adresy s obsahom obsahu /test.file načítané a informácie sa čítajú z bloku so zadanou adresou.

Implementácia softvéru algoritmu čítania súborov

Zdrojové údaje: Ťažký Disk, na ktorom je vytvorený súborový systém EXT2. Táto časť zodpovedá súboru zariadenia / Dev / HDA3. V koreňovom adresári sekcií sa vytvorí domáci podadresár a obsahuje súbor test.FILE nasledujúceho obsahu:

By cytry žil na juhu?

Áno, ale falošná inštancia!

1234567890-=

Nemyslite si, že zlé, nie je nezmysel, ale test cvičenia z výcviku telegrafistov v jednotkách komunikácie bývalého ZSSR!

Pozor! Je potrebné vziať do úvahy jeden dôležitý bod. Vytvorený súbor nebude okamžite zaznamenaný na disk a najprv spadnúť do nárazníka na disk. Pokus o okamžité získanie obsahu súboru podľa vyššie uvedeného algoritmu nevedie k ničomu, pretože informácie o tomto súbore nie sú fyzicky na disku. Je potrebné "vynútiť" systém na nahrávanie diskového pufra na disku. Najjednoduchší spôsob, ako to urobiť, je vykonanie reštartu. Preto po vytvorení súboru reštartujte systém.

Našou úlohou používa súbor zariadenia / Dev / HDA3, čítať súbor /home/test.file pomocou metódy priameho prístupu k svojim informačným blokom.

Zvážte implementáciu programu modulu, ktorý vykonáva túto operáciu.

Súbory hlavičky:

#Include.

#Include.

#Include.

#Include.

#Include.

#Include.

Súbor hlavičky definuje konštrukčné typy opisujúce hlavné komponenty systému súborov EXT2 - SuperBlock, deskriptor blokovej skupiny, informačný uzol, položku adresára.

Zvážte krátko polia, ktoré sú zahrnuté v každej z týchto štruktúr:

  1. Štruktúra EXT2_SUPER_BLOCK SUPERBLOCK ŠTRUKTÚRA:
    • __U32 s_inodes_count- celkový počet inódu v súbore;
    • __U32 s_blocks_count.- celkový počet blokov v systéme súborov;
    • __U32 s_Free_blocks_count.- počet voľných blokov;
    • __U32 s_Free_inodes_count.- počet voľných inódu;
    • __U32 S_FIRST_DATA_BLOCK- číslo prvého dátového bloku (číslo bloku, v ktorom sa nachádza superblock);
    • __U32 s_log_block_size. - Táto hodnota sa používa na výpočet veľkosti bloku. Veľkosť bloku je určená vzorcom: veľkosť bloku \u003d 1024<< s_log_block_size;
    • __U32 s_blocks_per_group - počet blokov v skupine;
    • __U32 s_inodes_per_group - počet inode v skupine;
    • __U16 s_magic - Identifikátor súboru File System (0xEf53 podpis);
    • __U16 s_inode_size - veľkosť informačného uzla (inode);
    • __U32 S_FIRST_INO. - Počet prvých nešikovných inódy.
  2. Štruktúra EXT2_GROUP_DESC Skupina Deskriptor Konštrukčná štruktúra:
    • __U32 BG_BLOCK_BITMAP- bitmap zamestnania skupinových blokov;
    • __U32 BG_INODE_BITMAP- Bitting Mapa skupiny zamestnanosti Inode;
    • __U32 BG_INODE_TABLE - Adresa tabuľky inóru.
  3. Štruktúra EXT2_INODE INFORMÁCIE ŠTRUKTÚRY NODE:
    • __U16 I_MODE je typom súborov a prístupových práv k nemu. Typ súboru Definovanie bitov 12-15 tohto poľa:
      • 0xA000.- symbolický odkaz;
      • 0x8000.- normálny súbor;
      • 0x6000.- blok blokového bloku;
      • 0x4000- katalóg;
      • 0x2000.- symbolický súbor zariadenia;
      • 0x1000- kanál FIFO.
    • __U32 I_SIZE. - veľkosť v bajtoch;
    • __U32 I_ATIME.- Posledný čas prístupu súborov;
    • __U32 I_CTIME - čas tvorby súboru;
    • __U32 I_MTIME.- čas poslednej úpravy;
    • __U32 i_blocks. - počet blokov obsadených súborom;
    • __U32 i_block - Adresy informačných blokov (vrátane všetkých nepriamych odkazov).
  4. Hodnota EXT2_N_BLOCKS je definovaná v súbore:

    * Konštanty v porovnaní s dátovými blokmi

    #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. Štruktúra EXT2_DIR_ENTRY_2 DIRECTORY VSTUPUJÚCEJ ŠTRUKTÚRY:
  6. #Define ext2_name_len 255.

  • __U32 Inode - súbor inode;
  • __U16 REC_LEN. - Dĺžka nahrávania adresára;
  • __U8 NAME_LEN.- dĺžka názvu súboru;
  • názov char.názov súboru.

Definujeme názov sekcie, na ktorej je vytvorený súborový systém, globálne štruktúry a premenné.

#Define Part_name "/ Dev / HDA3"

struct ext2_super_block sb;

/ * Buffer na ukladanie deskriptorov tabuliek * /

nepodpísaný char buff_grp;

nepodpísaný charff; / * Informácie o vyrovnávacej pamäti * /

induv; / * Zariadenie zariadenia * /

int bksize; / * Veľkosť bloku súborov * /

Definujeme niekoľko funkcií, ktoré potrebujeme pracovať:

Funkcia čítania Superblock:

void Read_sb ()

MEMETOVANIE (& SB, 0,1024);

Od začiatku sekcie sme posunuli 1024 bajtov a prečítajte si superblock na štruktúru štruktúry STRUSTER EXT2_SUPER_BLOCK SB:

Ak (Lseek (Indev, 1024.0)< 0) {

Perror ("Lseek");

Výstup (-1);

Ak (čítať (induv, char * & sb, SIBEROF (SB))< 0) {

Perror ("čítanie");

Výstup (-1);

Skontrolujte identifikátor systému súborov:

Ak (sb.s_magic! \u003d Ext2_super_magic) (

Printf ("Neznámy typ súborového systému!");

Výstup (-1);

Hodnota ext2_super_magic je definovaná v súbore hlavičky.

Zobrazí informácie o systéme súborov, ktorý sa nachádza v Superblock:

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

Printf ("počítať inodes -% u", sb.s_inodes_count);

Printf ("Blocks Count -% U", sb.s_blocks_count);

Printf ("Veľkosť bloku -% u", 1024<< sb.s_log_block_size);

Printf ("prvý inode -% D", sb.s_first_ino);

Printf ("Magic - 0x% X", SB.s_magic);

Printf ("veľkosť inode -% d", sb.s_inode_size);

Printf ("inodes na skupinu -% u", sb.s_inodes_per_group);

Printf ("blosks na skupinu -% u", sb.s_blocks_per_group);

Printf ("prvý dátový blok -% U", sb.s_first_data_block);

Návrat;

Funkčné čítanie deskriptorov tabuľky:

void Read_GDT ()

Vypočítajte veľkosť bloku súborového systému:

BLKSIZE \u003d 1024.<< sb.s_log_block_size

Tabuľka deskriptorov skupiny sa nachádza v bloku, ktorý sa nachádza hneď za prvým dátovým blokom (pre superblock).

Prečítajte si tabuľku:

Ak (lseek (induv, (sb.s_first_data_block + 1) * BLKSIZE, 0)< 0) {

Perror ("Lseek");

Výstup (-1);

IF (čítať (Indev, Buff_GRP, BLKSIZE)< 0) {

Perror ("čítanie");

Výstup (-1);

Návrat;

Funkcia obsahu inódu podľa jej čísla:

void Get_inode (Int inode_num, struct ext2_inode * in)

Vstupné funkcie funkcie - Číslo sekvencie inode a štruktúra štruktúry STRUKTY EXT2_INODE.

Štruktúra ext2_group_desc GD;

U64 Skupina, index, POS;

Vypočítajte počet blokových skupín, v ktorom je inéda umiestnený so sekvenčným číslom INODE_NUM:

Skupina \u003d (inode_num - 1) / sb.s_inodes_per_group;

Z deskriptorov tabuľky odstráňte deskriptor skupiny a skopírujte ho na štruktúru GD GD STRUKTY EXT2_GROUP_DEV

MEMANT ((VOID *) & GD, 0, SITEOF (GD));

Memcpy ((Void *) & GD, Buff_GRP + (skupina * (SITEOF (GD))), SITEOF (GD));

Vypočítajte polohu inode so sekvenčnou hodnotou INODE_NUM v tabuľke inode skupinovej skupiny a prečítajte si tento inode v štruktúre štruktúry STRUKTY EXT2_INODE:

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

Pos \u003d ((__U64) gd.bg_inode_table) * BLKSIZE + (index * sb.s_inode_size);

PERAD64 (Indev, in, sb.s_inode_size, POS);

Návrat;

Funkcia čítania údajov:

void Read_iblock (struct ext2_inode * in, int blk_num)

U64 POS;

Parametre vstupných funkcií - Štruktúra inode a číslo bloku (priemerné číslo zo sekvencie blokov adresy sa nachádza v inode).

Vypočítajte posun na informačný blok na úseku a prečítajte si túto jednotku do Global Buffer Buff:

POS \u003d ((__U64) IN-\u003e I_BLOCK) * BLKSIZE;

PERAD64 (Indev, Buff, Blksize, POS);

Návrat;

Funkcia pre prijímanie obsahu koreňového adresára:

vAID GET_ROOT_DENTRY ()

Štruktúra ext2_inode;

Číslo sekvencie inódu koreňového adresára je známe, takže dostaneme obsah inému koreňového adresára a prečítame jeho obsah v pufri:

get_inode (ext2_root_ino, & in);

READ_IBLOCK (& IN, 0);

Buff buffer bude obsahovať obsah koreňového adresára.

Návrat;

Funkcia prijímania čísla inódu podľa názvu súboru:

int get_i_num (názov char *)

Parametre vstupných funkcií - názov súboru. Return Hodnota - súbor sekvenčného čísla Inode.

Int i \u003d 0, rec_len \u003d 0;

Struct ext2_dir_entry_2 dent;

V buff buffom je pole položiek adresára. Ak chcete určiť poradové číslo súboru Inode, musíte nájsť v tomto poli s názvom tohto súboru:

Pre (; ja< 700; i++) {

Memcpy ((Void *) & Dent, (buff + rec_len), veľkosť (dent));

Ak (! MEMCMP (Dent.Name, názov, dent.name_len)) prestávka;

Rec_len + \u003d dent.rec_len;

Návrat dent.inode;

A teraz zapíšeme hlavnú funkciu:

int hlavné ()

Premenné a štruktúry:

Štruktúra ext2_inode;

// Absolútny názov cestovného súboru

Nepodpísaný char * full_path \u003d "/home/test.file";

Nepodpísaný charf1;

Statický int i \u003d 1;

Int n, i_num, utone, typ;

Prvý znak v Absolútnom mene súboru by mal byť priamym lomkou (/). Skontrolujte:

Ak (Full_path! \u003d "/") (

Perror ("Slash");

Výstup (-1);

Otvorte súbor zariadenia, prečítajte si superblocks a deskriptory tabuľky:

Indev \u003d otvorené (part_name, o_rdonly);

Ak (Indev.< 0) {

Perror ("otvorený");

Výstup (-1);

Read_sb ();

Read_gdt ();

Dostávame obsah katalógu root:

get_root_dentry ();

Teraz buff buffer obsahuje všetky záznamy koreňového adresára (ak chcete, môžete ich uložiť v samostatnom súbore). Teraz, s koreňovým adresárovým záznamom, môžeme sa dostať na obsah súboru test.file pomocou vyššie uvedeného algoritmu čítania súborov. Na tento účel organizujeme cyklus. V tele cyklu budeme analyzovať názov absolútnej cesty súboru, zvýraznenie jej prvky - podadresáre (je to jeden, domov) a názov vyhľadávacieho súboru (test.file). Pre každý prvok definujeme poradové číslo inode, považujeme tento inode a potom získate obsah nulového bloku (zo sekvencie adresných blokov umiestnených v Inode):

zatiaľ čo (1) (

MEMSET (IFF1,0, SITEF (FUFF1));

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

Buff1 [n] \u003d full_path [i];

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

I ++;

Prestávka;

buff1 [n] \u003d "?";

Pre každý prvok absolútnej cesty názvu súboru určujeme číslo sekvencie Iny, prečítame tento inode v pamäti a potom získate obsah nulového bloku:

I_num \u003d get_i_num (buff1);

Get_inode (i_num, & in);

READ_IBLOCK (& IN, 0);

Zobrazenie informácií o súbore (meno, číslo inode, veľkosť súboru a jeho typ):

Printf ("Number inode -% U", I_NUM);

Printf ("názov súboru -% s", buff1);

Printf ("veľkosť súboru -% u", in.i_size);

Typ súboru je určený staršími štyrmi bitmi oblasti I_MODE FIELD STRUSTER EXT2_INODE:

typ \u003d ((in.i_mode & 0xf000) \u003e\u003e 12);

Printf (typ -% D ", typ);

Prepínač (typ) (

Prípad (0x04):

Printf ("(katalóg)");

Prestávka;

Prípad (0x08):

Printf ("(normálny súbor)");

Prestávka;

Prípad (0x06):

Printf ("(bloková jednotka)");

Prestávka;

Prípad (0x02):

Printf ("(symbolické zariadenie)");

Prestávka;

Predvolené:

Printf ("(neznámy typ)");

Prestávka;

Skontrolujte typ súboru. Ak je to pravidelný súbor - prerušte cyklus:

Ak (typ & 0x08) (

Buff Buffer budú informácie prečítané z informačných blokov súboru /home/test.file. Tieto informácie píšeme do súboru:

Outp \u003d Otvoriť ("OUT", O_CREAT | O_RDWR, 0600);

Písať (oblečenie, buff, veľkosť (buff));

Blízko (utwa);

Prestávka;

Odchádzame:

Blízko (induv);

Návrat 0;

O tejto úvahe logickej štruktúry súborového systému EXT2.



Páči sa vám článok? Zdieľaj to