Skip to content

naimurhamim/RaiMon-OS

Repository files navigation

💻 RaiMon-OS

OS Low Level Kernel Assembly Academic License

A lightweight, custom-built operating system developed for academic purposes — built from scratch to demonstrate core OS concepts.


📖 About

RaiMon-OS is a lightweight operating system built as an academic project to explore and demonstrate fundamental operating system concepts including bootloading, kernel initialization, memory management, process scheduling, and basic I/O handling.

The project was developed to gain hands-on experience with low-level systems programming, hardware interaction, and how modern operating systems function at their core.

RaiMon = Rai (Rashid) + Mon (Monitor) — a personal OS built to monitor and manage system resources.


⚙️ Core OS Concepts Implemented

┌─────────────────────────────────────────────┐
│                  RaiMon-OS                  │
├─────────────────────────────────────────────┤
│  [Bootloader]  →  [Kernel Init]             │
│       │                │                    │
│  [Memory Mgmt]    [Process Scheduler]       │
│       │                │                    │
│  [Basic Shell]    [I/O Handler]             │
└─────────────────────────────────────────────┘

✨ Features

Feature Description
🥾 Custom Bootloader Loads the OS kernel from disk at startup
🧠 Kernel Initialization Sets up CPU, memory, and core services
💾 Memory Management Basic allocation and management of RAM
Process Scheduling Simple scheduler to manage running tasks
⌨️ Basic Shell Command-line interface for user interaction
🖥️ Screen I/O Text output to the display
🔧 Interrupt Handling Handles hardware and software interrupts

🛠️ Tech Stack

Technology Purpose
Assembly (x86) Bootloader and low-level hardware routines
C / C++ Kernel and system services
QEMU / VirtualBox OS emulation and testing environment
NASM Assembler for x86 boot code
GCC Cross-Compiler Compiling kernel code for bare metal
Makefile Build automation

🗂️ Repository Contents

RaiMon-OS/
│
├── project proposal/                     # Initial project proposal documents
├── OS Progress presentation.pptx         # Mid-progress presentation slides
├── OS_presentation.pptx                  # Final OS presentation
├── MID progress ID (2101042,2101041).mkv # Mid-progress demo video
├── Project video.mp4                     # Final project demo video
└── README.md

📊 View Mid-Progress Presentation
📊 View Final Presentation
🎥 Watch Project Demo


🚀 How to Run

Requirements

  • QEMU (recommended) or VirtualBox
  • NASM assembler
  • GCC Cross-Compiler (i686-elf-gcc)
  • Make

Build & Run

# Clone the repository
git clone https://github.com/naimurhamim/RaiMon-OS.git
cd RaiMon-OS

# Build the OS image
make all

# Run in QEMU emulator
qemu-system-i386 -kernel raimon.bin

Run in VirtualBox

  1. Create a new VM → Type: Other, Version: Other/Unknown
  2. Attach the .iso or .bin as the boot media
  3. Start the VM

📐 OS Architecture

Hardware Layer
     │
  BIOS/UEFI
     │
  Bootloader  ← Written in Assembly (NASM)
     │
  Kernel       ← Written in C/C++
  ├── Memory Manager
  ├── Process Scheduler
  ├── Interrupt Handler (IDT/GDT)
  ├── Keyboard & Screen Driver
  └── Basic Shell (CLI)

🔮 Future Improvements

  • File system support (FAT12/FAT16)
  • Multi-tasking with proper context switching
  • Virtual memory and paging
  • Network stack (basic TCP/IP)
  • GUI / graphical shell
  • Driver framework for hardware support
  • System call interface

👨‍💻 Author

Rohan Mondal (ID: 2101041) MD Naimur Rashid (ID: 2101042)
Sourav Chakraborty (ID: 2101031)

Department of Internet of Things and Robotics Engineering
University of Frontier Technology, Bangladesh (UFTB)

GitHub


⭐ Star this repo if you're interested in low-level OS development!

Releases

Packages

Contributors