PA 2 - FAT Filesystem
Class: CSCE-313
Notes:
Introduction & Learning Objectives
In this PA, you will build a user-space library (libfs) that implements a simplified FAT (File Allocation Table) file system. Instead of interacting with a physical hard drive, your file system will operate on a virtual disk - a standard file on your Linux environment that has been artificially divided into fixed-size 4096-byte blocks.
By the end of this assignment, you will understand:
-
Block-based I/O: How operating systems read and write data in fixed chunks rather than byte-by-byte.
-
File System Metadata: How structs are packed into blocks to track file locations, sizes, and free space.
-
Linked Allocation: How the File Allocation Table stitches fragmented data blocks together into contiguous files.
-
File Descriptors: How the OS manages state for multiple open files simultaneously.