7 File Systems
Week 10-12: November 7-22, 2022
- DINOS Chapter 13
- A Fast File System for Unix* by Marshall Kirk McKusick, William N. Joy, Samuel J. Leffler, Robert S. Fabry
- The Design and Implementation of a Log-Structured File System by Mendel Rosenblum and John K. Ousterhout
- LOVE Chapter 16
- Analysis and Evolution of Journaling File Systems by Vijayan Prabhakaran, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau
- LOVE Chapter 13. The first few pages are a good overview of how to think about an interface that works regardless of the underlying file system implementation. You can skim/skip the pages of API details.
7.1 A video summary
7.1.4 Journaling
Learning Objectives
- What benefits does a file abstraction bestow over simple storage blocks?
- Should a file system be part of the kernel? What assurances can a kernel provide with respect to files?
- What are the differences between soft and hard links?
- Illustrate how some certain interface design choices have immediate file system implementation implications. Examine this issue through the concepts of access rights vs. capabilities.
- What are the drawbacks of the FAT file system and why are inodes an improvement?
- How can inodes support larger files than what is possible given a block size and the maximum levels of indirection possible?
- What were the major redesigns introduced in the Unix Fast File System? What problems were these redesigns addressing and how?
- What are some of the pros and cons of using free block lists vs. free block bitmaps?
- Elaborate on the similarities and differences between VM and FS and in particular the swap space and the page cache?
- What are the benefits of a unified page and buffer cache? Why did earlier operating systems maintain separate caches?
- Why was using a hash-table to track pages in the cache discontinued in Linux 2.6? How does the current implementation of radix trees to track file blocks in the cache an improvement?
- When is a file system inconsistent?
- How does caching and write-back policies interplay to cause such inconsistencies?
- Compare the different file systems, Journaling, Log-structured and Fast File Systems in terms of their performance on different workloads and choice in recovery-time/write-overhead tradeoff.
- Consider different storage technologies and how you would design a FS that takes advantage of the device’s unique characteristics.