This is not the current version of the class.

Lecture 10

Before break:
* Categorize system calls into fd only vs touching disk
* Narrow waist design
* Exokernel: narrow waist in library OS
* Object-oriented design natural for FSs

After break:
* File descriptor numbers can be index into array of pointers to file objects
* Where to store offset? Not in shared file object, not for each descriptor in proc
* struct file has refcount, offset, pointer to inode (vnode)
* procs can share fd table if they are threads of the same process
* Derek likes stackable file systems
* RAID - duplicate disks or xor disks
* error correcting codes exist!
* Lots of other things like NFS and FUSE and union file systems exist

Further reading:

Modern Operating Systems by Andrew S. Tanenbaum, a venerable OS textbook by the author of Minix. Chapter 4 is on file systems. In this lecture we covered material in §4.3.7 Virtual File Systems. RAID is covered in §5.4.1.

Operating Systems in Depth by Thomas W. Doeppner. The VFS material is in Chapter 1, especially §1.3.5. RAID is covered in §6.4.