Atlas is a modern, hobbyist-friendly x86 bootloader. It supports FAT32 filesystems, structured configuration for multiple boot entries, and an interactive VGA menu.
- FAT32 Support: Boots directly from a FAT32 partition.
- Interactive Menu: User-friendly VGA menu for selecting boot options.
- Structured Configuration: Define entries, kernels, and menu titles in
config/atlas.cfg. - Multistage Design:
- Stage 1 (VBR): Initializes disk and BIOS, loads Stage 2.
- Stage 2: Searches for kernel/config and transitions to Protected Mode.
- Kernel: Minimalist 32-bit kernel with heap, VGA, and keyboard drivers.
src/boot/: NASM assembly for Stage 1 & 2.src/kernel/: C sources for the kernel components.include/: Kernel header files.config/: Bootloader configuration (atlas.cfg).scripts/: Python utility for disk image creation.
- CMake (v3.15+)
- NASM (for bootloader)
- Python 3 (for disk imaging)
- QEMU (optional, for running)
- x86_64-elf-gcc (Toolchain automatically downloaded by CMake)
-
Configure:
cmake -B build -
Build:
cmake --build build -
Run in QEMU:
cmake --build build --target run
You can write the generated disk.img to a physical USB drive using the included utility.
Caution
This will erase all data on the target drive. Double-check your selection!
python scripts/burn_usb.pysudo python3 scripts/burn_usb.pyThe script will list available drives and ask for your confirmation before writing.
Modify config/atlas.cfg to add or remove boot entries:
[menu]
title=My Hobby OS
[entry]
name=Standard Boot
kernel=/BOOT/KERNEL.BIN
[entry]
name=Recovery Mode
kernel=/BOOT/RECOVERY.BINWhen building, the scripts/create_disk.py tool generates a 64MB FAT32 image containing your Stage 1, Stage 2, and the configuration file.
Below are some images showcasing the Atlas Bootloader:


