Quick Start Guide
The fastest way to try Aeolos is to download a pre-built ISO image and run it in QEMU.Prerequisites
You’ll need a virtualization tool to run the OS. We recommend QEMU for its wide compatibility and excellent x86_64 support.- Linux
- macOS
- Windows
Download Pre-built Image
Get the ISO from GitHub Actions
Navigate to the Aeolos GitHub Actions page.
You’ll need to be logged into GitHub to download artifacts from GitHub Actions.
- Click on the most recent successful workflow run (look for a green checkmark)
- Scroll down to the Artifacts section
- Download
os.iso - Extract the downloaded ZIP file to get
os.iso
Run in QEMU
Once you have the
os.iso file, boot it with QEMU:Command breakdown
Command breakdown
-cdrom os.iso: Boots from the ISO image-m 128: Allocates 128MB of RAM-smp 4: Enables 4 CPU cores for SMP testing-cpu host: Uses host CPU features (with KVM)-M accel=kvm:tcg: Tries KVM acceleration, falls back to TCG
Watch it boot
You should see:
- Boot messages: Kernel initialization output
- Hardware detection: ACPI, APIC, and HPET initialization
- Memory management: PMM and VMM setup
- SMP startup: Secondary CPUs coming online
- VFS demo: Reading a test file from the initrd
- Halt message: The OS will halt with a message about being a work in progress
QEMU Options Explained
The Makefile uses these QEMU flags (fromMakefile):
Memory
-m 128 allocates 128MB RAM, sufficient for testingCPU Cores
-smp 4 enables 4 cores to test SMP functionalityNo Reboot
-no-reboot prevents automatic restart on triple faultAcceleration
-M accel=kvm:tcg uses KVM if available, otherwise software emulationAlternative: Run with Serial Output
For debugging or logging purposes, you can redirect serial output:serial_init()) to your terminal.
What You’ll See
When Aeolos boots, it performs these operations:System Initialization
- Interrupt Descriptor Table (IDT)
- CPU feature detection
- Physical memory manager (PMM)
- Virtual memory manager (VMM)
- Global Descriptor Table (GDT)
I/O Setup
- Framebuffer initialization for graphical output
- Serial port (COM1) setup
- Terminal emulation layer
Hardware Discovery
- ACPI table parsing (RSDP, MADT)
- HPET timer calibration
- Local APIC and I/O APIC configuration
- Virtual filesystem initialization
- SMP initialization (bringing up secondary cores)
Troubleshooting
QEMU fails to start with KVM error
QEMU fails to start with KVM error
If you see KVM-related errors, you might not have virtualization enabled or KVM installed.Solution: Remove the acceleration option:This uses TCG (software emulation) which is slower but works everywhere.
Screen shows nothing / black screen
Screen shows nothing / black screen
The framebuffer might not be initializing correctly.Solution: Try with serial output instead:
Can't download from GitHub Actions
Can't download from GitHub Actions
GitHub requires authentication to download artifacts.Solution:
- Make sure you’re logged into GitHub
- Alternatively, build from source instead
VM immediately exits or crashes
VM immediately exits or crashes
This might indicate a triple fault or critical error.Solution: Run with debug options:
Next Steps
Build from Source
Compile Aeolos yourself and modify the code
Understanding Aeolos
Learn about the architecture and features
Since Aeolos is in early development, it demonstrates OS concepts rather than providing a functional user environment. Check
kernel/kmain.c to modify what the OS does at startup.