Simple File System: OS_CourseDesign
2024 Operating Systems Course Design
Project Overview
This course design project involves creating a file system with essential functionalities, such as file creation, deletion, modification, and querying. Additionally, it includes user registration and login features. The file system employs a two-level directory structure, where the first level is the user account and the second level is the file system under the user account. To simplify the design, advanced features such as file sharing, file system security, and special file types (like pipe and device files) are not implemented.
Features and Implementation Status
User Commands
| Command |
Description |
Status |
register |
Register a user |
Completed |
login |
Login a user |
Completed |
logout |
Logout a user |
Completed |
listUsers |
Display user accounts and passwords |
Completed |
File Commands
| Command |
Description |
Status |
create |
Create a file |
Completed |
delete |
Delete a file |
Completed |
open |
Open a file |
Completed |
close |
Close a file |
Completed |
read |
Read a file |
Completed |
write |
Write to a file |
Completed |
move |
Move a file |
Completed |
copy |
Copy a file |
Completed |
paste |
Paste a file |
Completed |
flock |
Lock/Unlock a file |
Completed |
head -num |
Display first num lines of a file |
Completed |
tail -num |
Display last num lines of a file |
Completed |
lseek |
Move file read/write pointer |
Completed |
Directory Commands
| Command |
Description |
Status |
cd |
Change directory |
Completed |
dir |
Display current directory contents |
Completed |
mkdir |
Create a directory |
Completed |
rmdir |
Delete a directory |
Completed |
Disk Operations
| Command |
Description |
Status |
import |
Import contents from local disk to virtual disk |
Completed |
export |
Export contents from virtual disk to local disk |
Completed |
Multithreading Support
- One thread interacts with users, accepting requests and converting them into corresponding messages, which notify the backend thread maintaining the virtual disk driver. (Completed)
- The program can run multiple instances simultaneously, each accepting user requests, but only one backend thread maintains the virtual disk driver's contents. (Completed)
Summary and Improvements
During the project defense, the instructor noted that the /dir/ command's output format was not well-organized. It should display the directories and files in a list format for better readability.
Full Changelog: https://github.com/Luintal/Os_CourseDesign/commits/V1.2