Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Aether - Experimental Operating System in Rust
======================================================
WHAT IS AETHER?
---------------
Aether is an experimental 64-bit operating system kernel written in Rust.
It aims to provide a safe, and modern kernel architecture targeting
x86_64 systems using the Limine boot protocol.
HARDWARE & ARCHITECTURE SUPPORT
-------------------------------
Aether currently targets the 64-bit x86 architecture (x86_64-unknown-none).
It is designed to run on bare-metal x86_64 hardware or hypervisors / emulators
such as QEMU.
PREREQUISITES
-------------
To compile and run Aether, the following packages and tools are required:
- Rust Toolchain:
rustc and cargo. The toolchain version is pinned via
`rust-toolchain.toml`.
- ISO Utilities:
xorriso (required to create bootable ISO images)
- Emulator:
qemu-system-x86_64 with a graphical display backend such as
`qemu-ui-gtk` or `qemu-ui-sdl`.
- UEFI Firmware:
OVMF (Open Virtual Machine Firmware) or another compatible
x86_64 UEFI implementation.
- Hardware Virtualization:
KVM support is required. Aether relies on CPU features that are not
fully available under QEMU's software emulation (TCG), including
TSC-Deadline timer functionality.
HOST PLATFORM
-------------
Linux is currently the only supported build and development platform.
Windows and macOS have not been tested. While cross-compilation may be
possible, no support is provided for non-Linux environments.
BUILDING THE KERNEL
-------------------
Build scripts are provided in the `build/` directory.
1. Debug Build:
$ ./build/debug.sh
This command compiles the kernel in debug mode, places the ELF binary
into `iso/boot/aether.elf`, and creates the bootable `aether.iso` image.
2. Release Build:
$ ./build/release.sh
This command compiles the kernel with optimizations and generates the
final `aether.iso` image.
RUNNING WITH QEMU
-----------------
After building `aether.iso`, you can launch it in QEMU using one of the
following commands.
Note:
Aether is a UEFI-only operating system and requires OVMF firmware.
The firmware path may vary depending on the host operating system or
distribution.
Standard Execution:
$ qemu-system-x86_64 \
-bios <path-to-OVMF-firmware> \
-cdrom aether.iso \
-cpu host \
-enable-kvm
With Serial Output to Terminal:
$ qemu-system-x86_64 \
-bios <path-to-OVMF-firmware> \
-cdrom aether.iso \
-cpu host \
-enable-kvm \
-serial stdio
NOTES
------
- Legacy BIOS boot is not supported.
- UEFI firmware is required.
- QEMU + OVMF + KVM is the primary development and testing environment.
- Limine is used as the bootloader.
DIRECTORY LAYOUT
----------------
build/ - Build automation scripts (debug.sh and release.sh).
iso/ - ISO structure containing Limine bootloader configuration and binaries.
src/ - Core kernel source code written in Rust (GDT, interrupts, memory, ACPI, logging).
targets/ - Target specification files for target architecture configuration.
linker.ld - Linker script specifying kernel section placement in memory.
Cargo.toml - Package manifest and crate dependencies.
LICENSE - GNU General Public License v2.0 (GPL-2.0).
LICENSE
-------
Aether is distributed under the terms of the GNU General Public License v2.0 (GPL-2.0).
See the LICENSE file for details.