10.07.2015 Views

Súborový systém “ext2” - FIIT STU

Súborový systém “ext2” - FIIT STU

Súborový systém “ext2” - FIIT STU

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Partition DescriptorOffset Content Size0x00 boot indicator 1 byte+0x01 start head 1 byte+0x02 start cylinder/sector 2 bytes+0x04 partition type 1 byte+0x05 end head 1 byte+0x06 end cylinder/sector 2 bytes+0x08 partition start 4 bytes+0x0C sectors in partition 4 bytesbyte3byte215 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00c7 c6 c5 c4 c3 c2 c1 c0 c9 c8 s5 s4 s3 s2 s1 s0head: h=byte1;sector: s=byte2 & 0x3f;cylinder: c=((byte2 & 0xc0)


Head/cylinder/sector●Ak má disk C cylindrov, H hláv a S sektorov nastopu, potom lineárna adresa je daná funkciou:L(c, h, s)=c∙H∙S + h∙S + s – 1●●●Ke ď že (c, h, s) predstavuje 24 bitov, maximálnypočet sektorov je 2 24 , čo je len 8GB dát.Hodnoty C, H a S nie sú pri moderných diskochznáme, resp. nie je jasný ich význam.Preto tento typ adresy nemá v PT význam abootloader si ho nevšíma.Seminarium 109 Súborový systém “ext2” 6


Lineárna adresa●●●●Začiatok oddielu: offset od sektoru s touto PT(start_sect), udáva sa v sektoroch, počíta saod 0 (v prípade MBR).Veľkosťdiskového oddielu v počte sektorov(nr_sect). Ak sa táto položka PT nepoužíva,hodnota má by ť 0.Obe položky majú 4 bajty a usporiadanie “littleendian”.Spomínané položky poskytujú na adresovaniesektorov v oddiele 32 bitov, čo predstavuje 2TBdát na diskový oddiel (zatia ľ dos ť).Seminarium 109 Súborový systém “ext2” 7


Rozšírené diskové oddiely●MBR (v 1. sektore disku) obsahuje deskriptorynajviac štyroch primárnych diskových oddielov.● Pokia ľ je typ diskového oddielu “ extended”,jeho prvý sektor obsahuje opä ť PT. Táto mázvyčajne najviac dva záznamy, pričom jedendefinuje logický oddiel a druhý ďalší rozšírenýoddiel (alebo je prázdny).●●Záznamy o rozšírených diskových oddielochteda tvoria zreťazený zoznam.Žiadne oddiely okrem rozšírených sa nesmúprekrýva ť. Rozšírené obsahujú logické oddiely.Seminarium 109 Súborový systém “ext2” 8


Partition Table Structure#include struct partition {unsigned char boot_ind; /* 0x80 - active */unsigned char head; /* starting head */unsigned char sector; /* starting sector */unsigned char cyl; /* starting cylinder */unsigned char sys_ind; /* What partition type */unsigned char end_head; /* end head */unsigned char end_sector; /* end sector */unsigned char end_cyl; /* end cylinder */unsigned int start_sect; /* starting sector countingfrom 0 */unsigned int nr_sects;/* nr of sectors inpartition */} __attribute__((packed));Seminarium 109 Súborový systém “ext2” 9


Manipulácia s MBR a PT●Príkazy: fdisk, sfdisk, parted.● Výpis “partition table”: sfdisk ­l● Kontrola: sfdisk ­V●●●●sfdisk číta (zo stdin) riadky v takomto tvare: Uloženie a obnova MBR:sfdisk ­d /dev/hda > /safe/pt.dumpsfdisk /dev/hda < /safe/pt.dumpSeminarium 109 Súborový systém “ext2” 10


Vývoj FS pre Linux●●Minix– 16 bitové číslo bloku (max. veľkos ť 64MB),– 14 znakové názvy súborov.Ext, vylepšenie/rozšírenie minix-u,– rozsah až 2GB, názov súboru 255 znakov,– chýbali access, modification a change time,– zreťazené zoznamy pre voľné bloky a i-uzly,malá efektívnos ť.Seminarium 109 Súborový systém “ext2” 11


Second Extended Filesystem● Ext2fs (1994)– Celková maximálna veľkos ť: rádovo TB.– Maximálna veľkos ť súboru: rádovo GB.– Maximálna dĺžka mena súboru: 255 znakov.– Robustný, stabilný, spoľahlivý.– ...Seminarium 109 Súborový systém “ext2” 12


Nové vlastnosti a rozšírenia● Ext3fs (1999)– Žurnály,– Zmena veľkosti FS za behu (on-line resizing),– Extended Attributes, Access Control Lists,– Directory Indexing, Block Reservation,– ...Seminarium 109 Súborový systém “ext2” 13


Štruktúra ext2fs●Súborový systém je rozdelený na niekoľkosku-pín blokov, pričom každá sa začína kópiousuperbloku a štruktúrami pre opis voľnýchi-uzlov a dátových blokov.Seminarium 109 Súborový systém “ext2” 14


SUPERBLOK●●●Nachádza sa na pozícii 1024 bajtov od začiatkumédia (diskového oddielu).ext2fs/ext2fs.h:#define SUPERBLOCK_OFFSET 1024Obsahuje informácie potrebné pri interpretáciištruktúry a obsahu FS; okrem iného:– verziu FS, (zoznam podporovaných vlastností),– veľkos ť bloku, počet blokov a i-uzlov v skupine,– počet blokov a i-uzlov (všetkých a voľných),– čas pripojenia, modifikácie a poslednej kontroly.Všetky hodnoty majú usporiadanie little endian.Seminarium 109 Súborový systém “ext2” 15


Položky superbloku#include // nepridávať priamo, pridať ext2fs.hstruct ext2_super_block {__u32 s_inodes_count; /* Total fs Inodes count */__u32 s_blocks_count; /* Total fs Blocks count */__u32 s_free_blocks_count; /* Free blocks count */__u32 s_free_inodes_count; /* Free inodes count */__u32 s_first_data_block; /* First Data Block *//* beginning of first block group */__u32 s_r_blocks_count; /* Reserved blocks count */__u16 s_def_resuid;/* Default uid for reservedblocks */__u16 s_def_resgid;/* Default gid for reservedblocks */Seminarium 109 Súborový systém “ext2” 16


Veľkos ť bloku● Udáva sa v bajtoch, ako mocnina 2, od 1024,block_size=1024 ∙ 2 s_log_block_size● Prípustné hodnoty teda sú 1024, 2048, 4096, ?●●Ak je priemerná veľkos ť súboru väčšia (niekoľkosto bajtov a viac), veľké bloky znižujú početpotrebných I/O operácií a teda aj réžiu.Ak sú súbory menšie, výhodné sú menšie bloky,pretože sa tým zmenšuje interná fragmentácia.__u32 s_log_block_size; /* Block size *//* bs=1024*2^s_log_block_size *//* bs=1024


Fragmentácia blokov●Bloky sa delia na fragmenty, aby menšie častiviacerých súborov mohli by ť v tom istom bloku.● Fragment môže by ť väčší aj menší než 1024.●Prakticky sa v ext2fs fragmenty nepoužívajú,veľkos ť fragmentu je rovnaká ako veľkos ť bloku.__s32 s_log_frag_size; /* Fragment size *//*if( positive )fragmnet size = 1024 > -s_log_frag_size;*/Seminarium 109 Súborový systém “ext2” 18


Ďalšie položky superbloku__u32 s_blocks_per_group; /* # Blocks per group */__u32 s_frags_per_group; /* # Fragments per group */__u32 s_inodes_per_group; /* # Inodes per group */__u32 s_mtime; /* Mount time */__u32 s_wtime; /* Write time */__u16 s_magic; /* Magic signature *//* ext2fs/ext2_fs.h:#define EXT2_SUPER_MAGIC 0xEF53 *//* EF – Extended Filesystem ? *//* In versions of the ext2 filesystem prior to 0.2B,the magic number was 0xEF51. It is not compatibleto 0xEF53 due to different group descriptor definition */Seminarium 109 Súborový systém “ext2” 19


Kontrola súborového systému__u16 s_mnt_count; /* Mount count *//* incremented each time the filesystem is mounted,reset when check is performed /*__s16 s_max_mnt_count; /* Maximal mount count *//* the maximum number of times that the file systemmay be mounted before a full check is forced */__u32 s_lastcheck; /* time of last check */__u32 s_checkinterval; /* max. time between checks */Seminarium 109 Súborový systém “ext2” 20


Kontrola súborového systému● Vždy ke ď je súborový systém pripojený,inkrementuje sa hodnota s_mnt_count.●●●●Ke ď dosiahne hodnotu s_max_mnt_count , aktáto nieje 0 alebo -1, urobí sa kontrola systému,bez ohladu na stav a s_mnt_count sa vynuluje.Kontrola sa tiež robí na základe času (intervalu).Hodnoty s_max_mnt_count a s_checkintervalje možné nastavi ť.(...Najlepšie na rôznych súborových systémochrôzne, nech sa nekontrolujú všetky naraz.)Seminarium 109 Súborový systém “ext2” 21


Stav FS a chyby●●●●Ke ď sa súborový systém pripojí, jadro vynulujebit 0 v s_state, ke ď sa odpojí, nastaví ho na 1.Ak súborový systém nie je pripojený a s_stateje 0, nebol odpojený korektne.Jadro nastaví bit 1, ak nájde chybu.Korekciu robia externé programy (e2fsck).__u16 s_state; /* File system state *//* ext2fs/ext2_fs.h:0 – mounted or not cleanly unmounted1 – cleanly unmounted, EXT2_VALID_FS2 – contains errors, EXT2_ERROR_FS */Seminarium 109 Súborový systém “ext2” 22


Reakcia jadra na chyby__u16 s_errors; /* Behaviour when detectingerrors *//*EXT2_ERRORS_CONTINUE 1 continue as if nothing happenedEXT2_ERRORS_RO 2 remount read-onlyEXT2_ERRORS_PANIC 3 cause a kernel panicEXT2_ERRORS_DEFAULT varies as of revision 0.5, this isthe same as EXT2_ERRORS_CONTINUE*/Seminarium 109 Súborový systém “ext2” 23


Superblok a verzia FS__u32 s_rev_level; /* Revision level *//*EXT2_GOOD_OLD_REV 0 original formatEXT2_DYNAMIC_REV 1 V2 format with dynamic inode sizes*/__u16 s_minor_rev_level; /* minor revision level */__u32 s_creator_os; /* OS *//*EXT2_OS_LINUX 0 LinuxEXT2_OS_HURD 1 HurdEXT2_OS_MASIX 2 MASIXEXT2_OS_FREEBSD 3 FreeBSDEXT2_OS_LITES4 4 Lites*/Seminarium 109 Súborový systém “ext2” 24


Superblok – EXT2_DYNAMIC_REV__u32 s_first_ino; /* First non-reserved inode *//* In the non-dynamic file system revisions, the firstnon-reserved inode was fixed to 11. */__u16 s_inode_size; /* size of inode structure *//* In non-dynamic file system revisions this valueis assumed to be 128. */__u16 s_block_group_nr; /* block group # of thissuperblock */__u8 s_uuid[16]; /* 128-bit uuid for volume *//* universally unique identifier */char s_volume_name[16]; /* volume name *//* Used by mount, fsck, /etc/fstab, ... instead of device */char s_last_mounted[64]; /* directory where lastmounted */__u32 s_algorithm_usage_bitmap; /* For compression */Seminarium 109 Súborový systém “ext2” 25


Kompatibilita “možností”●●●EXT2 umožňujebezpečne pridáva ť nové vlast-nosti, bez narušenia kompatibility so staršímiverziami.Problém môže by ť len s jadrami 2.1 a staršími,ktoré ešte nepoznajú tento mechanizmus.Superblok obsahuje tri bitové mapy vlastností,ktoré určujú správanie sa jadra v prípade, žedanú vlastnos ť nepozná (nemá implenetovanú).__u32 s_feature_compat; /* compatible feature set */__u32 s_feature_incompat; /* incompatible feature set */__u32 s_feature_ro_compat; /* readonly-compatiblefeature set */Seminarium 109 Súborový systém “ext2” 26


Kompatibilita “možností”●●●COMPAT: vlastnosti kompatibilné so staršími verziami.Nemenia pôvodnú štruktúru, len pridávajúnové možnosti, ktoré staršie jadro môže bezpečneignorova ť aj pri R/W prístupe (napr. HAS_JOURNAL).RO_COMPAT: vlastnosti kompatibilné pri čítaní,ale zapisovanie staršieho jadra by súborový systémpoškodilo, preto sa pripája len na čítanie (readonly),(napr. SPARSE_SUPER).INCOMPAT: vlastnosti, ktoré menia štruktúru FStak, že staršie jadro ho ani neprečíta (napr.COMPRESSION, FILETYPE), preto ak takéto vlastnostinepozná, tak FS nepripojí.Seminarium 109 Súborový systém “ext2” 27


Definície “možností”ext2fs/ext2_fs.h:#define EXT2_FEATURE_COMPAT_DIR_PREALLOC#define EXT2_FEATURE_COMPAT_IMAGIC_INODES#define EXT3_FEATURE_COMPAT_HAS_JOURNAL#define EXT2_FEATURE_COMPAT_EXT_ATTR#define EXT2_FEATURE_COMPAT_RESIZE_INODE#define EXT2_FEATURE_COMPAT_DIR_INDEX0x00010x00020x00040x00080x00100x0020#define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001#define EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002/* #define EXT2_FEATURE_RO_COMPAT_BTREE_DIR 0x0004 not used */#define EXT2_FEATURE_INCOMPAT_COMPRESSION 0x0001#define EXT2_FEATURE_INCOMPAT_FILETYPE0x0002#define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 /* Needs recovery */#define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 /* Journal device */#define EXT2_FEATURE_INCOMPAT_META_BG0x0010#define EXT3_FEATURE_INCOMPAT_EXTENTS0x0040Seminarium 109 Súborový systém “ext2” 28


Podporované “možnosti”●DIR_INDEX: súborový systém používa “hashedb-trees” na urýchlenie vyhľadávania vo veľkýchadresároch.● FILETYPE: informácia o type súboru (f, d, l, ...)je uložená v položke adresára (optimalizácia).●●HAS_JOURNAL: súborový systém využíva žurnálpre zabezpečenie konzistencie v prípade nekorektnéhovypnutia.SPARSE_SUPER: kópia superbloku nebude uloženána začiatku každej skupiny blokov, ale lenv skupinách 0, 1, a mocninách čísiel 3, 5 a 7.Seminarium 109 Súborový systém “ext2” 29


Prealokácia blokov●●●Pri vytváraní (zápise) súboru sa vyhradí viacblokov, aby sa neskôr (pri zväčšovaní súboru)urýchlil prístup a znížila externá fragmentácia.Pri alokovaní bloku sa alokovalo (v i-uzle) ajďalších (väčšinou 8) nasledujúcich blokov.Toto nebolo kompatibilné so žurnálmi. Pád včase ke ď nepoužité prealokované bloky neboliuvoľnené, viedol k nekonzistentnému stavu,ktorý bol obnovený zo žurnálu. (Nesúladukazovateľov blokov vi-uzle a bitovej mapy.)ext2fs/ext2fs.h:#define EXT2_PREALLOCATE#define EXT2_DEFAULT_PREALLOC_BLOCKS 8Seminarium 109 Súborový systém “ext2” 30


Rezervovanie blokov vopred●●●●●Riešenie: používa sa “reservation window”.Ke ď i-uzol požaduje bloky, vyhradí sa mu istýsúvislý rozsah blokov z ktorého sa bloky pride-iba jemu (okná i-uzlov sa ľujú neprekrývajú).Okno sa môže dynamicky zväčšova ť a premiest-ňova ť.Bloky sú vyhradené len v pamäti (nie na disku),takže po páde je možné obnovi ť konzistentnýstav.Rezervačné okná sa indexujú pomocou “redblacktree”, pre celý súborový systém.Seminarium 109 Súborový systém “ext2” 31


Prealokácia pre adresáre●●Ext2fs robí prealokáciu aj pri čítaní adresárov,pokia ľ je nastavený príznakEXT2_FEATURE_COMPAT_DIR_PREALLOCPri vytváraní nového adresára sa vyhradí celýblok a zapísaná položka sa inicializuje prázdnymidátami, teda rec_len=block_size.ext2fs/ext2fs.h:#define EXT2_PREALLOCATE#define EXT2_DEFAULT_PREALLOC_BLOCKS 8__u8 s_prealloc_blocks; /* Nr of blocks to tryto preallocate*/__u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */Seminarium 109 Súborový systém “ext2” 32


Položky pre žurnály●Nasledujúce položky sú platné ak je nastavenéEXT2_FEATURE_COMPAT_HAS_JOURNAL__u8 s_journal_uuid[16]; /* uuid of journal superblock */__u32 s_journal_inum; /* inode number of journal file */__u32 s_journal_dev; /* device number of journal file */__u8 s_jnl_backup_type; /* Default type of journal backup */__u16 s_reserved_word_pad;__u32 s_jnl_blocks[17]; /* Backup of the journal inode */Seminarium 109 Súborový systém “ext2” 33


Žurnálové záznamy●●●●Žurnály znižujú riziko poškodenia metadát, beznutnosti čakania na kontroly stavu.Vždy, ke ď sa robí akákoľvekzmena v súboro-vom systéme, opis tejto transakcie sa uloží navyhradené miesto.Až ke ď je transakcia kompletná, údaje v logu súkonzistentné a systémový “thread” prepíše príslušnýblok z logu do súborového systému.Transakcie, ktoré boli v čase pádu kompletné,sa po reštarte prekopírujú a neúplné sazahodia. Niektoré operácie sa teda môžu strati ť,ale FS zostáva kozistentný.Seminarium 109 Súborový systém “ext2” 34


Žurnálový súbor●Záznamy o prebiehajúcich transakciách sauchovávajú v (obyčajnom) súbore. Využívazvláštný i-uzol, s_journal_inum (zvyčajne 8).Nie je teda nutné meni ť štruktúru FS.● Súbor môže by ť umiestnený na ľubovolnomzariadení, určenom s_journal_dev, (napr.NVRAM: rýchly zápis, trvalý obsah).●●Minimálna veľkosť logu je 1024 blokov, maxi-málna 102400 blokov.Žurnálový súbor môžu zdie a viaceré súborovéľ ťsystémy.Seminarium 109 Súborový systém “ext2” 35


Štruktúra žurnálu●●●Žurnálový súbor obsahuje bloky s modifikovanýmimetadátami (prípadne aj dátové bloky),pred ich zápisom na disk.Do žurnálových logov sa zapisujú tri druhyúdajov (blokov):– Metadata, kópia bloku FS so zmenami,– Descriptor, opis toho bloku metadát (kde sana disku nachádza),– Header, začiatok a koniec žurnálu.Žurnály tvoria kruhovú štruktúru.Seminarium 109 Súborový systém “ext2” 36


Typy žurnálov●●data=journal, do logu sa zapisujú nielenvšetky metadáta, ale aj dáta. Zabezpečujevyššiu spoľahlivos ť, všetko sa však zapisujedvakrát (do logu a do príslušných blokov).data=ordered, do logu sa zapisujú metadáta adátové bloky sa zapisujú na disk predprepísaním metadát z logu. Súbory teda ani popáde neobsahujú neaktuálne (staré) údaje.● data=writeback, do logu sa zapisujú lenmetadáta. Tie teda budú konzistentné, avšaksúbory môžu obsahova ť staré dáta.Seminarium 109 Súborový systém “ext2” 37


Príznaky pripojenia●●Štandardné príznaky pre tento súborový systémJe ich možné meni pri pripájaní cez mountťoptions, alebo trvalo (v superbloku) cez tune2fs.__u32 s_default_mount_opts;#define EXT2_DEFM_DEBUG0x0001#define EXT2_DEFM_BSDGROUPS 0x0002#define EXT2_DEFM_XATTR_USER 0x0004#define EXT2_DEFM_ACL0x0008#define EXT2_DEFM_UID160x0010#define EXT3_DEFM_JMODE0x0060#define EXT3_DEFM_JMODE_DATA 0x0020#define EXT3_DEFM_JMODE_ORDERED 0x0040#define EXT3_DEFM_JMODE_WBACK 0x0060Seminarium 109 Súborový systém “ext2” 38


Príznaky pripojenia●●●●●DEBUG: pri každom (re)mounte sa vypíšu pomocnéinformácie (do log-u).BSDGROUPS: vytváraný súbor bude ma ť GIDadresára, v ktorom je vytvorený. V opačnomprípade bude ma ť GID procesu ktorý ho vytvára(ak nemá adresár nastavený sticky bit).USER_XATTR: zapnutie/vypnutie podpory používateľských(rozšírených) atribútov súborov.ACL: zapnutie/vypnutie POSIX ACL.UID16: spätná kompatibilita, 16 bitové UID/GID.Seminarium 109 Súborový systém “ext2” 39


Superblok – dokončenie__u32 s_first_meta_bg; /* First metablock group */__u16 s_reserved_gdt_blocks; /* Per group table foronline growth */__u32 s_last_orphan; /* start of list of inodes to delete *//* inodes deleted from all directories, but openedin the crash time /*/* Directory indexing */__u32 s_hash_seed[4]; /* HTREE hash seed */__u8 s_def_hash_version; /* Default hash version to use */__u32 s_first_meta_bg; /* First metablock group */__u32 s_mkfs_time; /* When the filesystem was created */__u32 s_reserved[172]; /* Padding to the end of the block */}; /* end of struct ext2_super_block */Seminarium 109 Súborový systém “ext2” 40


Manipulácia so superblokom●Položky superbloku a teda aj “default” správaniesa súborového systému, je možné meni ťpríkazom tune2fs, výpis tune2fs ­l dev.● Jadro štandardne používa len prvú kópiusuperbloku. Pokia ľ sa poškodí, je možné číslobloku so záložnou kópiou zada ť príkazu mount,ako voľbu (option) ­o sb=nr.Seminarium 109 Súborový systém “ext2” 41


SKUPINY BLOKOV●●Bloky sa zlučujú do skupín, aby sa zmenšilafragmentácia a znížil čas prístupu (nastaveniahlavy disku) pri čítaní dlhých postupností dát.Metadáta a dáta jedného súboru sú umiestnenév rovnakej skupine.Seminarium 109 Súborový systém “ext2” 42


Kópie deskriptorov●●●Každá skupina blokov sa začína kópiou superbloku(ak nie je SPARSE_SUPER) a kópiou tabuľkydeskriptorov skupín.Jadro používa informácie len z prvej skupiny. Doostatných sa zmeny zapíšu len pri kontroleprogramom e2fsck.Ak sa údaje v prvej skupine poškodia, z (mnohých)ostatných kópií je ich pravdepodobnemožné obnovi ť.Seminarium 109 Súborový systém “ext2” 43


Group Descriptorstruct ext2_group_desc{__u32 bg_block_bitmap; /* Blocks bitmap block */__u32 bg_inode_bitmap; /* Inodes bitmap block */__u32 bg_inode_table; /* Inodes table block */__u16 bg_free_blocks_count; /* Free blocks count */__u16 bg_free_inodes_count; /* Free inodes count */__u16 bg_used_dirs_count; /* Directories count */__u16 bg_pad;__u32 bg_reserved[3];};●●Obsahuje čísla blokov s bitmapami voľnýchdátových blokov a i-uzlov a tabuľkoui-uzlov.Ostatné štatistické údaje používa jadro narovnomerné rozmiestňovanieúdajov na disku.Seminarium 109 Súborový systém “ext2” 44


Počet skupín blokov●Počet skupín sa určí z hodnôt v superbloku:bg_nr=s_blocks_count/s_blocks_per_group●●s_blocks_per_group=8·block_sizePri vytváraní FS sa počet blokov v skupine zvolítak, aby sa bitová mapa zmestila do jednéhobloku (pri 4kB bloku je to 32768).Umiestnenie deskriptora skupiny group_num:gd_offset=(1+sb.s_first_data_block)·block_size+sizeof(struct ext2_group_desc)·group_numSeminarium 109 Súborový systém “ext2” 45


Zmena veľkosti FS(resize2fs)●Možnosti zväčšenia (FS, nie diskového oddielu):– Zväčšenie poslednej skupiny blokov,● Limit: voľnémiesto v poslednej skupine.– Pridanie novej skupiny blokov,● Limit: voľnémiesto v bloku deskriptorov(EXT2_DESC_PER_BLOCK).– Pridanie nových descriptorov,● Vyžaduje prípravu FS, (mke2fs ­E resize=).● Budúce bloky descriptorov skupín sa zapíšudo i-uzla (zvyčajne 7), aby sa nepoužili.Seminarium 109 Súborový systém “ext2” 46


Bitové mapy●●●●Data Block Bitmap: Každý bit takéhoto blokuoznačuje, či príslušný dátový blok je voľný,alebo alokovaný pre nejaký súbor.Hodnota 1 označuje obsadené bloky, 0 voľné.Prvý blok v skupine je opísaný nultým bitomnultého bajtu v bloku bitmapy.Analogicky bitmapa i-uzlov udáva či sú jednotlivéi-uzly z tabuľkyi-uzlov v danej skupineblokov voľné pre nové súbory, alebo užobsadené existujúcimi súbormi.Seminarium 109 Súborový systém “ext2” 47


Tabuľkai-uzlov●●●Bloky patriace tabuľkei-uzlov obsahujú zasebou nasledujúce štruktúry i-uzlov.Každá tabuľkamáUmiestnenie konkrétneho i-uzla:s_inodes_per_group i-uzlov.– Poradové číslo i-uzla v skupine blokov:group_num=inum/s_inodes_per_groupr_inum=inum– (s_inodes_per_group*group_num+1)– Poloha i-uzla na disku:inode_offset=gd.bg_inode_table·block_size+r_inum·sizeof(struct ext2_inode)Seminarium 109 Súborový systém “ext2” 48


Počet i-uzlov●●●Celkový počet i-uzlov a teda aj súborov v súborovomsystéme ext2fs je daný napevno, v časejeho tvorby.Zadávajú sa v pomere počtu bajtov na i-uzol,čiže na súbor – priemerná veľkos ť súboru.Napríklad:– FS má 2GB, hustota i-uzlov je 4096 B/i-uzol,– Počet i-uzlov: 2G/4096=524288 i-uzlov,– pri 128B i-uzle to je: 524288·128=64MB,– čo predstavuje 3.125%.Seminarium 109 Súborový systém “ext2” 49


Počet i-uzlov●Nevýhody:– Ak ich vytvoríme veľa, zostanú nevyužité azbytočne zaberajú miesto,● Bežne na zaplnených systémoch sa použijelen niekoľko percent i-uzlov,● rádovo desiatky až stovky MB zostávajú tedanevyužité (ale robí sa to).– Ak ich vytvoríme málo a minú sa, nedajú savytvára ť ďalšie súbory.● Počet i-uzlov nie je možné zvýši ť.● Ide o vážne obmedzenie.Seminarium 109 Súborový systém “ext2” 50


i-UZOL●●●●i-uzol je dátová štruktúra reprezentujúca súbor(abstrakcia).Každému súboru prislúcha práve jeden i-uzol.Obsahuje odkazy na bloky s dátami súboru.Obsahuje všetky metadáta súboru:– Prístupové práva, vlastníka, skupinu, príznaky– veľkos ť, počet blokov, počet liniek,– časy modifikácie obsahu súboru, mod. i-uzla,prístupu, zmazania, ...– Neobsahuje meno súboru.Seminarium 109 Súborový systém “ext2” 51


Položky i-uzla#include struct ext2_inode {__u16 i_mode; /* File mode */__u16 i_uid; /* Low 16 bits of Owner Uid */__u32 i_size; /* Size in bytes */__u32 i_atime; /* Access time */__u32 i_ctime; /* Creation time */__u32 i_mtime; /* Modification time */__u32 i_dtime; /* Deletion Time */__u16 i_gid; /* Low 16 bits of Group Id */__u16 i_links_count; /* Links count */__u32 i_blocks; /* Blocks count */__u32 i_flags; /* File flags */Seminarium 109 Súborový systém “ext2” 52


Položky i-uzlaunion {struct {__u32 l_i_reserved1;} linux1;struct {__u32 h_i_translator;} hurd1;struct {__u32 m_i_reserved1;} masix1;} osd1; /* OS dependent 1 */__u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */__u32 i_generation; /* File version (for NFS) */__u32 i_file_acl; /* File ACL */__u32 i_dir_acl; /* Directory ACL */__u32 i_faddr; /* Fragment address */Seminarium 109 Súborový systém “ext2” 53


Položky i-uzlaunion {struct {__u8 l_i_frag; /* Fragment number */__u8 l_i_fsize; /* Fragment size */__u16 i_pad1;__u16 l_i_uid_high; /* these 2 fields */__u16 l_i_gid_high; /* were reserved2[0] */__u32 l_i_reserved2;} linux2;struct {__u8 h_i_frag; /* Fragment number */__u8 h_i_fsize; /* Fragment size */__u16 h_i_mode_high;__u16 h_i_uid_high;__u16 h_i_gid_high;__u32 h_i_author;} hurd2;Seminarium 109 Súborový systém “ext2” 54


Položky i-uzlastruct {__u8 m_i_frag; /* Fragment number */__u8 m_i_fsize; /* Fragment size */__u16 m_pad1;__u32 m_i_reserved2[2];} masix2;} osd2; /* OS dependent 2 */}; // ex2_inodeSeminarium 109 Súborový systém “ext2” 55


Vlastník a skupina●●Každý súbor má priradeného jedného používateľa,ktorý daný súbor vlastní a tiež jednuskupinu.Tieto sú uložené v položkách:__u16 i_uid; /* Low 16 bits of Owner Uid */__u16 l_i_uid_high;__u16 i_gid; /* Low 16 bits of Group Id */__u16 l_i_gid_high;Seminarium 109 Súborový systém “ext2” 56


Typ súboru●●Položka i_mode, (32 bitov), horné slovo.Určuje typ súboru, teda aký má súbor obsah aakú formu má tento obsah:#include #define LINUX_S_IFSOCK 0140000 // pomenovaný soket#define LINUX_S_IFLNK 0120000 // symbolická linka#define LINUX_S_IFREG 0100000 // obyčajný súbor s dátami#define LINUX_S_IFBLK 0060000 // blokové zariadenie#define LINUX_S_IFDIR 0040000 // adresár#define LINUX_S_IFCHR 0020000 // znakové zariadenie#define LINUX_S_IFIFO 0010000 // dátovod (pipe)...#define LINUX_S_ISREG(m) (((m) & LINUX_S_IFMT) == LINUX_S_IFREG)#define LINUX_S_ISDIR(m) (((m) & LINUX_S_IFMT) == LINUX_S_IFDIR)Seminarium 109 Súborový systém “ext2” 57


Prístupové práva●●●Obsahuje povolenia troch druhov prístupov:– Číta ť obsah súboru (Read), váha 4,– Meni ť obsah súboru (Write), váha 2,– Vykona ť súbor, (eXecute), váha 1.Pre tri skupiny používateľov:– pre vlastníka (User),– skupinu (Group),– a pre všetkých ostatných (Other).Zvyčajne sa udávajú ako číslo v osmičkovejsústave (je to prehľadné).Seminarium 109 Súborový systém “ext2” 58


Prístupové práva●Položka i_mode, (32 bitov), dolných 9 bitov.#include #define LINUX_S_IRWXU 00700#define LINUX_S_IRUSR 00400#define LINUX_S_IWUSR 00200#define LINUX_S_IXUSR 00100#define LINUX_S_IRWXG 00070#define LINUX_S_IRGRP 00040#define LINUX_S_IWGRP 00020#define LINUX_S_IXGRP 00010#define LINUX_S_IRWXO 00007#define LINUX_S_IROTH 00004#define LINUX_S_IWOTH 00002#define LINUX_S_IXOTH 00001// všetky práva pre vlastníka// právo čítať pre vlastníka// právo zapisovať pre vlastníka// právo vykonávať pre vlastníka// všetky práva pre skupinu// Read pre skupinu// Write pre skupinu// eXecute pre skupinu// všetky práva pre ostatných// Read pre ostatných// Write pre ostatných// eXecute pre ostatnýchSeminarium 109 Súborový systém “ext2” 59


Oprávnenia adresárov●●V prípade obyčajných súborov oprávnenie Xznamená možnos ť vykona ť obsah súboru– priamo jadrom ak ide o binárne súbory, alebointerpretova ť ho ak ide o textové skripty.V prípade adresárov toto oprávnenie znamenámožnos ť “ vojsť” do adresára.– Prístup k súboru bude zamietnutý, pokia ľžiadate ľ nemá právo vojs ť do všetkýchadresárov v ceste k tomuto súboru.– Adresár ku ktorému nemáme toto oprávnenienemôžeme zvoli ť za pracovný adresár.Seminarium 109 Súborový systém “ext2” 60


Oprávnenia adresárov●Pre adresár ďalejplatí:– Oprávnenie R umožňuje číta ť jeho obsah, čižezoznam súborov, ktoré sa v ňom nachádzajú.– Oprávnenie W umožňuje meni ť zoznamsúborov v ňom obsiahnutých:●●●teda vytvára ť nové súbory,premenováva ť súbory,vymazáva ť súbory.Seminarium 109 Súborový systém “ext2” 61


Oprávnenia adresárov●Príklady:– Je teda možné, že nemôžeme vykonáva ťprogramy z adresára kde nemáme X, aj ke ďna konkrétny program v tomto adresári Xmáme.– Je tiež možné vytvori ť adresár, v ktorommôžme vytvára ť a maza ť súbory, ale nevi-díme, čo naozaj obsahuje.● Môžme teda so súbormi v ňomnormálnemanipulova ť, ale mená musíme pozna ť.Seminarium 109 Súborový systém “ext2” 62


Zvláštne oprávnenia● Položka i_mode, bity 9–11.#include #define LINUX_S_ISUID 0004000#define LINUX_S_ISGID 0002000#define LINUX_S_ISVTX 0001000// Set UID// Set GID// Sticky bitSeminarium 109 Súborový systém “ext2” 63


Zvláštne oprávnenia●●SUID a SGID:– Na súbore spôsobia, že program sa budevykonáva ť s efektívnymi právami vlastníka,resp. skupiny súboru.– Na adresári spôsobia, že nové súbory v ňomvytvárané, budú ma ť nastaveného vlastníka,resp. skupinu ako tento adresár.Sticky bit:– Na súbore sa väčšinou ignoruje.– Na adresári spôsobí, že súbor v ňom môževymaza ť len vlastník (používa sa v /tmp).Seminarium 109 Súborový systém “ext2” 64


Zoznamy prístupových práv●●ACL – Access Control List.Okrem práv pre tri uvedené skupiny, umožňujetoto rozšírenie definova ť práva rwx samostatneaj pre ďalších vymenovaných používateľov askupiny.– Vlastník user::rwx– Vymenovaný použivate ľ.user:name:rwx– Vlastniaca skupina group::rwx– Vymenovaná s.kupina group:name:rwx– Maska mask::rwx– Ostatní other::rwxSeminarium 109 Súborový systém “ext2” 65


Mapovanie ACL ↔ mode●●●●●Všetky ACL majú tiež reprezentáciu klasickýmibitmi oprávnení (mode).ACL prislúchajúce klasickým oprávneniam sanazývajú minimálne ACL.Vymenovaný používatelia, vymenované skupinya vlastniaca skupina tvoria tzv. triedu skupín.Z práv triedy skupín sa určí maximum a na totosa aplikuje maska. Výsledná hodnota udávaprístup pre skupinovú triedu.Ke aplikácia mení prístupové práva, menia saďaj ACL a naopak.Seminarium 109 Súborový systém “ext2” 66


ACL pre adresáre● Adresáre môžu ma ť navyše “ default ACL”.●●●●Nové súbory budú ma ť nastavené prístupovéACL na “default ACL” adresárov (ak ich majú).Nové adresáre budú ma ť nastavené svojeprístupové i “default ACL” na “default ACL”adresárov v ktorých sa nachádzajú.Ak sú zadefinované “default ACL”, hodnotaumask sa pri vytváraní súborov ignoruje.“Default ACL” sa používajú len pri vytváranísúborov, nie pri kontrole prístupu.Seminarium 109 Súborový systém “ext2” 67


Manipulácia s ACL●●Zistenie ACL súboru: getfacl fileNastavenie ACL súboru: setfacl– setfacl ­m u:charlie:rwx /root– setfacl ­m g:wheel:rx /root– setfacl ­m m::rx /root●●ACL sú v Linux-e implementované pomocourozšírených atribútov súborov.Počet položiek v ACL je v ext2 aj ext3 obmedzenýna 32.Seminarium 109 Súborový systém “ext2” 68


Manipulácia s oprávneniami●●●Na zmenu prístupových práv slúži príkaz chmod.Zmenu vlastníka chown, alebo skupiny chgrp,alebo zmeny v príslušnosti k skupinám môžerobi ť len root.Aby bolo možné na súborovom systéme používať ACL, musí by ť pripojený s voľbou­o acl.Seminarium 109 Súborový systém “ext2” 69


Extended Attributes – EA●●●●●●Rozšírené atribúty sú informácie pripojené ksúborom, v tvare meno=hodnota, podobne ako sprocesmi sú spojené premenné prostredia.Ide o metadáta definované používateľom.Nachádzajú sa v jednom bloku, ktorý môžuzdieľa ť viaceré i-uzly s rovnakými metadátami.Položka i_file_acl (32 bitov), ak je nenulová,obsahuje číslo bloku s rozšírenými atribútmi.Počet odkazov na tento blok je v ňom.Príklad: znaková sada pre dokument.Seminarium 109 Súborový systém “ext2” 70


Iné možnosti implementácie EA●●Tieňovéi-uzly (Solaris, UFS)– V každom i-uzle je odkaz na ďalšíi-uzol, ktorýv svojich dátových blokoch obsahuje rozšírenéatribúty.Zvláštny adresár– Pre každý súbor sa môže vytvori ť zvláštnyadresár, ktorý bude obsahova ť súbory snázvami jednotlivých atribútov.– Obsah atribútov bude v súboroch.– Zaberá veľa miesta, veľkáréžia.Seminarium 109 Súborový systém “ext2” 71


Manipulácia s EA● Súborový systém treba pripoji ť s voľbou­o user_xattr●Zobrazenie rošírených atribútov súboru:– Všetkých: getfattr ­d file– Konkrétneho: getfattr ­n meno file●Nastavenie rozšírených atribútov:– setfattr ­n meno ­v hodnota file– Bez hodnoty: setfattr ­n meno file– Zrušenie atribútu: setfattr ­x meno fileSeminarium 109 Súborový systém “ext2” 72


Príznaky●●●●Položka i_flags (32 bitov) určuje, ako másúbor pristupova ť k tomuto i-uzlu.Určuje jeho špecifické vlastnosti.Mnohé sú implementačne závislé, nie všetky sú(zatia ľ) podporované.Secure deletion (s)– #define EXT2_SECRM_FL 0x00000001– Po odstránení súboru sa jehop dátové bloky prepíšunáhodným (resp. nulovým) obsahom.Seminarium 109 Súborový systém “ext2” 73


Príznaky●●Undelete (u)– #define EXT2_UNRM_FL 0x00000002– Po odstránení bude súbor presunutý do zvláštnehoadresára s vymazanými súbormi.Compress file (c)– #define EXT2_COMPR_FL 0x00000004– Transparentná kompresia obsahu súboru.– Obsah súboru je komprimovaný. Použitý kompresnýalgoritmus je nastavený v superbloku s_algo_bitmap.Seminarium 109 Súborový systém “ext2” 74


Príznaky●Synchronous Updates (S)– #define EXT2_SYNC_FL 0x00000008– Všetky zmeny sa zapíšu do súboru hne ď ako aplikáciarobí operáciu write (synchrónne).– Vhodné pre súbory ktorých obsah by nemal by ťstratený ani pri páde.– Zvyšuje pravdepodobnos ť zachovania integrityobsahu súboru.– Celý súborový systém je možné pripoji ť s voľbousync.Seminarium 109 Súborový systém “ext2” 75


Príznaky●Immutable (i)– #define EXT2_IMMUTABLE_FL 0x00000010– Systém nedovolí zmeny v i-uzle (žiadne nové linky,žiadne zmeny v dátach).– Navyše súbor nemôže by ť premenovaný ani zmazaný.– Tento atribút môže meni ť lenroot.– Bloky súboru by sa nemali presúva ť ani pridefragmentácii (vhodné pre súbory bootloader-a).– Vhodné pre systémové súbory (napr. jadro).– Navyše ak je securelevel jadra zvýšená, tentopríznak je možné odstráni ť len v “single-user móde”.Seminarium 109 Súborový systém “ext2” 76


Príznaky●Append Only (a)– #define EXT2_APPEND_FL 0x00000020– Obsah súboru už nemôže by ť odstránený.– Súbor je možné otvori ť len v režimeappend.– K doterajšiemu obsahu súboru je možné len pridáva ť.– Ak ide o adresár, súbory je možné vytvára ť, nie všakmaza ť.– Vhodné napríklad pre súbory log-ov.– Navyše ak je securelevel jadra zvýšená, tentopríznak je možné odstráni ť len v “single-user móde”.Seminarium 109 Súborový systém “ext2” 77


Príznaky●●No Dump (d)– #define EXT2_NODUMP_FL 0x00000040– Program dump pre vytváranie záloh súborovéhosystému bude tento i-uzol ignorova ť.– Vhodné pre dočasné súbory s premenlivým anepodstatným obsahom.No atime (A)– #define EXT2_NOATIME_FL 0x00000080– Pre tento súbor sa nebude aktualizova ť a_time.– Môže zníži ť réžiu, následne možno aj spotrebu.Seminarium 109 Súborový systém “ext2” 78


Príznaky pre kompresiu●Kompresia nie je implementovaná, resp. jedostupná len ako patch.#include #define EXT2_DIRTY_FL 0x00000100#define EXT2_COMPRBLK_FL 0x00000200 /* One or more compressedclusters */#define EXT2_NOCOMPR_FL 0x00000400 /* Access raw compresseddata */#define EXT2_ECOMPR_FL 0x00000800 /* Compression error */Seminarium 109 Súborový systém “ext2” 79


Príznaky – index adresára●B-tree Format Directory/Hash-indexed directory– #define EXT2_BTREE_FL 0x00001000– #define EXT2_INDEX_FL 0x00001000– Keďže organizovanie súborov v adresároch pomocouzreťazených zoznamov je veľmi neefektívne priveľkých adresároch, je možné použi ť inú organizáciu.– Adresár na začiatku obsahuje hlavičku (dĺžka hlavičky,typ indexu, verzia hash funkcie, hĺbka stromu).– Potom nasledujú dvojice (hash, blok).– Koniec adresára – list stromu – vyzerá ako zvyčajne(kompatibilita).Seminarium 109 Súborový systém “ext2” 80


Príznaky – index adresára●●Postup pri hľadaníi-uzla k názvu súboru:– Pri prístupe k súboru sa najskôr vypočíta k názvusúboru hash hodnota,– Binárnym vyhľadávaním sa nájde blok “listu stromu”ktorý by mohol obsahova ť hľadané meno súboru,– Toto sa opakuje až po najnižšiu úrove ň stromu.– V tomto bloku (liste stromu) sa hľadá zvyčajnýmspôsobom – tento blok má aj pôvodnú štruktúru.– Ak sa nenájde a ide o kolíziu, prehľadávanie pokračujev uzle nasledovníka.Vkladanie, rozdeľovanieuzlov (vyvažovanie),kolízie kĺúčov,...Seminarium 109 Súborový systém “ext2” 81


Ďalšie príznaky●●No Tail (t)– #define EXT2_NOTAIL_FL 0x00008000– Koniec súboru, ktorý nezaberá celý blok, sa nebudepripája ť ku koncu iného súboru (ktorý má vposlednom bloku miesto).– Vhodné napr. pre súbory bootloader-a, ktorý máimplementovanú podporu ext2, ale nepozná tailmerging.Journalled (j)– #define EXT3_JOURNAL_DATA_FL 0x00004000– Obsah súboru by mal by ť “žurnálovaný”.Seminarium 109 Súborový systém “ext2” 82


Ďalšie príznaky●●●Synchronous Directory Updates (D)– #define EXT2_DIRSYNC_FL 0x00010000– Obsah adresára sa zapisuje synchrónne.Top of Directory Hierarchies (T)– #define EXT2_TOPDIR_FL 0x00020000– Využíva sa pri alternatívnom spôsobe alokovaniablokov (Orlov).Inodes Uses Extents– #define EXT3_EXTENTS_FL 0x00080000Seminarium 109 Súborový systém “ext2” 83


Manipulácia s príznakmi●●●●●Zobrazenie rozšírených príznakov súborov:lsattr – používa sa podobne ako lsZmena rozšírených príznakov:chattr [­R] +­=[AsacDdIijsTtu] filesPríznaky pre kompresiu (X, Z) nie je možnénastavova ť.Príznaky 'c', 's' a 'u', nie sú v súčasnýchjadrách implementované.Seminarium 109 Súborový systém “ext2” 84


Časové údaje v i-uzle●●●●●i_ctime – čas poslednej zmeny obsahu i-uzla(čiže metaúdajov o súbore, nie obsahu súboru),i_mtime – čas poslednej modifikácie obsahusúboru (jeho dátových blokov),i_atime – čas posledného prístupu k obsahusúboru (čítanie/zápis dátových blokov),i_dtime – čas vymazania tohoto i-uzla; ak sanejedná o vymazaný i-uzol, je nastavený na 0.Všetky časy sú uchovávané v počte sekúnd odzačiatku roku 1970.Seminarium 109 Súborový systém “ext2” 85


Počet odkazov na i-uzol●●●●●i_links_count – počet názvov súborov vadresároch, odkazujúcich sa na tento i-uzol.Počet “hardliniek”.Pri vytvorení linky sa táto hodnota inkrementuje,pri odstránení odkazu (názvu súboru) zadresára sa dekrementuje.Ak klesne na 0, uvolnia sa dátové bloky.Je to 16 bitová hodnota. Ke že každý adresárďmá odkaz na svoj rodičovský adresár, početpodadresárov je týmto obmedzený.Seminarium 109 Súborový systém “ext2” 86


Odkazy na dátové bloky●●i_block[EXT2_N_BLOCKS] – pole ukazovateľovna dátové bloky obyčajného súboru.Typicky obsahuje 12 priamych, jeden nepriamy,jeden dvojito a jeden trojito nepriamy blok sukazovateľmi.#include #define EXT2_NDIR_BLOCKS 12#define EXT2_IND_BLOCKEXT2_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)Seminarium 109 Súborový systém “ext2” 87


Odkazy na dátové bloky●V niektorých prípadoch môže by ť použité totomiesto (15×4=60B) na iné účely:– Čísla špeciálnych zariadení (typy c a b),– Symbolická linka s názvom do 60B,– ...Seminarium 109 Súborový systém “ext2” 88


Niektoré ďalšie položky v i-uzle●●i_size – veľkos ť súboru v bajtoch, pokia ľ ide oobyčajný súbor, inak sa môže význam meni ť,i_blocks – celkový počet 512 bajtových blokov,ktoré súbor zaberá.Seminarium 109 Súborový systém “ext2” 89


Rozšíriteľnéi-uzly●●●●Niektoré položky v i-uzle by si zaslúžili viacmiesta; napríklad:– Časové známky s väčšou presnosťou než 1s,– 64 bitové čísla blokov,– Viac než 16 bitový počet liniek, ...i-uzol teda môže ma ť viac než 128 bajtov, avšakštruktúra prvých 128 bajtov je nezmenená.Jeho veľkos ť musí deli ť veľkos ť bloku.struct ext2_inode_large obsahuje na konci__u16 i_extra_isize.Seminarium 109 Súborový systém “ext2” 90


Špeciálne i-uzly●V súborovom systéme je zvyčajne nieko ko ľ(typicky prvých 10) i-uzlov obsadených beztoho, že by mali priradené meno.#include #define EXT2_BAD_INO 1 /* Bad blocks inode */#define EXT2_ROOT_INO 2 /* Root inode */#define EXT2_ACL_IDX_INO 3 /* ACL inode */#define EXT2_ACL_DATA_INO 4 /* ACL inode */#define EXT2_BOOT_LOADER_INO 5 /* Boot loader inode */#define EXT2_UNDEL_DIR_INO 6 /* Undelete directory inode */#define EXT2_RESIZE_INO 7 /* Reserved group descriptorsinode */#define EXT2_JOURNAL_INO 8 /* Journal inode */Seminarium 109 Súborový systém “ext2” 91


Adresár●Ide o i-uzol typu d, ktorého dátové blokyobsahujú zreťazený zoznam štruktúr, pričomkaždá takáto položka priraďuje názvu súboručíslo i-uzla.#include #define EXT2_NAME_LEN 255struct ext2_dir_entry_2 {__u32 inode; /* Inode number */__u16 rec_len; /* Directory entry length */__u8 name_len; /* Name length */__u8 file_type;char name[EXT2_NAME_LEN]; /* File name */};Seminarium 109 Súborový systém “ext2” 92


Štruktúra adresára●●●Položka adresára môže ma ť premenlivú dĺžku(závisí od dĺžky názvu súboru).Ke ď sa meno z adresára vymaže, nepotrebnúpoložku pohltí predchádzajúca (zväčší sa jejveľkos ť tak, aby obsahovala aj tú zmazanú).V novších systémoch obsahuje aj typ súboru.Seminarium 109 Súborový systém “ext2” 93


Odkazy na použité zdroje●Hlavičkové súbory v zdrojových kódoch:– ext2fs/ext2fs.h– ext2fs/ext2_fs.h– linux/genhd.h●Manuálové stránky k programom:– mount, mke2fs, tune2fs, debugfs,sfdisk, resize2fs, lsattr, getfattr,setfattr, getfacl, setfacl, chattr,chmod, e2fsck, ...Seminarium 109 Súborový systém “ext2” 94


Odkazy na použité zdroje●●●●Gadi Oxman: The extended-2 filesystemoverview, august 1995,http://www.virtualblueness.net/Ext2fs-overview/Ext2fs-overviInside Ext2/3 File System,http://ext2read.sourceforge.net/ext2fs.htmDave Poirier: The Second Extended File System,2002, http://www.nongnu.org/ext2-doc/ext2.htmlR. Card, T. Ts'o, S. Tweedie: Design andImplementation of the Second ExtendedFilesystem,http://web.mit.edu/tytso/www/linux/ext2intro.htmlSeminarium 109 Súborový systém “ext2” 95


Odkazy na použité zdroje●●●●The Second Extended Filesystem, kernel-doc-2.6.15/Documentation/filesystems/ext2.txtM. Shaffer: FOCUS on Linux: Filesystem Security- ext2 extended attributes, 2000,http://www.securityfocus.com/infocus/1407T. Y. Ts'o, S. Tweedie: Planned Extensions to theLinux Ext2/Ext3 Filesystem, 2002,http://e2fsprogs.sourceforge.net/extensions-ext23/D. P. Bovet, M. Cesati: Understanding the LINUXKernel, 2 nd Edition, O'Reilly, December 2002,http://www.oreilly.com/catalog/linuxkernel2/Seminarium 109 Súborový systém “ext2” 96


Odkazy na použité zdroje●●●M. Cao, T. Y. Ts'o, B. Pulavarty,S. Bhattacharya, A. Dilger, A. Tomas:State of the Art: Where we arewith the ext3 filesystem, Ottawa LinuxSymposium 2005,http://ext2.sourceforge.net/2005-ols/2005-ext3-paper.pdfA. Dilger: GNU ext2resize,http://ext2resize.sourceforge.net/A. Grünbacher: POSIX Access Control Lists onLinux, USENIX Annual Technical Conference,San Antonio, Texas, June 2003http://www.suse.de/~agruen/acl/linux-acls/linux-acls-final.pdfSeminarium 109 Súborový systém “ext2” 97


Odkazy na použité zdroje●●R. Menedetter: Journaling Filesystems for Linux,December 2002,http://www.vmars.tuwien.ac.at/courses/akti12/journal/02ws/aPierre's field guide to partition table recovery,DataRescue 1998,http://www.datarescue.com/laboratory/partition.htmSeminarium 109 Súborový systém “ext2” 98


Vďaka...

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!