NCTU OSDI Lab 8: File System Meets Hardware
Documentation: Lab 8
Lab 8 Demo Release
Required
- Required 1
- Get the FAT32 partition.
- Parse the FAT32’s metadata and set up the mount.
- Requried 2
- Look up and open a file in FAT32.
- Read/Write a file in FAT32.
Elective
- Elective 1
- Create a file in FAT32.
- Elective 2
- Implement a FAT32 with LFN support. You should create/lookup a file with special characters(e.g. Chinese) in its name.
- Elective 3
- Implement a mechanism that each device can register itself to a VFS.
- Implement a VFS interface and a tmpfs method for
int mknod(const char* pathname, int dev_id)
- Create a sdcard device file. A user can read or write an SD card by reading or writing its device file.
- Create a UART device file as the console, A user can get/print characters from/to console by reading or writing its device file.
- Elective 4
- Implement a component name cache mechanism for faster pathname lookup.
- Implement a page cache mechanism for faster file read and write.
- Implement a VFS interface and a FAT32 method for
int sync()
Questions
- Explain how an OS supports automatically mounting file systems after plug in a USB flash drive into a computer.
- How to implement a component cache mechanism if a file has multiple names (because of hard links)
- Does tmpfs need sync method?