Dušan Bernát

Size: px
Start display at page:

Download "Dušan Bernát"

Transcription

1 Súborový systém ext2 a niektoré veci s tým viac, či menej súvisiace pro seminarium 109 Dušan Bernát (bernat@fiit.stuba.sk) ÚPSS, FIIT STU Bratislava Tempus aestivum, Aprilis A.D. 2006, v 1.01

2 Prospectus Organizácia disku kde hľada ť súborový systém? Superblok ako sa to začína, globálne vlastnosti, Skupiny blokov, bitové mapy blokov a i-uzlov, i-uzol a ako vyzerá jeho štruktúra, adresáre a iné odrody súborov, ďalšie atribúty súborov (v kontexte bezpečnosti), možnosti riadenia prístupu k súborom (ACL), tail-merging, balanced trees, journaling, \dots Seminarium 109 Súborový systém ext2 2

3 Súborový systém Poskytuje abstraktný pohľad na súbor ako postupnos ť bajtov. Transformuje požiadavky na operácie so súbormi na operácie s diskovými blokmi. Organizuje: sektory do blokov, bloky do skupín, bloky do súborov (fyzická organizácia), súbory do adresárov (logická organizácia). Riadi prístup k súborom. Spravuje informácie o súboroch. Seminarium 109 Súborový systém ext2 3

4 Kde sa všetko začína? Prvý sektor disku Master Boot Record : Vykonateľný kód, prvá čas ť bootloader-a. Partition Table: 4 Partition descriptor (16B). Signatúra: 0x55, 0xAA. Offset Content Size 0x000 (000) bootloader variable +0x1BE (446) 1. PT entry 16 bytes +0x1CE (462) 2. PT entry 16 bytes +0x1DE (478) 3. PT entry 16 bytes +0x1EE (494) 4. PT entry 16 bytes +0x1FE (510) signature 2 bytes Seminarium 109 Súborový systém ext2 4

5 Partition Descriptor Offset Content Size 0x00 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 bytes byte3 byte c7 c6 c5 c4 c3 c2 c1 c0 c9 c8 s5 s4 s3 s2 s1 s0 head: h=byte1; sector: s=byte2 & 0x3f; cylinder: c=((byte2 & 0xc0) << 2)+byte3 Boot indicator: 0x00 non-active 0x80 bootable Type (hex): 00 not used 05 extended FAT FAT 16 <32MB 06 FAT NTFS 0b W95 FAT linux swap 83 linux native 85 linux extended 8e linux LVM Seminarium 109 Súborový systém ext2 5

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

7 Lineárna adresa Začiatok oddielu: offset od sektoru s touto PT (start_sect), udáva sa v sektoroch, počíta sa od 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 little endian. Spomínané položky poskytujú na adresovanie sektorov v oddiele 32 bitov, čo predstavuje 2TB dát na diskový oddiel (zatia ľ dos ť). Seminarium 109 Súborový systém ext2 7

8 Rozšírené diskové oddiely MBR (v 1. sektore disku) obsahuje deskriptory najviac š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 jeden definuje logický oddiel a druhý ďalší rozšírený oddiel (alebo je prázdny). Záznamy o rozšírených diskových oddieloch teda 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

9 Partition Table Structure #include <linux/genhd.h> 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 counting from 0 */ unsigned int nr_sects; /* nr of sectors in partition */ } attribute ((packed)); Seminarium 109 Súborový systém ext2 9

10 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: <start> <size> <id> <bootable> <c,h,s> <c,h,s> Uloženie a obnova MBR: sfdisk d /dev/hda > /safe/pt.dump sfdisk /dev/hda < /safe/pt.dump Seminarium 109 Súborový systém ext2 10

11 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

12 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

13 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

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

15 SUPERBLOK Nachádza sa na pozícii 1024 bajtov od začiatku média (diskového oddielu). ext2fs/ext2fs.h:#define SUPERBLOCK_OFFSET 1024 Obsahuje 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

16 Položky superbloku #include <ext2fs/ext2_fs.h> // nepridávať priamo, pridať ext2fs.h struct 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 reserved blocks */ u16 s_def_resgid; /* Default gid for reserved blocks */ Seminarium 109 Súborový systém ext2 16

17 Veľkos ť bloku Udáva sa v bajtoch, ako mocnina 2, od 1024, block_size= s_log_block_size Prípustné hodnoty teda sú 1024, 2048, 4096,? Ak je priemerná veľkos ť súboru väčšia (niekoľko sto bajtov a viac), veľké bloky znižujú počet potrebný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<<s_log_block_size; */ Seminarium 109 Súborový systém ext2 17

18 Fragmentácia blokov Bloky sa delia na fragmenty, aby menšie časti viacerých súborov mohli by ť v tom istom bloku. Fragment môže by ť väčší aj menší než 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; else framgnet size = 1024 >> -s_log_frag_size; */ Seminarium 109 Súborový systém ext2 18

19 Ď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 compatible to 0xEF53 due to different group descriptor definition */ Seminarium 109 Súborový systém ext2 19

20 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 system may 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

21 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, ak tá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_checkinterval je možné nastavi ť. (...Najlepšie na rôznych súborových systémoch rôzne, nech sa nekontrolujú všetky naraz.) Seminarium 109 Súborový systém ext2 21

22 Stav FS a chyby Ke ď sa súborový systém pripojí, jadro vynuluje bit 0 v s_state, ke ď sa odpojí, nastaví ho na 1. Ak súborový systém nie je pripojený a s_state je 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 unmounted 1 cleanly unmounted, EXT2_VALID_FS 2 contains errors, EXT2_ERROR_FS */ Seminarium 109 Súborový systém ext2 22

23 Reakcia jadra na chyby u16 s_errors; /* Behaviour when detecting errors */ /* EXT2_ERRORS_CONTINUE 1 continue as if nothing happened EXT2_ERRORS_RO 2 remount read-only EXT2_ERRORS_PANIC 3 cause a kernel panic EXT2_ERRORS_DEFAULT varies as of revision 0.5, this is the same as EXT2_ERRORS_CONTINUE */ Seminarium 109 Súborový systém ext2 23

24 Superblok a verzia FS u32 s_rev_level; /* Revision level */ /* EXT2_GOOD_OLD_REV 0 original format EXT2_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 Linux EXT2_OS_HURD 1 Hurd EXT2_OS_MASIX 2 MASIX EXT2_OS_FREEBSD 3 FreeBSD EXT2_OS_LITES4 4 Lites */ Seminarium 109 Súborový systém ext2 24

25 Superblok EXT2_DYNAMIC_REV u32 s_first_ino; /* First non-reserved inode */ /* In the non-dynamic file system revisions, the first non-reserved inode was fixed to 11. */ u16 s_inode_size; /* size of inode structure */ /* In non-dynamic file system revisions this value is assumed to be 128. */ u16 s_block_group_nr; /* block group # of this superblock */ 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 last mounted */ u32 s_algorithm_usage_bitmap; /* For compression */ Seminarium 109 Súborový systém ext2 25

26 Kompatibilita možností EXT2 umožňuje bezpečne pridáva ť nové vlast- nosti, bez narušenia kompatibility so staršími verziami. 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, že danú vlastnos ť nepozná (nemá implenetovanú). u32 s_feature_compat; /* compatible feature set */ u32 s_feature_incompat; /* incompatible feature set */ u32 s_feature_ro_compat; /* readonly-compatible feature set */ Seminarium 109 Súborový systém ext2 26

27 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čne ignorova ť aj pri R/W prístupe (napr. HAS_JOURNAL). RO_COMPAT: vlastnosti kompatibilné pri čítaní, ale zapisovanie staršieho jadra by súborový systém poškodilo, preto sa pripája len na čítanie (readonly), (napr. SPARSE_SUPER). INCOMPAT: vlastnosti, ktoré menia štruktúru FS tak, že staršie jadro ho ani neprečíta (napr. COMPRESSION, FILETYPE), preto ak takéto vlastnosti nepozná, tak FS nepripojí. Seminarium 109 Súborový systém ext2 27

28 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_INDEX 0x0001 0x0002 0x0004 0x0008 0x0010 0x0020 #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_FILETYPE 0x0002 #define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 /* Needs recovery */ #define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 /* Journal device */ #define EXT2_FEATURE_INCOMPAT_META_BG 0x0010 #define EXT3_FEATURE_INCOMPAT_EXTENTS 0x0040 Seminarium 109 Súborový systém ext2 28

29 Podporované možnosti DIR_INDEX: súborový systém používa hashed b-trees na urýchlenie vyhľadávania vo veľkých adresá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ál pre zabezpečenie konzistencie v prípade nekorektného vypnutia. SPARSE_SUPER: kópia superbloku nebude uložená na začiatku každej skupiny blokov, ale len v skupinách 0, 1, a mocninách čísiel 3, 5 a 7. Seminarium 109 Súborový systém ext2 29

30 Prealokácia blokov Pri vytváraní (zápise) súboru sa vyhradí viac blokov, 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 neboli uvoľnené, viedol k nekonzistentnému stavu, ktorý bol obnovený zo žurnálu. (Nesúlad ukazovateľov blokov v i-uzle a bitovej mapy.) ext2fs/ext2fs.h: #define EXT2_PREALLOCATE #define EXT2_DEFAULT_PREALLOC_BLOCKS 8 Seminarium 109 Súborový systém ext2 30

31 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 redblack tree, pre celý súborový systém. Seminarium 109 Súborový systém ext2 31

32 Prealokácia pre adresáre Ext2fs robí prealokáciu aj pri čítaní adresárov, pokia ľ je nastavený príznak EXT2_FEATURE_COMPAT_DIR_PREALLOC Pri vytváraní nového adresára sa vyhradí celý blok a zapísaná položka sa inicializuje prázdnymi dá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 try to preallocate*/ u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */ Seminarium 109 Súborový systém ext2 32

33 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

34 Žurnálové záznamy Žurnály znižujú riziko poškodenia metadát, bez nutnosti čakania na kontroly stavu. Vždy, ke ď sa robí akákoľvek zmena v súboro- vom systéme, opis tejto transakcie sa uloží na vyhradené 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é sa zahodia. Niektoré operácie sa teda môžu strati ť, ale FS zostáva kozistentný. Seminarium 109 Súborový systém ext2 34

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

36 Štruktúra žurnálu Žurnálový súbor obsahuje bloky s modifikovanými metadá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 sa na disku nachádza), Header, začiatok a koniec žurnálu. Žurnály tvoria kruhovú štruktúru. Seminarium 109 Súborový systém ext2 36

37 Typy žurnálov data=journal, do logu sa zapisujú nielen všetky metadáta, ale aj dáta. Zabezpečuje vyššiu spoľahlivos ť, všetko sa však zapisuje dvakrát (do logu a do príslušných blokov). data=ordered, do logu sa zapisujú metadáta a dátové bloky sa zapisujú na disk pred prepísaním metadát z logu. Súbory teda ani po páde neobsahujú neaktuálne (staré) údaje. data=writeback, do logu sa zapisujú len metadáta. Tie teda budú konzistentné, avšak súbory môžu obsahova ť staré dáta. Seminarium 109 Súborový systém ext2 37

38 Príznaky pripojenia Štandardné príznaky pre tento súborový systém Je ich možné meni pri pripájaní cez mount ť options, alebo trvalo (v superbloku) cez tune2fs. u32 s_default_mount_opts; #define EXT2_DEFM_DEBUG 0x0001 #define EXT2_DEFM_BSDGROUPS 0x0002 #define EXT2_DEFM_XATTR_USER 0x0004 #define EXT2_DEFM_ACL 0x0008 #define EXT2_DEFM_UID16 0x0010 #define EXT3_DEFM_JMODE 0x0060 #define EXT3_DEFM_JMODE_DATA 0x0020 #define EXT3_DEFM_JMODE_ORDERED 0x0040 #define EXT3_DEFM_JMODE_WBACK 0x0060 Seminarium 109 Súborový systém ext2 38

39 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 ť GID adresára, v ktorom je vytvorený. V opačnom prí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

40 Superblok dokončenie u32 s_first_meta_bg; /* First metablock group */ u16 s_reserved_gdt_blocks; /* Per group table for online growth */ u32 s_last_orphan; /* start of list of inodes to delete */ /* inodes deleted from all directories, but opened in 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

41 Manipulácia so superblokom Položky superbloku a teda aj default správanie sa súborového systému, je možné meni ť príkazom tune2fs, výpis tune2fs l dev. Jadro štandardne používa len prvú kópiu superbloku. Pokia ľ sa poškodí, je možné číslo bloku 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

42 SKUPINY BLOKOV Bloky sa zlučujú do skupín, aby sa zmenšila fragmentácia a znížil čas prístupu (nastavenia hlavy 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

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

44 Group Descriptor struct 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ých dátových blokov a i-uzlov a tabuľkou i-uzlov. Ostatné štatistické údaje používa jadro na rovnomerné rozmiestňovanie údajov na disku. Seminarium 109 Súborový systém ext2 44

45 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_size Pri vytváraní FS sa počet blokov v skupine zvolí tak, aby sa bitová mapa zmestila do jedného bloku (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_num Seminarium 109 Súborový systém ext2 45

46 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íšu do i-uzla (zvyčajne 7), aby sa nepoužili. Seminarium 109 Súborový systém ext2 46

47 Bitové mapy Data Block Bitmap: Každý bit takéhoto bloku označ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 bitom nultého bajtu v bloku bitmapy. Analogicky bitmapa i-uzlov udáva či sú jednotlivé i-uzly z tabuľky i-uzlov v danej skupine blokov voľné pre nové súbory, alebo už obsadené existujúcimi súbormi. Seminarium 109 Súborový systém ext2 47

48 Tabuľka i-uzlov Bloky patriace tabuľke i-uzlov obsahujú za sebou nasledujúce štruktúry i-uzlov. Každá tabuľka má Umiestnenie konkrétneho i-uzla: s_inodes_per_group i-uzlov. Poradové číslo i-uzla v skupine blokov: group_num=inum/s_inodes_per_group r_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

49 Počet i-uzlov Celkový počet i-uzlov a teda aj súborov v súborovom systéme ext2fs je daný napevno, v čase jeho 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= i-uzlov, pri 128B i-uzle to je: =64MB, čo predstavuje 3.125%. Seminarium 109 Súborový systém ext2 49

50 Počet i-uzlov Nevýhody: Ak ich vytvoríme veľa, zostanú nevyužité a zbytočne zaberajú miesto, Bežne na zaplnených systémoch sa použije len niekoľko percent i-uzlov, rádovo desiatky až stovky MB zostávajú teda nevyužité (ale robí sa to). Ak ich vytvoríme málo a minú sa, nedajú sa vytvá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

51 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

52 Položky i-uzla #include <ext2fs/ext2_fs.h> 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

53 Položky i-uzla union { 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

54 Položky i-uzla union { 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

55 Položky i-uzla struct { 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_inode Seminarium 109 Súborový systém ext2 55

56 Vlastník a skupina Každý súbor má priradeného jedného používateľa, ktorý daný súbor vlastní a tiež jednu skupinu. 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

57 Typ súboru Položka i_mode, (32 bitov), horné slovo. Určuje typ súboru, teda aký má súbor obsah a akú formu má tento obsah: #include <ext2fs/ext2fs.h> #define LINUX_S_IFSOCK // pomenovaný soket #define LINUX_S_IFLNK // symbolická linka #define LINUX_S_IFREG // obyčajný súbor s dátami #define LINUX_S_IFBLK // blokové zariadenie #define LINUX_S_IFDIR // adresár #define LINUX_S_IFCHR // znakové zariadenie #define LINUX_S_IFIFO // 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

58 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čkovej sústave (je to prehľadné). Seminarium 109 Súborový systém ext2 58

59 Prístupové práva Položka i_mode, (32 bitov), dolných 9 bitov. #include <ext2fs/ext2fs.h> #define LINUX_S_IRWXU #define LINUX_S_IRUSR #define LINUX_S_IWUSR #define LINUX_S_IXUSR #define LINUX_S_IRWXG #define LINUX_S_IRGRP #define LINUX_S_IWGRP #define LINUX_S_IXGRP #define LINUX_S_IRWXO #define LINUX_S_IROTH #define LINUX_S_IWOTH #define LINUX_S_IXOTH // 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ých Seminarium 109 Súborový systém ext2 59

60 Oprávnenia adresárov V prípade obyčajných súborov oprávnenie X znamená možnos ť vykona ť obsah súboru priamo jadrom ak ide o binárne súbory, alebo interpretova ť 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ých adresárov v ceste k tomuto súboru. Adresár ku ktorému nemáme toto oprávnenie nemôžeme zvoli ť za pracovný adresár. Seminarium 109 Súborový systém ext2 60

61 Oprávnenia adresárov Pre adresár ďalej platí: Oprávnenie R umožňuje číta ť jeho obsah, čiže zoznam súborov, ktoré sa v ňom nachádzajú. Oprávnenie W umožňuje meni ť zoznam sú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

62 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 X máme. Je tiež možné vytvori ť adresár, v ktorom môžme vytvára ť a maza ť súbory, ale nevi- díme, čo naozaj obsahuje. Môžme teda so súbormi v ňom normálne manipulova ť, ale mená musíme pozna ť. Seminarium 109 Súborový systém ext2 62

63 Zvláštne oprávnenia Položka i_mode, bity #include <ext2fs/ext2fs.h> #define LINUX_S_ISUID #define LINUX_S_ISGID #define LINUX_S_ISVTX // Set UID // Set GID // Sticky bit Seminarium 109 Súborový systém ext2 63

64 Zvláštne oprávnenia SUID a SGID: Na súbore spôsobia, že program sa bude vykonáva ť s efektívnymi právami vlastníka, resp. skupiny súboru. Na adresári spôsobia, že nové súbory v ňom vytvá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ôže vymaza ť len vlastník (používa sa v /tmp). Seminarium 109 Súborový systém ext2 64

65 Zoznamy prístupových práv ACL Access Control List. Okrem práv pre tri uvedené skupiny, umožňuje toto rozšírenie definova ť práva rwx samostatne aj pre ďalších vymenovaných používateľov a skupiny. 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::rwx Seminarium 109 Súborový systém ext2 65

66 Mapovanie ACL mode Všetky ACL majú tiež reprezentáciu klasickými bitmi oprávnení (mode). ACL prislúchajúce klasickým oprávneniam sa nazývajú minimálne ACL. Vymenovaný používatelia, vymenované skupiny a vlastniaca skupina tvoria tzv. triedu skupín. Z práv triedy skupín sa určí maximum a na toto sa aplikuje maska. Výsledná hodnota udáva prí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

67 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é svoje prístupové i default ACL na default ACL adresárov v ktorých sa nachádzajú. Ak sú zadefinované default ACL, hodnota umask 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

68 Manipulácia s ACL Zistenie ACL súboru: getfacl file Nastavenie 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é pomocou rozší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

69 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ôže robi ť 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

70 Extended Attributes EA Rozšírené atribúty sú informácie pripojené k súborom, v tvare meno=hodnota, podobne ako s procesmi sú spojené premenné prostredia. Ide o metadáta definované používateľom. Nachádzajú sa v jednom bloku, ktorý môžu zdieľ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

71 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áštny adresár, ktorý bude obsahova ť súbory s ná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

72 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 file Seminarium 109 Súborový systém ext2 72

73 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 0x Po odstránení súboru sa jehop dátové bloky prepíšu náhodným (resp. nulovým) obsahom. Seminarium 109 Súborový systém ext2 73

74 Príznaky Undelete (u) #define EXT2_UNRM_FL 0x Po odstránení bude súbor presunutý do zvláštneho adresára s vymazanými súbormi. Compress file (c) #define EXT2_COMPR_FL 0x 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

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

76 Príznaky Immutable (i) #define EXT2_IMMUTABLE_FL 0x 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 ť len root. Bloky súboru by sa nemali presúva ť ani pri defragmentácii (vhodné pre súbory bootloader-a). Vhodné pre systémové súbory (napr. jadro). Navyše ak je securelevel jadra zvýšená, tento príznak je možné odstráni ť len v single-user móde. Seminarium 109 Súborový systém ext2 76

77 Príznaky Append Only (a) #define EXT2_APPEND_FL 0x Obsah súboru už nemôže by ť odstránený. Súbor je možné otvori ť len v režime append. 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šak maza ť. Vhodné napríklad pre súbory log-ov. Navyše ak je securelevel jadra zvýšená, tento príznak je možné odstráni ť len v single-user móde. Seminarium 109 Súborový systém ext2 77

78 Príznaky No Dump (d) #define EXT2_NODUMP_FL 0x Program dump pre vytváranie záloh súborového systému bude tento i-uzol ignorova ť. Vhodné pre dočasné súbory s premenlivým a nepodstatným obsahom. No atime (A) #define EXT2_NOATIME_FL 0x 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

79 Príznaky pre kompresiu Kompresia nie je implementovaná, resp. je dostupná len ako patch. #include <ext2fs/ext2fs.h> #define EXT2_DIRTY_FL 0x #define EXT2_COMPRBLK_FL 0x /* One or more compressed clusters */ #define EXT2_NOCOMPR_FL 0x /* Access raw compressed data */ #define EXT2_ECOMPR_FL 0x /* Compression error */ Seminarium 109 Súborový systém ext2 79

80 Príznaky index adresára B-tree Format Directory/Hash-indexed directory #define EXT2_BTREE_FL 0x #define EXT2_INDEX_FL 0x Keďže organizovanie súborov v adresároch pomocou zreťazených zoznamov je veľmi neefektívne pri veľ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

81 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ázvu sú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ým spôsobom tento blok má aj pôvodnú štruktúru. Ak sa nenájde a ide o kolíziu, prehľadávanie pokračuje v uzle nasledovníka. Vkladanie, rozdeľovanie uzlov (vyvažovanie), kolízie kĺúčov,... Seminarium 109 Súborový systém ext2 81

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

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

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

85 Č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 obsahu súboru (jeho dátových blokov), i_atime čas posledného prístupu k obsahu súboru (čítanie/zápis dátových blokov), i_dtime čas vymazania tohoto i-uzla; ak sa nejedná o vymazaný i-uzol, je nastavený na 0. Všetky časy sú uchovávané v počte sekúnd od začiatku roku Seminarium 109 Súborový systém ext2 85

86 Počet odkazov na i-uzol i_links_count počet názvov súborov v adresá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) z adresá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čet podadresárov je týmto obmedzený. Seminarium 109 Súborový systém ext2 86

87 Odkazy na dátové bloky i_block[ext2_n_blocks] pole ukazovateľov na dátové bloky obyčajného súboru. Typicky obsahuje 12 priamych, jeden nepriamy, jeden dvojito a jeden trojito nepriamy blok s ukazovateľmi. #include <ext2fs/ext2_fs.h> #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) Seminarium 109 Súborový systém ext2 87

88 Odkazy na dátové bloky V niektorých prípadoch môže by ť použité toto miesto (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

89 Niektoré ďalšie položky v i-uzle i_size veľkos ť súboru v bajtoch, pokia ľ ide o obyč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

90 Rozšíriteľné i-uzly Niektoré položky v i-uzle by si zaslúžili viac miesta; 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

91 Špeciálne i-uzly V súborovom systéme je zvyčajne nieko ko ľ (typicky prvých 10) i-uzlov obsadených bez toho, že by mali priradené meno. #include <ext2fs/ext2_fs.h> #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 descriptors inode */ #define EXT2_JOURNAL_INO 8 /* Journal inode */ Seminarium 109 Súborový systém ext2 91

92 Adresár Ide o i-uzol typu d, ktorého dátové bloky obsahujú zreťazený zoznam štruktúr, pričom každá takáto položka priraďuje názvu súboru číslo i-uzla. #include <ext2fs/ext2_fs.h> #define EXT2_NAME_LEN 255 struct 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

93 Š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 jej veľ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

94 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

95 Odkazy na použité zdroje Gadi Oxman: The extended-2 filesystem overview, august 1995, Inside Ext2/3 File System, Dave Poirier: The Second Extended File System, 2002, R. Card, T. Ts'o, S. Tweedie: Design and Implementation of the Second Extended Filesystem, Seminarium 109 Súborový systém ext2 95

96 Odkazy na použité zdroje The Second Extended Filesystem, kernel-doc /Documentation/filesystems/ext2.txt M. Shaffer: FOCUS on Linux: Filesystem Security - ext2 extended attributes, 2000, T. Y. Ts'o, S. Tweedie: Planned Extensions to the Linux Ext2/Ext3 Filesystem, 2002, D. P. Bovet, M. Cesati: Understanding the LINUX Kernel, 2 nd Edition, O'Reilly, December 2002, Seminarium 109 Súborový systém ext2 96

97 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 are with the ext3 filesystem, Ottawa Linux Symposium 2005, A. Dilger: GNU ext2resize, A. Grünbacher: POSIX Access Control Lists on Linux, USENIX Annual Technical Conference, San Antonio, Texas, June Seminarium 109 Súborový systém ext2 97

98 Odkazy na použité zdroje R. Menedetter: Journaling Filesystems for Linux, December 2002, Pierre's field guide to partition table recovery, DataRescue 1998, Seminarium 109 Súborový systém ext2 98

99 Vďaka...

The Second Extended File System

The Second Extended File System The Second Extended File System Internal Layout Dave Poirier instinc@users.sf.net The Second Extended File System: Internal Layout by Dave Poirier Copyright 2001-2009 Dave Poirier Permission is granted

More information

Súborový systém. Základné pojmy Prístupové práva Atribúty Kvóty ACL Kryptografia Diskové oddiely

Súborový systém. Základné pojmy Prístupové práva Atribúty Kvóty ACL Kryptografia Diskové oddiely Súborový systém Základné pojmy Prístupové práva Atribúty Kvóty ACL Kryptografia Diskové oddiely Bezpečnosť počítačových systémov / Súborový systém DB, FIIT STU BA, 2009 2011 1 Súborový systém Poskytuje

More information

ECE 598 Advanced Operating Systems Lecture 18

ECE 598 Advanced Operating Systems Lecture 18 ECE 598 Advanced Operating Systems Lecture 18 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 5 April 2016 Homework #7 was posted Project update Announcements 1 More like a 571

More information

File System Design Implementation. Zhiqiang Lin

File System Design Implementation. Zhiqiang Lin CS 6V81-05: System Security and Malicious Code Analysis File System Design Implementation Zhiqiang Lin Department of Computer Science University of Texas at Dallas March 7 th, 2012 Outline 1 File System

More information

The EXT2FS Library. The EXT2FS Library Version 1.37 January by Theodore Ts o

The EXT2FS Library. The EXT2FS Library Version 1.37 January by Theodore Ts o The EXT2FS Library The EXT2FS Library Version 1.37 January 2005 by Theodore Ts o Copyright c 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Theodore Ts o Permission is granted to make and distribute

More information

ECE 598 Advanced Operating Systems Lecture 17

ECE 598 Advanced Operating Systems Lecture 17 ECE 598 Advanced Operating Systems Lecture 17 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 3 April 2018 Announcements Project Topics Should have gotten response on project topic

More information

Súborový systém. Ing. Viliam Solčány, PhD. ZS 2011/2012. Viliam Solčány, FIIT STU Bratislava Operačné systémy 2011/12 Predn.

Súborový systém. Ing. Viliam Solčány, PhD. ZS 2011/2012. Viliam Solčány, FIIT STU Bratislava Operačné systémy 2011/12 Predn. Súborový systém Ing. Viliam Solčány, PhD. ÓÐ ÒÝ Øº ØÙ º ZS 2011/2012 Viliam Solčány, FIIT STU Bratislava Operačné systémy 2011/12 Predn. 12 1 / 42 Osnova Viliam Solčány, FIIT STU Bratislava Operačné systémy

More information

File systems and Filesystem quota

File systems and Filesystem quota File systems and Filesystem quota 8.1 Unit objectives After completing this unit, you should be able to: Describe what a file is Describe what a file system is List possible file systems Describe i-nodes

More information

Ext3/Ext4 File System

Ext3/Ext4 File System Operating System IIIT Kalyani 1 Ext3/Ext4 File System Operating System IIIT Kalyani 2 A Bit of History Linus Torvalds used the file system of Minix a while writing the first version of Linux. The Minix

More information

Databázy (1) Prednáška 11. Alexander Šimko

Databázy (1) Prednáška 11. Alexander Šimko Databázy (1) Prednáška 11 Alexander Šimko simko@fmph.uniba.sk Contents I Aktualizovanie štruktúry databázy Section 1 Aktualizovanie štruktúry databázy Aktualizácia štruktúry databázy Štruktúra databázy

More information

2nd Edition FROM I/O PORTS TO PROCESS MANAGEMENT. Covers Linux Kernel Version 2.4. Understanding the LINUX KERNEL DANIEL P. BOVET & MARCO CESATI

2nd Edition FROM I/O PORTS TO PROCESS MANAGEMENT. Covers Linux Kernel Version 2.4. Understanding the LINUX KERNEL DANIEL P. BOVET & MARCO CESATI FROM I/O PORTS TO PROCESS MANAGEMENT 2nd Edition Covers Linux Kernel Version 2.4 Understanding the LINUX KERNEL DANIEL P. BOVET & MARCO CESATI Understanding the LINUX KERNEL SECOND EDITION Daniel P. Bovet

More information

The EXT2FS Library. The EXT2FS Library Version 1.38 June by Theodore Ts o

The EXT2FS Library. The EXT2FS Library Version 1.38 June by Theodore Ts o The EXT2FS Library The EXT2FS Library Version 1.38 June 2005 by Theodore Ts o Copyright c 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Theodore Ts o Permission is granted to make and distribute

More information

Advanced Operating Systems

Advanced Operating Systems Advanced Operating Systems File Systems: File Allocation Table, Linux File System, NTFS Lecture 10 Case Studies of File Systems File Allocation Table (FAT) Unix File System Berkeley Fast File System Linux

More information

UNIX FILE SYSTEM NEZER J. ZAIDENBERG

UNIX FILE SYSTEM NEZER J. ZAIDENBERG UNIX FILE SYSTEM NEZER J. ZAIDENBERG AGENDA UFS EXT2 EXT3,EXT4 NEW FEATURES /PROC FILE SYSTEM VIRTUAL FILE SYSTEM REFERENCES UNIX FILESYSTEMS S. PETE ADVANCED PROGRAMMING IN THE UNIX ENVIRONMENT CHAPTERS

More information

File System Case Studies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

File System Case Studies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University File System Case Studies Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics The Original UNIX File System FFS Ext2 FAT 2 UNIX FS (1)

More information

Digital forensics 5/5/18. Operating system Unix. File system Hierarchy Standard

Digital forensics 5/5/18. Operating system Unix. File system Hierarchy Standard Digital forensics Andrej Brodnik Operating system Unix Development through history: System V, HP-UX, BSD,... Open source versions that appeared later: Linux: RedHat, SUSE, Ubuntu,... BSD: FreeBSD, OpenBSD,

More information

2011/11/04 Sunwook Bae

2011/11/04 Sunwook Bae 2011/11/04 Sunwook Bae Contents Introduction Ext4 Features Block Mapping Ext3 Block Allocation Multiple Blocks Allocator Inode Allocator Performance results Conclusion References 2 Introduction (1/3) The

More information

File System Case Studies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

File System Case Studies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University File System Case Studies Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics The Original UNIX File System FFS Ext2 FAT 2 UNIX FS (1)

More information

Author : admin. 1. Getting information about current file system partitions with fdisk and mount

Author : admin. 1. Getting information about current file system partitions with fdisk and mount Changing '33 days has gone without being checked' automated fsck filesystem check on Debian Linux Desktops - Reduce FS check waiting on Linux notebooks Author : admin The periodic scheduled file system

More information

Databázové systémy. SQL Window functions

Databázové systémy. SQL Window functions Databázové systémy SQL Window functions Scores Tabuľka s bodmi pre jednotlivých študentov id, name, score Chceme ku každému doplniť rozdiel voči priemeru 2 Demo data SELECT * FROM scores ORDER BY score

More information

412 Notes: Filesystem

412 Notes: Filesystem 412 Notes: Filesystem A. Udaya Shankar shankar@cs.umd.edu December 5, 2012 Contents 1 Filesystem interface 2 2 Filesystem implementation 3 3 FAT (mostly from Wikepedia) 5 4 UFS (mostly from Wikepedia)

More information

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) Spájanie tabuliek Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Úvod pri normalizácii rozdeľujeme databázu na viacero tabuliek prepojených cudzími kľúčmi SQL umožňuje tabuľky opäť spojiť

More information

Case study: ext2 FS 1

Case study: ext2 FS 1 Case study: ext2 FS 1 The ext2 file system Second Extended Filesystem The main Linux FS before ext3 Evolved from Minix filesystem (via Extended Filesystem ) Features Block size (1024, 2048, and 4096) configured

More information

Case study: ext2 FS 1

Case study: ext2 FS 1 Case study: ext2 FS 1 The ext2 file system Second Extended Filesystem The main Linux FS before ext3 Evolved from Minix filesystem (via Extended Filesystem ) Features Block size (1024, 2048, and 4096) configured

More information

File Management 1/34

File Management 1/34 1/34 Learning Objectives system organization and recursive traversal buffering and memory mapping for performance Low-level data structures for implementing filesystems Disk space management for sample

More information

4/19/2016. The ext2 file system. Case study: ext2 FS. Recap: i-nodes. Recap: i-nodes. Inode Contents. Ext2 i-nodes

4/19/2016. The ext2 file system. Case study: ext2 FS. Recap: i-nodes. Recap: i-nodes. Inode Contents. Ext2 i-nodes /9/ The ext file system Case study: ext FS Second Extended Filesystem The main Linux FS before ext Evolved from Minix filesystem (via Extended Filesystem ) Features (,, and 9) configured at FS creation

More information

File System Implementation

File System Implementation Introduction to Operating Systems File System Implementation John Franco Electrical Engineering and Computing Systems University of Cincinnati Layered File System Application Programs Logical File System

More information

Filesystem. Disclaimer: some slides are adopted from book authors slides with permission

Filesystem. Disclaimer: some slides are adopted from book authors slides with permission Filesystem Disclaimer: some slides are adopted from book authors slides with permission 1 Recap Directory A special file contains (inode, filename) mappings Caching Directory cache Accelerate to find inode

More information

Spiffy: Enabling File-System Aware Storage Applications

Spiffy: Enabling File-System Aware Storage Applications Spiffy: Enabling File-System Aware Storage Applications Kuei (Jack) Sun, Daniel Fryer, Joseph Chu, Matthew Lakier, Angela Demke Brown, and Ashvin Goel University of Toronto Introduction File-system aware

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2018 Lecture 22 File Systems Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 Disk Structure Disk can

More information

File Systems Management and Examples

File Systems Management and Examples File Systems Management and Examples Today! Efficiency, performance, recovery! Examples Next! Distributed systems Disk space management! Once decided to store a file as sequence of blocks What s the size

More information

Long-term Information Storage Must store large amounts of data Information stored must survive the termination of the process using it Multiple proces

Long-term Information Storage Must store large amounts of data Information stored must survive the termination of the process using it Multiple proces File systems 1 Long-term Information Storage Must store large amounts of data Information stored must survive the termination of the process using it Multiple processes must be able to access the information

More information

kucharka exportu pro 9FFFIMU

kucharka exportu pro 9FFFIMU požiadavky na export kodek : Xvid 1.2.1 stable (MPEG-4 ASP) // výnimočne MPEG-2 bitrate : max. 10 Mbps pixely : štvorcové (Square pixels) rozlíšenie : 1920x1080, 768x432 pre 16:9 // výnimočne 1440x1080,

More information

Example Implementations of File Systems

Example Implementations of File Systems Example Implementations of File Systems Last modified: 22.05.2017 1 Linux file systems ext2, ext3, ext4, proc, swap LVM Contents ZFS/OpenZFS NTFS - the main MS Windows file system 2 Linux File Systems

More information

mode uid gid atime ctime mtime size block count reference count direct blocks (12) single indirect double indirect triple indirect mode uid gid atime

mode uid gid atime ctime mtime size block count reference count direct blocks (12) single indirect double indirect triple indirect mode uid gid atime Recap: i-nodes Case study: ext FS The ext file system Second Extended Filesystem The main Linux FS before ext Evolved from Minix filesystem (via Extended Filesystem ) Features (4, 48, and 49) configured

More information

Filesystems Overview

Filesystems Overview Filesystems Overview ext2, NTFS, ReiserFS, and the Linux Virtual Filesystem Switch mdeters@cs.wustl.edu www.cs.wustl.edu/ doc/ Fall 2003 Seminar on Storage-Based Supercomputing Filesystems Overview: Outline

More information

ECE 598 Advanced Operating Systems Lecture 14

ECE 598 Advanced Operating Systems Lecture 14 ECE 598 Advanced Operating Systems Lecture 14 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 19 March 2015 Announcements Homework #4 posted soon? 1 Filesystems Often a MBR (master

More information

CHAPTER 11: IMPLEMENTING FILE SYSTEMS (COMPACT) By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 11: IMPLEMENTING FILE SYSTEMS (COMPACT) By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 11: IMPLEMENTING FILE SYSTEMS (COMPACT) By I-Chen Lin Textbook: Operating System Concepts 9th Ed. File-System Structure File structure Logical storage unit Collection of related information File

More information

File Systems. What do we need to know?

File Systems. What do we need to know? File Systems Chapter 4 1 What do we need to know? How are files viewed on different OS s? What is a file system from the programmer s viewpoint? You mostly know this, but we ll review the main points.

More information

Design and Implementation of the Second Extended Filesystem

Design and Implementation of the Second Extended Filesystem This paper was first published in the Proceedings of the First Dutch International Symposium on Linux, ISBN 90-367-0385-9. Design and Implementation of the Second Extended Filesystem Rémy Card, Laboratoire

More information

File System Internals. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

File System Internals. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University File System Internals Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics File system implementation File descriptor table, File table

More information

How To Resize ext3 Partitions Without Losing Data

How To Resize ext3 Partitions Without Losing Data By Falko Timme Published: 2007-01-07 17:12 How To Resize ext3 Partitions Without Losing Data Version 1.0 Author: Falko Timme Last edited 12/31/2006 This article is about

More information

Registrácia účtu Hik-Connect

Registrácia účtu Hik-Connect Registrácia účtu Hik-Connect Tento návod popisuje postup registrácie účtu služby Hik-Connect prostredníctvom mobilnej aplikácie a webového rozhrania na stránke www.hik-connect.comg contents in this document

More information

Filesystem. Disclaimer: some slides are adopted from book authors slides with permission 1

Filesystem. Disclaimer: some slides are adopted from book authors slides with permission 1 Filesystem Disclaimer: some slides are adopted from book authors slides with permission 1 Storage Subsystem in Linux OS Inode cache User Applications System call Interface Virtual File System (VFS) Filesystem

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 24 File Systems Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 Questions from last time How

More information

File System Case Studies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

File System Case Studies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University File System Case Studies Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics The Original UNIX File System FFS Ext2 FAT 2 UNIX FS (1)

More information

Operating System Concepts Ch. 11: File System Implementation

Operating System Concepts Ch. 11: File System Implementation Operating System Concepts Ch. 11: File System Implementation Silberschatz, Galvin & Gagne Introduction When thinking about file system implementation in Operating Systems, it is important to realize the

More information

File System Implementation. Sunu Wibirama

File System Implementation. Sunu Wibirama File System Implementation Sunu Wibirama File-System Structure Outline File-System Implementation Directory Implementation Allocation Methods Free-Space Management Discussion File System Structure File

More information

Textový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona

Textový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona Popis textového formátu a xsd schémy na zasielanie údajov podľa 27 ods. 2 písm. f) zákona (formu na zaslanie údajov si zvolí odosielateľ údajov) Textový formát na zasielanie údajov podľa 27 ods. 2 písm.

More information

File Systems. File Examples. Carsten Griwodz University of Oslo. (includes slides from Pål Halvorsen, Kai Li, A. Tanenbaum and M.

File Systems. File Examples. Carsten Griwodz University of Oslo. (includes slides from Pål Halvorsen, Kai Li, A. Tanenbaum and M. File Systems Carsten Griwodz University of Oslo (includes slides from Pål Halvorsen, Kai Li, A. Tanenbaum and M. van Steen) File Examples! Text file! Example ASCII Tags Tables =========== A "tags table"

More information

Motivation. Operating Systems. File Systems. Outline. Files: The User s Point of View. File System Concepts. Solution? Files!

Motivation. Operating Systems. File Systems. Outline. Files: The User s Point of View. File System Concepts. Solution? Files! Motivation Operating Systems Process store, retrieve information Process capacity restricted to vmem size When process terminates, memory lost Multiple processes share information Systems (Ch 0.-0.4, Ch.-.5)

More information

Linux System Administration, level 1. Lecture 4: Partitioning and Filesystems Part II: Tools & Methods

Linux System Administration, level 1. Lecture 4: Partitioning and Filesystems Part II: Tools & Methods Linux System Administration, level 1 Lecture 4: Partitioning and Filesystems Part II: Tools & Methods The sequence 1. Create one or more empty partitions 1a. (optional) Arrange them into a RAID or LVM

More information

Computer Systems Laboratory Sungkyunkwan University

Computer Systems Laboratory Sungkyunkwan University File System Internals Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics File system implementation File descriptor table, File table

More information

Spôsoby zistenia ID KEP

Spôsoby zistenia ID KEP Spôsoby zistenia ID KEP ID KEP (kvalifikovaný elektronický podpis) je možné zistiť pomocou napr. ovládacieho panela, prostredíctvom prehliadača Internet Expolrer, Google Chrome alebo Mozilla Firefox. Popstup

More information

FILE SYSTEM IMPLEMENTATION. Sunu Wibirama

FILE SYSTEM IMPLEMENTATION. Sunu Wibirama FILE SYSTEM IMPLEMENTATION Sunu Wibirama File-System Structure Outline File-System Implementation Directory Implementation Allocation Methods Free-Space Management Discussion File-System Structure Outline

More information

RHCE BOOT CAMP. Filesystem Administration. Wednesday, November 28, 12

RHCE BOOT CAMP. Filesystem Administration. Wednesday, November 28, 12 RHCE BOOT CAMP Filesystem Administration PARTITIONING What is partitioning? Splitting up a hard drive into organizable chunks Why? Isolates filesystem corruption Simplifies/speeds backups Allows optimizing

More information

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP Recipient Configuration Štefan Pataky MCP, MCTS, MCITP Agenda Mailbox Mail Contact Distribution Groups Disconnected Mailbox Mailbox (vytvorenie nového účtu) Exchange Management Console New User Exchange

More information

CS3600 SYSTEMS AND NETWORKS

CS3600 SYSTEMS AND NETWORKS CS3600 SYSTEMS AND NETWORKS NORTHEASTERN UNIVERSITY Lecture 11: File System Implementation Prof. Alan Mislove (amislove@ccs.neu.edu) File-System Structure File structure Logical storage unit Collection

More information

File System & Device Drive Mass Storage. File Attributes (Meta Data) File Operations. Directory Structure. Operations Performed on Directory

File System & Device Drive Mass Storage. File Attributes (Meta Data) File Operations. Directory Structure. Operations Performed on Directory CS341: Operating System Lect39: 12 th Nov 2014 Dr. A. Sahu Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati File System & Device Drive Mass Storage Disk Structure, Disk Arm Scheduling,

More information

Operating Systems. Lecture File system implementation. Master of Computer Science PUF - Hồ Chí Minh 2016/2017

Operating Systems. Lecture File system implementation. Master of Computer Science PUF - Hồ Chí Minh 2016/2017 Operating Systems Lecture 7.2 - File system implementation Adrien Krähenbühl Master of Computer Science PUF - Hồ Chí Minh 2016/2017 Design FAT or indexed allocation? UFS, FFS & Ext2 Journaling with Ext3

More information

Da-Wei Chang CSIE.NCKU. Professor Hao-Ren Ke, National Chiao Tung University Professor Hsung-Pin Chang, National Chung Hsing University

Da-Wei Chang CSIE.NCKU. Professor Hao-Ren Ke, National Chiao Tung University Professor Hsung-Pin Chang, National Chung Hsing University Chapter 11 Implementing File System Da-Wei Chang CSIE.NCKU Source: Professor Hao-Ren Ke, National Chiao Tung University Professor Hsung-Pin Chang, National Chung Hsing University Outline File-System Structure

More information

8. Files and File Systems

8. Files and File Systems 8. Files and File Systems 8. Files and File Systems File Storage Structure File System Implementation Kernel Abstraction Communication Through a Pipe 146 / 303 8. Files and File Systems Disk Operation

More information

Chapter 11: Implementing File Systems

Chapter 11: Implementing File Systems Chapter 11: Implementing File Systems Operating System Concepts 99h Edition DM510-14 Chapter 11: Implementing File Systems File-System Structure File-System Implementation Directory Implementation Allocation

More information

Caching and reliability

Caching and reliability Caching and reliability Block cache Vs. Latency ~10 ns 1~ ms Access unit Byte (word) Sector Capacity Gigabytes Terabytes Price Expensive Cheap Caching disk contents in RAM Hit ratio h : probability of

More information

Chapter 11: Implementing File

Chapter 11: Implementing File Chapter 11: Implementing File Systems Chapter 11: Implementing File Systems File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management Efficiency

More information

VYLEPŠOVANIE KONCEPTU TRIEDY

VYLEPŠOVANIE KONCEPTU TRIEDY VYLEPŠOVANIE KONCEPTU TRIEDY Typy tried class - definuje premenné a metódy (funkcie). Ak nie je špecifikovaná inak, viditeľnosť členov je private. struct - definuje premenné a metódy (funkcie). Ak nie

More information

BSDCan FreeBSD s Ext2 Implementation. Features and Status Report. Pedro Giffuni

BSDCan FreeBSD s Ext2 Implementation. Features and Status Report. Pedro Giffuni BSDCan 2014 FreeBSD s Ext2 Implementation Features and Status Report Pedro Giffuni Why Ext2fs is still important! Performance (FIS 2010):! Ext2 is the fastest filesystem in linux.! ext4,

More information

Chapter 11: Implementing File Systems. Operating System Concepts 9 9h Edition

Chapter 11: Implementing File Systems. Operating System Concepts 9 9h Edition Chapter 11: Implementing File Systems Operating System Concepts 9 9h Edition Silberschatz, Galvin and Gagne 2013 Chapter 11: Implementing File Systems File-System Structure File-System Implementation Directory

More information

Outline. Operating Systems. File Systems. File System Concepts. Example: Unix open() Files: The User s Point of View

Outline. Operating Systems. File Systems. File System Concepts. Example: Unix open() Files: The User s Point of View Operating Systems s Systems (in a Day) Ch - Systems Abstraction to disk (convenience) The only thing friendly about a disk is that it has persistent storage. Devices may be different: tape, IDE/SCSI, NFS

More information

makes floppy bootable o next comes root directory file information ATTRIB command used to modify name

makes floppy bootable o next comes root directory file information ATTRIB command used to modify name File Systems File system o Designed for storing and managing files on disk media o Build logical system on top of physical disk organization Tasks o Partition and format disks to store and retrieve information

More information

V. File System. SGG9: chapter 11. Files, directories, sharing FS layers, partitions, allocations, free space. TDIU11: Operating Systems

V. File System. SGG9: chapter 11. Files, directories, sharing FS layers, partitions, allocations, free space. TDIU11: Operating Systems V. File System SGG9: chapter 11 Files, directories, sharing FS layers, partitions, allocations, free space TDIU11: Operating Systems Ahmed Rezine, Linköping University Copyright Notice: The lecture notes

More information

File System Internals. Jo, Heeseung

File System Internals. Jo, Heeseung File System Internals Jo, Heeseung Today's Topics File system implementation File descriptor table, File table Virtual file system File system design issues Directory implementation: filename -> metadata

More information

3/26/2014. Contents. Concepts (1) Disk: Device that stores information (files) Many files x many users: OS management

3/26/2014. Contents. Concepts (1) Disk: Device that stores information (files) Many files x many users: OS management 2013-2014 Contents 1. Concepts about the file system 2. The The disk user structure view 3. 2. Files The disk in disk structure The ext2 FS 4. 3. The Files Virtual in disk File The System ext2 FS 4. The

More information

OPERATING SYSTEM. Chapter 12: File System Implementation

OPERATING SYSTEM. Chapter 12: File System Implementation OPERATING SYSTEM Chapter 12: File System Implementation Chapter 12: File System Implementation File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management

More information

File Systems. Martin Děcký. DEPARTMENT OF DISTRIBUTED AND DEPENDABLE SYSTEMS

File Systems. Martin Děcký. DEPARTMENT OF DISTRIBUTED AND DEPENDABLE SYSTEMS File Systems Martin Děcký DEPARTMENT OF DISTRIBUTED AND DEPENDABLE SYSTEMS http://d3s.mff.cuni.cz/ CHARLES UNIVERSITY IN PRAGUE FACULTY OF MATHEMATICS AND PHYSICS MS-DOS FAT History 1977 1996 FAT32 FAT12

More information

CSE 451: Operating Systems. Sec$on 8 Project 2b wrap- up, ext2, and Project 3

CSE 451: Operating Systems. Sec$on 8 Project 2b wrap- up, ext2, and Project 3 CSE 451: Operating Systems Sec$on 8 Project 2b wrap- up, ext2, and Project 3 Project 2b Ü Make sure to read thoroughly through the requirements for the writeup in part 6 and answer every ques$on Ü There

More information

CIT 470: Advanced Network and System Administration. Topics. Filesystems and Namespaces. Filesystems

CIT 470: Advanced Network and System Administration. Topics. Filesystems and Namespaces. Filesystems CIT 470: Advanced Network and System Administration Filesystems Slide #1 Topics 1. Filesystems and Namespaces 2. Filesystem Types 3. Inodes and Superblocks 4. Network Filesystems Slide #2 Filesystems and

More information

CSE506: Operating Systems CSE 506: Operating Systems

CSE506: Operating Systems CSE 506: Operating Systems CSE 506: Operating Systems File Systems Traditional File Systems FS, UFS/FFS, Ext2, Several simple on disk structures Superblock magic value to identify filesystem type Places to find metadata on disk

More information

File Systems: Fundamentals

File Systems: Fundamentals File Systems: Fundamentals 1 Files! What is a file? Ø A named collection of related information recorded on secondary storage (e.g., disks)! File attributes Ø Name, type, location, size, protection, creator,

More information

UNIX File Systems. How UNIX Organizes and Accesses Files on Disk

UNIX File Systems. How UNIX Organizes and Accesses Files on Disk UNIX File Systems How UNIX Organizes and Accesses Files on Disk Why File Systems File system is a service which supports an abstract representation of the secondary storage to the OS A file system organizes

More information

Chapter 12: File System Implementation

Chapter 12: File System Implementation Chapter 12: File System Implementation Chapter 12: File System Implementation File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management Efficiency

More information

Chapter 12: File System Implementation

Chapter 12: File System Implementation Chapter 12: File System Implementation Silberschatz, Galvin and Gagne 2013 Chapter 12: File System Implementation File-System Structure File-System Implementation Allocation Methods Free-Space Management

More information

File Systems: Fundamentals

File Systems: Fundamentals 1 Files Fundamental Ontology of File Systems File Systems: Fundamentals What is a file? Ø A named collection of related information recorded on secondary storage (e.g., disks) File attributes Ø Name, type,

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 25 File Systems Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ Q 2 Data and Metadata

More information

Chapter 11: Implementing File Systems

Chapter 11: Implementing File Systems Silberschatz 1 Chapter 11: Implementing File Systems Thursday, November 08, 2007 9:55 PM File system = a system stores files on secondary storage. A disk may have more than one file system. Disk are divided

More information

INF1060: Introduction to Operating Systems and Data Communication. Pål Halvorsen. Wednesday, October 13, 2010

INF1060: Introduction to Operating Systems and Data Communication. Pål Halvorsen. Wednesday, October 13, 2010 INF1060: Introduction to Operating Systems and Data Communication Pål Halvorsen Wednesday, October 13, 2010 Overview (Mechanical) Disks Disk scheduling Memory/buffer caching File systems Disks Disks...

More information

File systems Computer Forensics

File systems Computer Forensics Mag. iur. Dr. techn. Michael Sonntag File systems Computer Forensics E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm Institute for Information Processing and Microprocessor

More information

Project 3: An Introduction to File Systems. COP 4610 / CGS 5765 Principles of Operating Systems

Project 3: An Introduction to File Systems. COP 4610 / CGS 5765 Principles of Operating Systems Project 3: An Introduction to File Systems COP 4610 / CGS 5765 Principles of Operating Systems Introduction Project 3 learning objectives File system design and implementation File system testing Data

More information

Copyright 2016 by Martin Krug. All rights reserved.

Copyright 2016 by Martin Krug. All rights reserved. MS Managed Service Copyright 2016 by Martin Krug. All rights reserved. Reproduction, or translation of materials without the author's written permission is prohibited. No content may be reproduced without

More information

File Systems. CS170 Fall 2018

File Systems. CS170 Fall 2018 File Systems CS170 Fall 2018 Table of Content File interface review File-System Structure File-System Implementation Directory Implementation Allocation Methods of Disk Space Free-Space Management Contiguous

More information

Disk divided into one or more partitions

Disk divided into one or more partitions UNIX File System Filesystem structure Disk divided into one or more partitions independent file system on each partition Sector 0 contains the Master Boot Record (MBR) MBR contains partition table one

More information

Filesystem. Disclaimer: some slides are adopted from book authors slides with permission 1

Filesystem. Disclaimer: some slides are adopted from book authors slides with permission 1 Filesystem Disclaimer: some slides are adopted from book authors slides with permission 1 Recap Blocking, non-blocking, asynchronous I/O Data transfer methods Programmed I/O: CPU is doing the IO Pros Cons

More information

Chapter 10: File System Implementation

Chapter 10: File System Implementation Chapter 10: File System Implementation Chapter 10: File System Implementation File-System Structure" File-System Implementation " Directory Implementation" Allocation Methods" Free-Space Management " Efficiency

More information

Aplikačný dizajn manuál

Aplikačný dizajn manuál Aplikačný dizajn manuál Úvod Aplikačný dizajn manuál je súbor pravidiel vizuálnej komunikácie. Dodržiavaním jednotných štandardov, aplikácií loga, písma a farieb pri prezentácii sa vytvára jednotný dizajn,

More information

A file system is a clearly-defined method that the computer's operating system uses to store, catalog, and retrieve files.

A file system is a clearly-defined method that the computer's operating system uses to store, catalog, and retrieve files. File Systems A file system is a clearly-defined method that the computer's operating system uses to store, catalog, and retrieve files. Module 11: File-System Interface File Concept Access :Methods Directory

More information

COMP 530: Operating Systems File Systems: Fundamentals

COMP 530: Operating Systems File Systems: Fundamentals File Systems: Fundamentals Don Porter Portions courtesy Emmett Witchel 1 Files What is a file? A named collection of related information recorded on secondary storage (e.g., disks) File attributes Name,

More information

F 4. Both the directory structure and the files reside on disk Backups of these two structures are kept on tapes

F 4. Both the directory structure and the files reside on disk Backups of these two structures are kept on tapes Directory Structure A collection of nodes containing information about all files Directory Files F 1 F 2 F 3 F 4 F n Both the directory structure and the files reside on disk Backups of these two structures

More information

Main Points. File layout Directory layout

Main Points. File layout Directory layout File Systems Main Points File layout Directory layout File System Design Constraints For small files: Small blocks for storage efficiency Files used together should be stored together For large files:

More information

Advanced UNIX File Systems. Berkley Fast File System, Logging File System, Virtual File Systems

Advanced UNIX File Systems. Berkley Fast File System, Logging File System, Virtual File Systems Advanced UNIX File Systems Berkley Fast File System, Logging File System, Virtual File Systems Classical Unix File System Traditional UNIX file system keeps I-node information separately from the data

More information

CS 4284 Systems Capstone

CS 4284 Systems Capstone CS 4284 Systems Capstone Disks & File Systems Godmar Back Filesystems Files vs Disks File Abstraction Byte oriented Names Access protection Consistency guarantees Disk Abstraction Block oriented Block

More information