Skip to content

Created a simple virtual File System to implement my knowledge of Data Structures

Notifications You must be signed in to change notification settings

GgauravJ05/NextGen-Virtual-File-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

64 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NVFS Logo

πŸ“‚ NextGen Virtual File System (NVFS) πŸ“‚

A C-based system programming project that emulates core functionalities of UNIX-like file systems.

Language Platform Status


πŸš€ Features

  • Emulation of file system data structures:

    • Inode Table
    • File Table
    • User File Descriptor Table (UAREA)
    • Superblock
    • Disk Inode List Block
    • Data Blocks & Boot Block
  • Implementation of system calls:
    open, close, read, write, lseek, stat, chmod, unlink

  • Support for UNIX-like commands:
    ls, ls -l, ls -a, rm, cat, cd, chmod, cp, df, find, grep, ln, mkdir, pwd, touch, uname, man, mkfs

  • Demonstrates internal working of system calls and commands

  • Lightweight learning tool for File System architecture & algorithms


πŸ› οΈ Technology Stack

  • Language: C (System Programming)
  • Platform: Windows NT / Linux distributions
  • Architecture: Intel 32-bit processor
  • Interface: Command-Line Interface (CLI)

πŸ“– Project Overview

NVFS replicates the behavior of UNIX File Systems in a virtual environment, storing and manipulating records in primary storage (RAM).
It serves as a hands-on tool to learn how file systems are structured and how system calls interact with underlying data structures.


πŸ“‚ Data Structures

  • Inode – Represents files and metadata
  • File Table – Tracks open files
  • User File Descriptor Table (UAREA) – Maps user processes to files
  • Superblock – Contains global FS metadata
  • Disk Inode List Block – Manages inode storage
  • Data Blocks – Store actual file content

πŸ“Š Project Flow

  1. Initialize core data structures
  2. Create & manage files/directories
  3. Execute file system commands
  4. Handle system calls internally
  5. Display results on CLI

πŸ“š References

  • Advanced Programming in the UNIX Environment – W. Richard Stevens
  • UNIX File System documentation

πŸ’‘ Possible Improvements

  • GUI-based interface for visualization
  • 64-bit platform support
  • Extension to persistent storage instead of primary memory

πŸ“Œ Usage

# Compile
g++ nvfs.c -o nvfs

# Run
./nvfs

About

Created a simple virtual File System to implement my knowledge of Data Structures

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages