Expand description
Project 5: File System
Until project4, you have implemented the core features of modern OSes including memory, multi-threading, and scheduling. In Project 5, you will focus on implementing the file system, the abstraction of disk.
This project will involve introducing page cache for caching a file contents, and developing a fast file system with journaling to ensure data integrity and recoverability after a system crash or failure.
§Getting Started
To get started, navigate to the keos-project5/grader directory and run the
following command:
$ cargo run§Modifiable Files
In this project, you can modify the following files:
page_cache/mod.rsffs/inode.rsffs/journal.rsffs/fs_objects.rsadvanced_file_structs.rs
§Project Outline
Page Cache: Implement a caching mechanism to optimize access to frequently used files.Fast File System: Implement the simplfied version of fast file system with journaling.Advanced File System Call: Implement the advanced feature for the file system.
Re-exports§
pub use process::Thread;
Modules§
- advanced_
file_ structs - Extension of the
FileStruct. - ffs
- Fast File System (FFS).
- lru
- A Least Recently Used (LRU) Cache.
- page_
cache - Page Cache.
- process
- The process model for project5.
Macros§
Enums§
- Syscall
Number - Represents system call numbers used in project5.