Skip to content

Dhaval1512/Distributed-File-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Project Description

This project is a Distributed File System developed in C using UNIX socket programming. It simulates a real-world system where files are routed and stored based on their type, all through a centralized interface. Below are the key highlights:

  • ๐Ÿ“ Modular Server Architecture

    • S1: Main server that handles client requests and routes files
    • S2: Stores .pdf files
    • S3: Stores .txt files
    • S4: Stores .zip files
  • ๐Ÿ’ป Client Interface (w25clients)

    • Command-line based client tool
    • Interacts only with S1, unaware of other servers
    • Allows upload, download, delete, list, and tar operations
  • ๐Ÿ” Concurrent Processing

    • S1 uses fork() to serve multiple clients simultaneously
    • S2, S3, S4 use threads (pthreads) for parallel handling of requests
  • ๐Ÿง  Intelligent File Routing

    • .c files are stored directly in ~/S1
    • .pdf, .txt, and .zip files are forwarded to S2, S3, and S4 respectively
    • Non-.c files are deleted from S1 after being forwarded
  • ๐Ÿ“‚ File Operations Supported

    • uploadf <filename> <~S1/path>
    • downlf <~S1/filepath>
    • removef <~S1/filepath>
    • dispfnames <~S1/dir>
    • downltar <filetype>
  • ๐Ÿ›  Core Concepts Demonstrated

    • Socket programming
    • Inter-process and multi-threaded communication
    • File I/O and directory management
    • Distributed system behavior using local simulation

This project is ideal for understanding system-level programming and networking in a Linux environment. It provides hands-on experience with real-world tools like sockets, processes, threads, and file systems.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages