Projects from my 3rd-year Systems Programming course at the National and Kapodistrian University of Athens.
This repository contains two file synchronization systems:
- FSS (FileSync System): Synchronizes local directories using Linux system calls, processes, and inotify.
- NFS (Network FileSync System): Synchronizes remote directories over the network using TCP sockets and threads.
Monitors source directories and mirrors changes to target directories in real time. Built using:
inotifyfor filesystem eventsfork/execfor spawning worker processes- Named pipes for communication between manager and console
Supports commands like add, sync, cancel, status, and shutdown. Includes a bash script for reporting and cleanup.
π See full details β
Enables directory synchronization across machines over TCP. Components:
nfs_manager: Coordinates tasks and threadsnfs_client: Passive server for file operationsnfs_console: User interface over TCP
Uses worker threads and a shared task queue to manage parallel file transfers. Clients support LIST, PULL, and PUSH commands.
π See full details β