Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
21 слайд
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
2.09 MB
Просмотров:
50
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Writing Linux FS FUN](/documents_6/306c201dd29714273145492997cf6d14/img0.jpg)
Содержание слайда: Writing Linux FS
4 FUN
№2 слайд![Outline Why Main Concepts and](/documents_6/306c201dd29714273145492997cf6d14/img1.jpg)
Содержание слайда: 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](/documents_6/306c201dd29714273145492997cf6d14/img2.jpg)
Содержание слайда: 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 th ed. of UNIX](/documents_6/306c201dd29714273145492997cf6d14/img3.jpg)
Содержание слайда: 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 th ed. of UNIX](/documents_6/306c201dd29714273145492997cf6d14/img4.jpg)
Содержание слайда: 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](/documents_6/306c201dd29714273145492997cf6d14/img5.jpg)
Содержание слайда: File System Switch
№7 слайд![SunOS VFS vnode](/documents_6/306c201dd29714273145492997cf6d14/img6.jpg)
Содержание слайда: SunOS VFS/vnode
№8 слайд![On Disk Layout UFS Initial](/documents_6/306c201dd29714273145492997cf6d14/img7.jpg)
Содержание слайда: 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 EXT EXT divide](/documents_6/306c201dd29714273145492997cf6d14/img8.jpg)
Содержание слайда: 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](/documents_6/306c201dd29714273145492997cf6d14/img9.jpg)
Содержание слайда: 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](/documents_6/306c201dd29714273145492997cf6d14/img10.jpg)
Содержание слайда: Inode structures:
№12 слайд![On Disk layout Simple but not](/documents_6/306c201dd29714273145492997cf6d14/img11.jpg)
Содержание слайда: 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](/documents_6/306c201dd29714273145492997cf6d14/img12.jpg)
Содержание слайда: 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](/documents_6/306c201dd29714273145492997cf6d14/img13.jpg)
Содержание слайда: 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](/documents_6/306c201dd29714273145492997cf6d14/img14.jpg)
Содержание слайда: 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](/documents_6/306c201dd29714273145492997cf6d14/img15.jpg)
Содержание слайда: Fragments:
lookup
“implement ls”
№17 слайд![Fragment read write](/documents_6/306c201dd29714273145492997cf6d14/img16.jpg)
Содержание слайда: Fragment read/write
№18 слайд![User Space tools mkfs](/documents_6/306c201dd29714273145492997cf6d14/img17.jpg)
Содержание слайда: 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](/documents_6/306c201dd29714273145492997cf6d14/img18.jpg)
Содержание слайда: Fragment mkfs
№20 слайд![Other resources J.Lions quot](/documents_6/306c201dd29714273145492997cf6d14/img19.jpg)
Содержание слайда: 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 amp A](/documents_6/306c201dd29714273145492997cf6d14/img20.jpg)