This project implements a basic Distributed File System (DFS) in C using socket programming. It was developed as part of the COMP-8567: Operating Systems course at the University of Windsor during Summer 2025.
The system mimics a multi-server file storage mechanism where:
- All clients interact only with Server S1
- Based on file extensions, S1 routes files to other backend servers:
.cβ stored in S1.pdfβ routed to S2.txtβ routed to S3.zipβ routed to S4
Each server runs on a different terminal and communicates via sockets.
istributed-file-system/ β βββ client/ β βββ w25clients.c β βββ servers/ β βββ S1.c β βββ S2.c β βββ S3.c β βββ S4.c β βββ docs/ β βββ W25_Project.pdf β βββ .gitignore βββ README.md βββ LICENSE (optional)
uploadf filename destination_path
downlf filename
removef filename
downltar filetype
dispfnames pathname
## π Compilation
gcc -o S1 servers/S1.c
gcc -o S2 servers/S2.c
gcc -o S3 servers/S3.c
gcc -o S4 servers/S4.c
gcc -o client client/w25clients.c
## π§ͺ Run Instructions
Open separate terminals for S1, S2, S3, and S4.
Run each server binary.
Then run the client and enter any of the supported commands.
## π Documentation
Project description and command details can be found in docs/W25_Project.pdf.