https://github.com/garyhtou/simple-network-file-system
A simple client-server Network File System (NFS) over a simulated block-level disk.
https://github.com/garyhtou/simple-network-file-system
client-server cpsc3500 disk file-system network-file-system nfs
Last synced: about 1 year ago
JSON representation
A simple client-server Network File System (NFS) over a simulated block-level disk.
- Host: GitHub
- URL: https://github.com/garyhtou/simple-network-file-system
- Owner: garyhtou
- Created: 2022-02-23T22:04:39.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-03-21T23:44:39.000Z (about 4 years ago)
- Last Synced: 2025-04-18T04:54:26.062Z (about 1 year ago)
- Topics: client-server, cpsc3500, disk, file-system, network-file-system, nfs
- Language: C++
- Homepage:
- Size: 918 KB
- Stars: 8
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📂 Simple Network File System
## About
This **client-server network file system** is built on top of a provided virtual
disk featuring an **indexed block allocation** approach. The disk includes a
**Superblock**, **Free block bitmap**, **Inodes** (for files and directories),
and **Datablocks**. The client and server communicate over a **persistent TCP
connection**.
### Supported commands
- `ls`: List the contents of the current directory
- `cd `: Change to a specified directory
- `home`: Switch to the home (root) directory (similar to `cd /` in Unix)
- `rmdir `: Remove a directory. The directory must be empty
- `create `: Create an empty file
- `append `: Append data to an existing file
- `stat `: Display information for a given file or directory
- `cat `: Display the contents of a file
- `head `: Display the first `n` bytes of the file
- `rm `: Remove a file
More information can be found [here](/assignment/Project4_NFS.pdf).
## Meet The Team
**Gary Tou** ([@garyhtou](https://github.com/garyhtou))
- Creating and connecting TCP socket (Shell)
- Executing commands (Shell)
- home, append, rm (FileSys)
- Receiving messages for Client (Helper)
- Object Orientated wrapped classes for the BasicFileSys ([WrappedFileSys](/src/WrappedFileSys.h))
**Harry Rudolph** ([@hankrud](https://github.com/HankRud))
- Parsing the command line (Shell)
- Formatting and outputting command messages (Shell)
- mkdir, cd, stat, rmdir in (FileSys)
- Receiving messages for Server (Helper)
- Message formatting
**Castel Villalobos** ([@impropernoun](https://github.com/impropernoun))
- Remote procedure call commands (Shell)
- ls, create, head, cat (FileSys)
- Parsing and executing (server)
- Sending messages (Helper)
- Error Handling