Skip to content

AlkOS-Dev/AlkOS

Repository files navigation

AlkOS

License Stars Issues Devlog

AlkOS is a hobby operating system built from the ground up for x86_64. It boots into a monolithic higher-half kernel, runs its own C library instead of an upstream one, and reaches a userspace real enough to run DOOM. We share the journey and break down how to build an OS in plain terms at blazeddev.com.

DOOM running on AlkOS

Building and running

You need Linux (Arch or Ubuntu recommended) or Docker. Dependency installation is automated for Arch and Ubuntu. The toolchain step builds a dedicated GCC cross-compiler, so the first run takes a while.

# Install system dependencies and build the cross-toolchain.
./scripts/alkos_cli.bash --install all

# Generate the build configuration (defaults to a release build).
./scripts/alkos_cli.bash --configure

# Build the kernel and userspace, make the ISO, boot it in QEMU.
./scripts/alkos_cli.bash --run

Run ./scripts/alkos_cli.bash --help for the full command list. Append --verbose to any command to see the exact error if something breaks.

--configure picks the build type automatically: release_official on a clean checkout sitting on a release tag, otherwise release. For a debug build, run configure.bash directly: ./scripts/config/configure.bash x86_64 debug.

If everything went right, QEMU drops you into the AlkOS shell:

AlkOS shell

Tests

./scripts/actions/build_and_run_tests.bash
./scripts/actions/run_tests.bash

Features

Capability Status
64-bit higher-half kernel (x86_64) x
Physical, virtual, and heap memory management x
Preemptive multitasking and scheduling x
Ring 3 userspace with syscalls and ELF64 loading x
Virtual filesystem with FAT support x
Framebuffer graphics with a window manager x
ACPI and PCI device support x
Running real applications (DOOM) x
Symmetric multiprocessing (SMP)
Networking stack
USB support
Persistent storage and disk drivers
Additional architecture ports (ARM, RISC-V)

License

MIT. See LICENSE.

About

Open-source x86_64 operating system project focused on developing a 64-bit kernel with preemptive multitasking. Engineering thesis. Plans to incorporate a shell and support for user-mode applications.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors