Operating Systems 2017F Lecture 15
Jump to navigation
Jump to search
Video
The video from the lecture given on Nov. 7, 2017 is now available. Unfortunately, the video cut out halfway through; audio is also available however.
Notes
In Class
Lecture 15 ---------- What's a filesystem? - persistent data structure organized around fixed allocation units (blocks) - maps hierarchical names (keys) to values - provide a file-like API (open, read, write, close, etc) What does it mean to "make" a filesystem? - initialize the data structure - "formatting" a disk Physical versus logical size of a file - logical: the "size" your program sees when accessing the file - physical: how much space the file takes up on disk Physical is in terms of blocks - fixed units of storage allocation - ext4 has 4k blocks - default for many command line utilities is 1k blocks Kernel programming - you may destroy the system you are working on AT ANY TIME - HAVE GOOD BACKUPS - rsync is your friend Kernel modules - way of splitting up kernel functionality so everything doesn't have to load at boot - code loaded as part of the initial boot image is hard to get rid of at runtime - why do we need modules? why not processes? - no new mechanisms - increased security (restricted access) - "microkernel" approach - instead of code talking in supervisor mode, processes do IPC - filesystems - drivers - networking - minix, QNX, GNU hurd - Linux is a "monolithic" kernel. Why? - performance: context switches are expensive - techniques to make microkernels fast can be adopted by monolithic kernels to make them even faster - security benefit is illusory - if you control the filesystem process, you already own everything