A modular exploration of Operating System internals. This repository breaks down complex kernel-level responsibilities—loading, scheduling, and concurrency—into distinct, functional components implemented in C and C++.
A custom execution engine that parses ELF (Executable and Linkable Format) binaries, maps segments into memory, and transfers control to the program entry point.
A robust command-line interface featuring process forking, command execution, and support for system-level features like I/O redirection and piping.
An implementation of fundamental CPU scheduling policies (FCFS, Round Robin, etc.) designed to manage process lifecycles and evaluate throughput.
An advanced iteration of the scheduler, incorporating more sophisticated logic for task prioritization and resource allocation.
A deep dive into parallelism, utilizing the pthreads library to manage concurrent execution, synchronization primitives, and thread-safe data handling.
This project bridges the gap between OS theory and systems programming by focusing on:
- Binary Interaction: Directly handling ELF headers and memory mapping
- Process Lifecycle: Managing
fork(),exec(), and signal handling - Concurrency: Navigating the complexities of race conditions and thread synchronization
- Performance: Analyzing the efficiency of different scheduling heuristics
git clone https://github.com/nikhil3495/Operating-System-Implementation.git
cd Operating-System-ImplementationEach directory contains a Makefile for streamlined compilation.
# Example for the shell module
cd Simple-shell
make
./shellImportant
These implementations are designed for Linux environments and require gcc/g++ and make utilities.
Created for academic research and hands-on learning in the field of Systems Programming and Operating System Architecture.
Nikhil Bansiwal
Indraprastha Institute of Information Technology, Delhi
- 📧 Email: nikhil24381@iiitd.ac.in
- 💼 LinkedIn: linkedin.com/in/nikhil-bansiwal-095376313/
- 🐙 GitHub: github.com/nikhil3495
⭐ Star this repository if you find it useful for learning OS concepts!