Licensed under the terms of the MIT License. See the LICENSE file for details.
This project is an experimental microkernel built to explore operating system design and low-level x86 architecture. It is designed to run in Protected Mode and is compatible with GRUB and other Multiboot-compliant bootloaders.
While primarily an educational exercise in systems programming, the project implements foundational kernel concepts including memory management, basic multitasking, and a Virtual File System (VFS) layer.
The project was built and tested with the following toolchain:
- GNU GCC 4.7.2
- NASM 2.10.01
- GNU ld 2.22.90
- GNU Make 3.81
Optional Emulators:
- QEMU 1.2.0
- Bochs 2.4.6
Compile the kernel source:
make kernelGenerate bootable images (requires genisoimage for CD-ROM):
make cdrom
make floppyRun the compiled image in an emulator (requires qemu or bochs):
make run-cdrom
make run-floppyBuild configuration and options can be adjusted in common.mk.
- Refactor memory management unit (MMU) and descriptor tables
- Process synchronization primitives (mutexes, semaphores)
- Priority-based scheduling and tickless kernel design
- ELF executable loading and relocation
- Separation of architecture-specific code from common C abstractions
- Unified API for underlying filesystems
- Mount registry and vnode caching
- Block cache system and DMA support
- ATAPI (CD-ROM) and ATA interface drivers
- Driver manager and module registration
- IRQ and DMA allocation tracking
- Independent I/O request layer
- PCI configuration and bus enumeration
- Basic TCP/IP stack (Ethernet, ARP, IP, ICMP, UDP, TCP)
- Port Newlib (libc) and basic POSIX syscalls
- Port Bash shell and Binutils
- VESA driver and graphical interface prototyping
Development heavily referenced the architectural references and documentation available at OSdev.org.