-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Welcome to the BloodOS Wiki.
BloodOS is a hobby operating system written from scratch using C and x86 Assembly. This project is designed for educational purposes, focusing on low-level system programming and operating system internals.
BloodOS is not a Linux fork and not based on any existing operating system. Every component β from the bootloader to the kernel and drivers β is implemented manually to help learners understand how an OS truly works.
This wiki documents the internal design, architecture, and implementation details of BloodOS. It is intended to:
- Help beginners understand OS development concepts
- Serve as a technical reference for low-level programmers
- Explain why certain design decisions were made
- Provide a clean and structured learning path
If you are learning Operating System Development (OSDev), this wiki is for you.
By reading this wiki, you will learn about:
- How a PC boots (BIOS β Bootloader β Kernel)
- Real Mode and Protected Mode transitions
- Kernel initialization and architecture
- Interrupt handling (PIC, IRQ, ISR)
- Memory management basics
- Hardware drivers (VGA, Keyboard, Timer, ATA)
- FAT12 filesystem implementation
- Building and running an OS using QEMU
BIOS
β
Bootloader (Real Mode)
β
Protected Mode Setup (GDT)
β
Kernel Entry
β
Kernel Core
βββ Drivers
βββ Filesystem
βββ Memory Manager
βββ Shell
BloodOS follows a modular architecture to keep the codebase readable, maintainable, and educational.
The project is organized into clear modules:
-
boot/β Bootloader and early CPU setup -
kernel/β Core kernel logic and shell -
drivers/β Hardware drivers -
fs/β Filesystem layer (FAT12) -
src/β Core libraries (string, memory, I/O) -
tools/β Development and debugging tools
Detailed explanations for each module are available in their respective wiki pages.
New to BloodOS? Start here:
- Getting Started β Build and run BloodOS
- Boot Process β From BIOS to kernel
- Kernel Architecture β Core system design
- Drivers β Hardware interaction
These pages will guide you step-by-step.
BloodOS is an educational hobby project.
- β Not intended for production use
- β No security guarantees
- β Built for learning and experimentation
Contributions, suggestions, and feedback are welcome.
You can help by:
- Improving documentation
- Fixing bugs
- Adding new drivers or features
- Reviewing code and design decisions
Check the GitHub repository for open issues and roadmap.
If you find BloodOS useful or interesting:
- β Star the repository
- π΄ Fork it
- π£οΈ Share it with other OSDev learners
BloodOS β learning how operating systems really work.