Skip to content

Siple File Syetem

Latest

Choose a tag to compare

@Luintal Luintal released this 13 Jun 15:23
· 1 commit to main since this release
a99dcee

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