Skip to main content
Aeolos includes a minimal set of device drivers to support basic system functionality. The driver subsystem is located in kernel/dev/ and provides low-level hardware abstraction for core system components.

Architecture

Device drivers in Aeolos are implemented as kernel-level modules that provide direct hardware access. Each driver exposes a simple API that higher-level kernel components can use without needing to understand the underlying hardware details.

Available Drivers

Framebuffer

Graphics output using a linear framebuffer with double buffering support

Serial Port

RS-232 serial communication for debugging and logging

Terminal

Text-mode terminal with ANSI color support built on the framebuffer

Driver Initialization

Drivers are typically initialized during the kernel boot process. The initialization order is important:
  1. Framebuffer - Initialized first to enable visual output
  2. Serial Port - Initialized for early debugging output
  3. Terminal - Initialized after framebuffer to provide text output

Design Philosophy

Aeolos drivers follow a minimalist design philosophy - they provide only the essential functionality needed for the OS to operate. This keeps the codebase simple and maintainable.
Key design principles:
  • Simplicity - Each driver does one thing well
  • Direct Hardware Access - No complex abstraction layers
  • Kernel-Space Only - All drivers run in kernel mode
  • Minimal Dependencies - Drivers depend only on core kernel functions

Source Code Location

All driver source code is located in the kernel source tree:
kernel/dev/
├── fb/          # Framebuffer driver
│   ├── fb.c
│   └── fb.h
├── serial/      # Serial port driver
│   ├── serial.c
│   └── serial.h
└── term/        # Terminal driver
    ├── term.c
    └── term.h

Build docs developers (and LLMs) love