Skip to content

xKingDark/prismOS

Repository files navigation

prismOS

A freestanding AArch64 (ARMv8) operating system kernel made for fun.

Requirements

Build Tools (All Platforms)

  • CMake ≥ 3.24
  • Ninja
  • QEMU (qemu-system-aarch64)

Note

The AArch64 bare-metal toolchain is automatically downloaded and configured by setup.sh. No manual toolchain installation is required.

Platform Setup

Linux (Debian / Ubuntu)

sudo apt update

Then run

./setup.sh

macOS (Intel & Apple Silicon)

Install Homebrew, then run

./setup.sh

Windows

Recommended options:

After cloning the repository, follow the Linux instructions.

Quick Start

This project uses CMake Presets for consistent builds.

Debug Build

cmake --preset aarch64-debug
cmake --build --preset aarch64-debug

Release Build

cmake --preset aarch64-release
cmake --build --preset aarch64-release

Build Outputs

Each build produces:

prismOS.aarch64.elf   # Linked kernel (symbols included)
prismOS.aarch64.bin   # Raw bootable image
prismOS.aarch64.map   # Linker map file

Located in:

build/aarch64-debug/
build/aarch64-release/

Running prismOS in QEMU

macOS / Linux

./run-aarch64.sh

Defaults to Debug.

./run-aarch64.sh release

Supported Modes:

./run-aarch64.sh debug
./run-aarch64.sh release
BUILD_TYPE=release ./run-aarch64.sh

Design Notes

  • Fully freestanding (-nostdlib)
  • No host libc or runtime
  • Toolchain enforced via CMake toolchain file

License

This project is open-source under the MIT License. Feel free to modify and contribute!

Contributing

# Fork the repository
git clone https://github.com/xKingDark/prismOS.git

# Create a new branch
git checkout -b feature-branch

# Commit your changes
git commit -m "Added new feature"

# Push to GitHub
git push origin feature-branch

# Submit a Pull Request

About

A freestanding AArch64 (ARMv8) operating system kernel made for fun.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published