A custom Operating System built from scratch in JavaScript — a deep dive into low-level programming and OS fundamentals.
More-s-OS is an educational operating system project that explores the fascinating world of low-level programming. Built as a learning journey, this project demonstrates how computers boot up and execute code at the most fundamental level.
This project was inspired by and built following the excellent tutorial by dr Jonas Birch.
- 🔄 Custom bootloader implementation
- 🧠 Kernel execution flow
- 💾 Memory management fundamentals
- ⚡ Interrupt handling
- 🔧 Low-level hardware interaction
- Linux environment (Ubuntu recommended)
- GCC Toolchain
- QEMU emulator
- GRUB bootloader
- Node.js
-
Clone the repository
git clone https://github.com/premmore388/More-s-OS.git cd More-s-OS -
Install dependencies
npm install
-
Run the OS
# Instructions for running with QEMU qemu-system-x86_64 -drive format=raw,file=boot.bin
More-s-OS/
├── boot.bin # Compiled bootloader binary
├── main.js # Main JavaScript entry point
├── tmp.asm # Assembly source code
└── package.json # Node.js dependencies
| File | Description |
|---|---|
boot.bin |
The bootloader binary that initializes the system |
main.js |
Core JavaScript logic for OS operations |
tmp.asm |
Low-level Assembly code for hardware interaction |
package.json |
Project configuration and dependencies |
Building this OS from scratch taught me:
| Concept | Description |
|---|---|
| Bootloaders | How computers start up and load the kernel |
| Kernel Execution | The flow from BIOS to running code |
| Memory Management | Allocating and managing system memory |
| Interrupts | Handling hardware and software interrupts |
| Assembly | Writing low-level code for x86 architecture |
| QEMU & GRUB | Using emulators and bootloaders for development |
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Tutorial: dr Jonas Birch — for the amazing OS development tutorial
- Tools: QEMU, GRUB, GCC Toolchain
This project is open source and available under the MIT License.
Prem More
- GitHub: @premmore388
- LinkedIn: Connect with me
⭐ Star this repo if you found it interesting!