Skip to main content

SerenityOS Documentation

A love letter to ’90s user interfaces with a custom Unix-like core. Built from scratch with sincerity, accountability, and fun.

SerenityOS Logo

Quick start

Get SerenityOS running on your machine in a few steps

1

Clone the repository

Clone the SerenityOS repository from GitHub to your local machine.
git clone https://github.com/SerenityOS/serenity.git
cd serenity
2

Install dependencies

Install the required build dependencies for your platform. SerenityOS supports Linux, macOS, and Windows (with WSL2).
sudo apt install build-essential cmake curl libmpfr-dev libmpc-dev libgmp-dev e2fsprogs ninja-build qemu-system-x86 qemu-utils ccache rsync unzip texinfo libssl-dev
3

Build the toolchain

Build the cross-compilation toolchain. This step takes 30-60 minutes depending on your hardware.
Meta/serenity.sh rebuild-toolchain
The toolchain only needs to be built once and can be reused for subsequent builds.
4

Build and run SerenityOS

Build the operating system and launch it in QEMU.
Meta/serenity.sh run
SerenityOS will boot in a QEMU window with hardware or software virtualization enabled as supported.

Explore by topic

Dive into different aspects of SerenityOS

Architecture

Learn about the system architecture, kernel design, and userland components.

Kernel Development

Explore the 64-bit kernel with pre-emptive multi-threading and modern features.

Browser Engine

Discover LibWeb, the custom browser engine with JavaScript and WebAssembly support.

Developer Tools

Set up your development environment with IDE configuration and debugging tools.

System Libraries

Reference documentation for AK, LibC, LibCore, LibGUI, and other system libraries.

Contributing

Join the community and learn how to contribute to SerenityOS.

Key features

What makes SerenityOS unique

Security-focused

Hardware protections, pledge & unveil syscalls, KASLR, W^X memory, and web-content isolation.

Built from scratch

Custom kernel, LibC, GUI toolkit, browser engine, and all applications—no external dependencies.

Complete desktop environment

Window server, GUI applications, text editor, terminal, browser, media players, and games.

Modern web standards

JavaScript engine with high spec compliance, CSS support, WebAssembly, and more.

Ready to dive in?

Join the SerenityOS community and start building a Unix-like operating system from scratch.