🗊Презентация WritingFS4Fun

Категория: Образование
Нажмите для полного просмотра!
WritingFS4Fun, слайд №1WritingFS4Fun, слайд №2WritingFS4Fun, слайд №3WritingFS4Fun, слайд №4WritingFS4Fun, слайд №5WritingFS4Fun, слайд №6WritingFS4Fun, слайд №7WritingFS4Fun, слайд №8WritingFS4Fun, слайд №9WritingFS4Fun, слайд №10WritingFS4Fun, слайд №11WritingFS4Fun, слайд №12WritingFS4Fun, слайд №13WritingFS4Fun, слайд №14WritingFS4Fun, слайд №15WritingFS4Fun, слайд №16WritingFS4Fun, слайд №17WritingFS4Fun, слайд №18WritingFS4Fun, слайд №19WritingFS4Fun, слайд №20WritingFS4Fun, слайд №21

Вы можете ознакомиться и скачать презентацию на тему WritingFS4Fun. Доклад-сообщение содержит 21 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Writing Linux FS
4 FUN
Описание слайда:
Writing Linux FS 4 FUN

Слайд 2





Outline
Why
Main Concepts and bit of history
Earlier design decisions
On disk layout
Implementing own FS 
On disk layout
Code Fragments:
Kernel Implementation
Other tools mkfs, fsdb
Описание слайда:
Outline Why Main Concepts and bit of history Earlier design decisions On disk layout Implementing own FS On disk layout Code Fragments: Kernel Implementation Other tools mkfs, fsdb

Слайд 3





Why this talk?!
Cons
Writing FS is quite time consuming (approx. 10 years…)
Just few production ready FS, many abandoned or not truly maintained
Pros
Learning: Address specific gap
Solving other complicated problems
Storage stack is complicated and usually became a bottleneck
Data is foundation of most todays application
Описание слайда:
Why this talk?! Cons Writing FS is quite time consuming (approx. 10 years…) Just few production ready FS, many abandoned or not truly maintained Pros Learning: Address specific gap Solving other complicated problems Storage stack is complicated and usually became a bottleneck Data is foundation of most todays application

Слайд 4





Early days: 6th ed. of UNIX 
File system: one internal component of the kernel
Not possible to use other FS
Block size as fixed 512 bytes
Possible indirect block (up to 3 level depth)
Max size of file: 32*32*32 data blocks
Описание слайда:
Early days: 6th ed. of UNIX File system: one internal component of the kernel Not possible to use other FS Block size as fixed 512 bytes Possible indirect block (up to 3 level depth) Max size of file: 32*32*32 data blocks

Слайд 5





Early days: 6th ed. of UNIX 
struct inode  {
    i_mode	// file type*
    i_nlink	// nr of hard links
    i_uid
    i_gid
    i_size	
    i_addr[7] // 7 pointers to blocks
    i_mtime   // modify time
    i_atime   // access time
}
Описание слайда:
Early days: 6th ed. of UNIX struct inode { i_mode // file type* i_nlink // nr of hard links i_uid i_gid i_size i_addr[7] // 7 pointers to blocks i_mtime // modify time i_atime // access time }

Слайд 6





File System Switch
Описание слайда:
File System Switch

Слайд 7





SunOS VFS/vnode
Описание слайда:
SunOS VFS/vnode

Слайд 8





On Disk Layout: UFS
Initial UNIX FS has poor performance
UFS new design concerned the layout of data on disks i.e:
Track contains same amount of data
The old UNIX FS was only able to use 3 to 5 percent of the disk bandwidth while the FFS up to 47 percent of the disk bandwidth*
Описание слайда:
On Disk Layout: UFS Initial UNIX FS has poor performance UFS new design concerned the layout of data on disks i.e: Track contains same amount of data The old UNIX FS was only able to use 3 to 5 percent of the disk bandwidth while the FFS up to 47 percent of the disk bandwidth*

Слайд 9





On Disk layout: EXT2
EXT2 divide filesystem to number of block groups
inode allocation done during mkfs 
Fixed offset for first Block Group, space for bootloader
Описание слайда:
On Disk layout: EXT2 EXT2 divide filesystem to number of block groups inode allocation done during mkfs Fixed offset for first Block Group, space for bootloader

Слайд 10





Sample implementation dummyfs
Implemented as in kernel module (possible to implement in user space using FuseFS)
Provide basic functionality necessary to mount read write files to the disk
Pseudo modern on disk layout
Good starting point to learn internal/implementing more advanced features
Not using kernel caching mechanisms
Описание слайда:
Sample implementation dummyfs Implemented as in kernel module (possible to implement in user space using FuseFS) Provide basic functionality necessary to mount read write files to the disk Pseudo modern on disk layout Good starting point to learn internal/implementing more advanced features Not using kernel caching mechanisms

Слайд 11





Inode structures:
Описание слайда:
Inode structures:

Слайд 12





On Disk layout
Simple but not trivial
Inode table and Inode bitmap are ‘files’ which allow them to scale
Blocks addresses are 32 bit integers which define limits
Описание слайда:
On Disk layout Simple but not trivial Inode table and Inode bitmap are ‘files’ which allow them to scale Blocks addresses are 32 bit integers which define limits

Слайд 13





Basic components:
Main implementation of specific components in
dir.c 
file.c 
inode.c 
super.c
Structures inside dummy_fs.h shared by kernel and user space components
Module implementation in dummyfs.c: registration of FS, allocate memory for inodes
Описание слайда:
Basic components: Main implementation of specific components in dir.c file.c inode.c super.c Structures inside dummy_fs.h shared by kernel and user space components Module implementation in dummyfs.c: registration of FS, allocate memory for inodes

Слайд 14





In-Core structures
struct dm_inode {
    u8     i_version;
    u8     i_flags;
    u32    i_mode; 
    u32    i_ino;  
    u16    i_uid;  
    u32    i_ctime;
    u32    i_mtime;
    u32    i_size; 
    u32    i_addrb[DM_EXT_SIZE];
    u32    i_addre[DM_EXT_SIZE];
};
Описание слайда:
In-Core structures struct dm_inode { u8 i_version; u8 i_flags; u32 i_mode; u32 i_ino; u16 i_uid; u32 i_ctime; u32 i_mtime; u32 i_size; u32 i_addrb[DM_EXT_SIZE]; u32 i_addre[DM_EXT_SIZE]; };

Слайд 15





Fragments: Mount
// mount process:
struct file_system_type dummyfs_type = {
    .name = "dummyfs",     
    .mount = dummyfs_mount,
    .kill_sb = dummyfs_kill_sb, 
    .fs_flags = FS_REQUIRES_DEV
};
register_filesystem(&dummyfs_type)
Описание слайда:
Fragments: Mount // mount process: struct file_system_type dummyfs_type = { .name = "dummyfs", .mount = dummyfs_mount, .kill_sb = dummyfs_kill_sb, .fs_flags = FS_REQUIRES_DEV }; register_filesystem(&dummyfs_type)

Слайд 16





Fragments:
lookup
“implement ls”
Описание слайда:
Fragments: lookup “implement ls”

Слайд 17





Fragment read/write
Описание слайда:
Fragment read/write

Слайд 18





User Space tools
mkfs 
Initialize the device to be used by FS.
Write initial FS state
fsdb
Development tool reading structures from raw device
Understand on disk structure
fsck
Try to recover inconsistent state of FS (due to crash/corruption).
Описание слайда:
User Space tools mkfs Initialize the device to be used by FS. Write initial FS state fsdb Development tool reading structures from raw device Understand on disk structure fsck Try to recover inconsistent state of FS (due to crash/corruption).

Слайд 19





Fragment mkfs
Описание слайда:
Fragment mkfs

Слайд 20





Other resources:
J.Lions: "A commentary on the sixth edition UNIX Operating System”
V6 sources: https://minnie.tuhs.org/cgi-bin/utree.pl
S.R. Kleiman (86): “Vnodes: An Architecture for Multiple File System Types in Sun UNIX”
McKusick (84): “A Fast File System for UNIX.”
Steve D. Pate: "UNIX Filesystems: Evolution, Design and Implementation”
github.com/gotoco/dummyfs
Описание слайда:
Other resources: J.Lions: "A commentary on the sixth edition UNIX Operating System” V6 sources: https://minnie.tuhs.org/cgi-bin/utree.pl S.R. Kleiman (86): “Vnodes: An Architecture for Multiple File System Types in Sun UNIX” McKusick (84): “A Fast File System for UNIX.” Steve D. Pate: "UNIX Filesystems: Evolution, Design and Implementation” github.com/gotoco/dummyfs

Слайд 21





Q&A
Описание слайда:
Q&A



Теги WritingFS4Fun
Похожие презентации
Mypresentation.ru
Загрузить презентацию