Virtual Filesystem Development in C
Budget: $30 – $250 USD
Develop a virtual filesystem named ExFS2, implemented entirely in C, which uses regular files in the host OS as fixed-size storage segments. Each segment is exactly 1MB and acts as a raw block device containing both file data and metadata. These segment files are the only files the filesystem should create, manage, and interact with.
*Key Requirements
Segment Design:
Each segment is a single 1MB file on the host.
The filesystem must store everything inside the segment files: superblock, inode table, block and inode bitmaps, and data blocks.
There must be no reliance on moving or copying files using the host OS. The entire filesystem logic must operate within your segment format and data structures.
File Storage:
All types of files (text, binary, etc.) must be supported.
File content must be read and written using fread/fwrite, treating them as binary blobs — avoid using string functions.
The file content must be stored as blocks inside the segment files, not as standalone host files.
File Extraction & Verification:
When a file is stored and later extracted from ExFS2, it must be bit-for-bit identical to the original.
This can be tested using tools like diff to ensure no corruption or data loss during the storage and retrieval process.
*DO not DO
Do not simply copy/move files around the host filesystem.
Do not rely on host OS file operations to emulate file storage.
Do not store external metadata outside the segment files.
*Key Requirements
Segment Design:
Each segment is a single 1MB file on the host.
The filesystem must store everything inside the segment files: superblock, inode table, block and inode bitmaps, and data blocks.
There must be no reliance on moving or copying files using the host OS. The entire filesystem logic must operate within your segment format and data structures.
File Storage:
All types of files (text, binary, etc.) must be supported.
File content must be read and written using fread/fwrite, treating them as binary blobs — avoid using string functions.
The file content must be stored as blocks inside the segment files, not as standalone host files.
File Extraction & Verification:
When a file is stored and later extracted from ExFS2, it must be bit-for-bit identical to the original.
This can be tested using tools like diff to ensure no corruption or data loss during the storage and retrieval process.
*DO not DO
Do not simply copy/move files around the host filesystem.
Do not rely on host OS file operations to emulate file storage.
Do not store external metadata outside the segment files.