CMPSC 473 - Project #4 - Extended Attributes

Due Date: April 29, 2009 (11:59pm). 100 points

Single person project. Do your own work!

In this project, you will add a simplified extended attributes functionality to a RAM disk file system that is provided. While this code is not based directly on any OS implementation, it does share the common concepts from a UNIX file system. The code largely follows the extended attribute definitions shown in the manpages for fsetxattr and for fgetxattr -- not as complete and I give you lengths. The full tarball for the project is available here.

In particular, you are going to be required to implement four functions in the file system implementation:

The file system structures are defined in the file cse473-filesys.h. The challenge is to understand the layout of these structures in blocks on the RAM disk. Below is a diagram outlining the blocks in the on-disk file system.

This project will focus on two separate data blocks, File Xattr Control Blocks (attribute blocks) and Xattr Data Blocks (value blocks). These are shown in this diagram.

In the assignment, an output file shows the sequence of commands and responses for your file system. You will run 5 commands to generate this output: ./cse473-p4 your_fs cmdi where cmdi is the ith command for (e.g., cmd1 for the first). This program is deterministic, so your output should match mine (bug disclaimer here).

Grading:


Trent Jaeger