The Serenity Operating System
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Idan Horowitz 690eb3bb8a LibJS: Add support for hex, octal & binary big integer literals 6 hours ago
.github CI: Run libjs-test262 and update results on every push to master 1 week ago
AK AK: Add FlyString::from_fly_impl() 12 hours ago
Base Browser: Add download finished graphics to download widget 11 hours ago
Documentation Documentation: Move Ubuntu/Debian specific build instructions 13 hours ago
Kernel Kernel: Pass absolute path to shebang interpreter 10 hours ago
Meta Meta: Fix QEMU version check in 19 hours ago
Ports Ports: Add Composer 14 hours ago
Tests LibC: Make `getopt` modify `argv` again 14 hours ago
Toolchain Toolchain: Add `gettext` as a dependency to `Dockerfile` 6 days ago
Userland LibJS: Add support for hex, octal & binary big integer literals 5 hours ago
.clang-format Meta: Update .clang-format to not indent nested namespaces 1 year ago
.gitattributes Meta: Mark the other image file formats as binary in .gitattributes 4 weeks ago
.gitignore LibWasm+Meta: Implement instantiation/execution primitives in test-wasm 3 weeks ago
.mailmap Meta: Add my email(s) to .mailmap 4 weeks ago
.pre-commit-config.yaml Meta: Add a post-commit commit message linter hook 1 month ago
.prettierignore Meta: Add 6 months ago
.prettierrc Meta: Move prettier config files to the root of the repository 10 months ago
CMakeLists.txt Meta: Disable -Wmaybe-uninitialized 4 days ago Meta: Remove references to the abandoned IRC channel 5 days ago
LICENSE Everywhere: Use "the SerenityOS developers." in copyright headers 2 months ago Meta: Add Max Wipfli to the contributors list :^) 3 days ago


Graphical Unix-like operating system for x86 computers.

Build status Fuzzing Status Discord


SerenityOS is a love letter to '90s user interfaces with a custom Unix-like core. It flatters with sincerity by stealing beautiful ideas from various other systems.

Roughly speaking, the goal is a marriage between the aesthetic of late-1990s productivity software and the power-user accessibility of late-2000s *nix. This is a system by us, for us, based on the things we like.

I (Andreas) regularly post raw hacking sessions and demos on my YouTube channel.

Sometimes I write about the system on my blog.

I'm also on Patreon and GitHub Sponsors if you would like to show some support that way.


Screenshot as of 0f85753.png

Kernel features

  • x86 (32-bit) kernel with pre-emptive multi-threading
  • Hardware protections (SMEP, SMAP, UMIP, NX, WP, TSD, ...)
  • IPv4 stack with ARP, TCP, UDP and ICMP protocols
  • ext2 filesystem
  • POSIX signals
  • Purgeable memory
  • /proc filesystem
  • Pseudoterminals (with /dev/pts filesystem)
  • Filesystem notifications
  • CPU and memory profiling
  • SoundBlaster 16 driver
  • VMWare/QEMU mouse integration

System services

  • Launch/session daemon (SystemServer)
  • Compositing window server (WindowServer)
  • Text console manager (TTYServer)
  • DNS client (LookupServer)
  • Network protocols server (RequestServer and WebSocket)
  • Software-mixing sound daemon (AudioServer)
  • Desktop notifications (NotificationServer)
  • HTTP server (WebServer)
  • Telnet server (TelnetServer)
  • DHCP client (DHCPClient)


  • C++ templates and containers (AK)
  • Event loop and utilities (LibCore)
  • 2D graphics library (LibGfx)
  • OpenGL 1.x compatible library (LibGL)
  • GUI toolkit (LibGUI)
  • Cross-process communication library (LibIPC)
  • HTML/CSS engine (LibWeb)
  • JavaScript engine (LibJS)
  • Markdown (LibMarkdown)
  • Audio (LibAudio)
  • PCI database (LibPCIDB)
  • Terminal emulation (LibVT)
  • Out-of-process network protocol I/O (LibProtocol)
  • Mathematical functions (LibM)
  • ELF file handling (LibELF)
  • POSIX threading (LibPthread)
  • Higher-level threading (LibThreading)
  • Transport Layer Security (LibTLS)
  • HTTP and HTTPS (LibHTTP)

Userland features

  • Unix-like libc and userland
  • Shell with pipes and I/O redirection
  • On-line help system (both terminal and GUI variants)
  • Web browser (Browser)
  • C++ IDE (HackStudio)
  • IRC client
  • Desktop synthesizer (Piano)
  • Various desktop apps & games
  • Color themes

How do I read the documentation?

Man pages are available online at These pages are generated from the Markdown source files in Base/usr/share/man and updated automatically.

When running SerenityOS you can use man for the terminal interface, or help for the GUI.

How do I build and run this?

See the SerenityOS build instructions

Before opening an issue

Please see the issue policy.

FAQ: Frequently Asked Questions

Get in touch

Join our Discord server: SerenityOS Discord



(And many more!) The people listed above have landed more than 100 commits in the project. :^)


SerenityOS is licensed under a 2-clause BSD license.