Skip to content

About

A mini Unix-like OS implementation in C featuring a custom ELF loader, shell, CPU scheduler (Round Robin), lazy loading, multithreading, and core OS concepts like paging, IPC, and synchronization.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

💻 OS-in-parts

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++.


🛠️ Core Modules

Simple-loader

A custom execution engine that parses ELF (Executable and Linkable Format) binaries, maps segments into memory, and transfers control to the program entry point.

Simple-shell

A robust command-line interface featuring process forking, command execution, and support for system-level features like I/O redirection and piping.

Simple-Scheduler

An implementation of fundamental CPU scheduling policies (FCFS, Round Robin, etc.) designed to manage process lifecycles and evaluate throughput.

Smart-Scheduler

An advanced iteration of the scheduler, incorporating more sophisticated logic for task prioritization and resource allocation.

Os-Multithreader

A deep dive into parallelism, utilizing the pthreads library to manage concurrent execution, synchronization primitives, and thread-safe data handling.


🚀 Technical Overview

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

⚙️ Quick Start

1. Clone the environment

git clone https://github.com/nikhil3495/Operating-System-Implementation.git
cd Operating-System-Implementation

2. Build a specific module

Each directory contains a Makefile for streamlined compilation.

# Example for the shell module
cd Simple-shell
make
./shell

Important

These implementations are designed for Linux environments and require gcc/g++ and make utilities.


📝 Purpose

Created for academic research and hands-on learning in the field of Systems Programming and Operating System Architecture.


📧 Contact

Nikhil Bansiwal
Indraprastha Institute of Information Technology, Delhi


⭐ Star this repository if you find it useful for learning OS concepts!

About

A mini Unix-like OS implementation in C featuring a custom ELF loader, shell, CPU scheduler (Round Robin), lazy loading, multithreading, and core OS concepts like paging, IPC, and synchronization.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages