A fully handcrafted operating system from scratch in C + Assembly, booting with a custom bootloader, entering protected mode, and running a feature-rich CLI
OS.VIDEO.ROHIT.mp4
RohitOS/
├── bootloader.asm # 16-bit bootloader to load kernel
├── disk_load.asm # Sector loader (INT 13h)
├── gdt.asm # GDT for protected mode
├── kernel/
│ ├── kernel_entry.asm # Jump into 32-bit mode
│ ├── kernel.c # Core logic, splash, progress, init
│ ├── cli.c # Command parser + dispatcher
│ └── cli.h # CLI header
├── lib/
│ ├── stdio.c/.h # Custom print() and console I/O
│ └── string.c/.h # Basic string ops (no libc)
├── linker.ld # Custom linker script
├── Makefile # Complete build system
├── build/ # Compiled output binaries
└── README.md # This file 📄
- 🔹 Custom 16-bit bootloader
- 🔹 Protected mode (32-bit) kernel
- 🔹 Fully functional CLI shell
- 🔹 ASCII splash screen + loading bar
- 🔹 No libc – all string/IO functions built manually
- 🔹 System uptime tracking
- 🔹 Custom command parsing
- 🔹 Print with no standard output
- 🔹 Written in pure C and NASM
| Command | Description |
|---|---|
help |
Show all commands |
clear |
Clear the terminal screen |
ver |
Show OS version |
uptime |
Show system uptime in seconds |
date |
Show kernel build date/time |
whoami |
Print the current user |
sysinfo |
Show system info summary |
shutdown |
Halt execution (hlt loop) |
echo |
Print custom text |
calc |
Add, subtract, multiply, divide |
timer |
Countdown timer |
hex |
Convert decimal to hexadecimal |
bin |
Convert decimal to binary |
fortune |
Show a random coding quote |
nasmgccwith 32-bit support (-m32)ldQEMU(or Bochs/VirtualBox for ISO testing)
make clean
make # Assembles + compiles everything
make run # Runs RohitOS in QEMURohit Yadav 🎓 CS Undergrad @ NIT Jalandhar 👨💻 Systems Programmer | VM + Compiler Dev
⭐ If you liked it — drop a star!
