In this project, we study concepts of file allocation methods by diving into one of the three methods, linked allocation. To apply our knowledge, we constructed a user-space FAT32 file system that loads in a standard FAT32 disk image, allowing the user to run common file-system commands.
Clone the repo, and type ./mfs into your terminal.
| Command | Description |
|---|---|
| open <FAT32 image name> | Opens the inputted FAT32 disk image |
| close | Closes the currently open FAT32 disk image |
| info | Prints out information about the loaded file system in both decimal and hexadecimal |
| stat <file name / directory name> | Prints out attributes and starting cluster number of inputted folder/directory |
| get <file name> | Retrieves file from FAT32 image and places it in current working directory |
| cd <directory path> | Change directory |
| ls | Lists files in current directory |
| read <file name> <position> <# of bytes> | Prints out n bytes of the inputted file to console from the inputted starting position |
| del <file name> | Deletes inputted file name from current directory |
| undel | Undeletes last deleted file |