Competition Topic: Basic File System and RAID
Goals
The final submission should consist of the source code and a series of binary files, which should be extracted to /usr/local/bin.
It should correctly format the disk:
sudo mkfs.myfs /dev/sda1
Of course, you can also choose not to format a physical disk and instead use a virtual disk file:
dd if=/dev/zero of=/tmp/disk.img bs=1G count=1
sudo mkfs.myfs /tmp/disk.img
Then, you can mount the filesystem to a directory:
sudo mount -t myfs /dev/sda1 /mnt
and allow automatic mounting using the /etc/fstab file:
/dev/sda1 /mnt myfs defaults 0 0
Limitations
The entire project must be written in C\C++\Rust\Go\Erlang\C#\Java. The use of third-party libraries is allowed.
Support for devices such as SATA, NVME, USB, and SD cards is required.
The implemented file system must support:
- File creation, deletion, reading, and writing
- File extension and truncation
- Reporting of free space
- File permission control
- Software RAID0, RAID1, and RAID5
Rating
Submissions that do not meet the above standards will be rejected.
Scoring will be based on the following criteria (not mandatory requirements):
- Performance: Solid-state 7 read / 3 write
- Performance: Mechanical 7 read / 3 write
- Incident recovery capability (whether it uses Copy On Write)
- RAID 0 speed gain (whether RAID is reasonably implemented)
- Whether it can be used as a system disk (mounted to
/and running a complete Linux)
Not sure where to start? Take a look at FUSE first!
FUSE provides an extremely easy-to-implement interface, regardless of the programming language you use. Start writing against it, and you will quickly find that your file system works!
Work Submission
Anyone can participate and submit an entry.
If you want to participate, you can start writing your code today.
Your code must be licensed under the MIT License. It must be submitted to https://git.aiursoft.cn . You must clearly and briefly explain how to compile it in REAMDE.md, or provide a Dockerfile for compilation.
After compilation, we will attempt to use it to format virtual disks and physical hard drives, and we will test various features.
Submission deadline: September 1, 2024. Please submit before the deadline. After submitting, please send an email to [email protected].
Awards
Ultimately, the three works that achieve the most ideal and production-significant implementation of all features will be awarded First, Second, and Third Place.
- First Place Prize: One Minisforum MS01 All-in-One 10G Mini PC (Barebone)
- Second Place Prize: One Dell Optiplex Mini PC
- Third Place Prize: Oral-B Electric Toothbrush
Comments (0)
No comments yet. Be the first to leave one!