A minimal x86 operating system following the OSDev bare bones tutorial.
- Multiboot-compliant bootloader
- Basic kernel setup
- GRUB2 bootloader integration
- Runs on x86 (i686) architecture
To build this OS, you need:
- i686-elf cross-compiler (GCC and binutils)
- GRUB (
grub-mkrescueandgrub-common) - xorriso (for ISO creation)
- QEMU (for testing -
qemu-system-i386)
Follow the OSDev GCC Cross-Compiler guide to build your cross-compiler.
The cross-compiler should be available in your PATH or you can modify the Makefile to point to its location.
# Build everything
make all
# Clean build artifacts
make cleanTo run the OS in QEMU:
qemu-system-i386 -cdrom myos.iso.
├── boot.s # Assembly bootloader with multiboot header
├── kernel.c # Main kernel code
├── linker.ld # Linker script
├── grub.cfg # GRUB configuration
├── makefile # Build automation
└── README.md # This file
- Bootloader (
boot.s): Sets up the multiboot header, stack, and calls the kernel - Kernel (
kernel.c): The main kernel entry point - Linker Script (
linker.ld): Organizes the memory layout - GRUB: Loads the kernel using the multiboot specification
This is a learning project. Feel free to use and modify as needed.