CSCI 333

Storage Systems

Home | Schedule | Labs | Williams CS | Piazza

Lab 2b: FUSE FAT, part II

Assigned Monday, 04/01
Due Date Thursday 04/18. Saturday 04/20. Thursday 04/25 at 11pm

Objectives

In lab 2b, you will (1) finish the prototype FAT filesystem you began in lab 2a, and (2) add enough functionality to your prototype filesystem that it can be used to store actual data in mutable files.

The Assignment

Your assignment is to finish the FAT-like filesystem that you began in lab 2a. Your finished filesystem should have the following features:

Testing your File System

Many of your features can be tested using standard Unix utilities (the dd utility is especially useful—see `man dd`). I strongly recommend that you write special test code or scripts. As soon as you add functionality, create a unit test. Then run all of your existing unit tests to verify your new "feature" didn't break anything! I recommend creating a separate folder of test scripts.

Here are some things that I expect to work, so you are encouraged to create at least tests for these features:

The above is not an exhaustive list. Try to think of what has been (deliberately) omitted.

Important Notes

Refer back to the important notes in lab 2a to make sure you don't do anything silly. In addition:

Submission

Commit your code (it should be inside a single file named FAT.c) to your git repository. If you implement any additional features, describe them prominently in your README.md file so that you receive credit. So that I know that you have finished, please use the commit message "lab 2b submission" when you commit your final version. If you later realize that you were not done, you can continue to make additional commits, but it should be clear from the output of `git log` which version of your code is your submission.


This lab borrows heavily from an assignment created by Geoff Kuenning, with only slight modificatons.