General Questions
Will SerenityOS support $THING?
Will SerenityOS support $THING?
Maybe. Maybe not. There is no plan.SerenityOS is a hobby project driven by what contributors find interesting and fun to implement. There’s no formal roadmap or feature guarantee.
When will you implement $THING?
When will you implement $THING?
Maybe someday. Maybe never. If you want to see something happen, you can do it yourself!
SerenityOS is built by volunteers who implement features they’re interested in. The best way to get a feature added is to contribute it yourself or convince someone else it would be fun to work on.
Where are the ISO images?
Where are the ISO images?
There are no ISO images. This project does not cater to non-technical users.SerenityOS is designed for developers and requires building from source. If you’re looking for a ready-to-use operating system, this isn’t it.
Well, how do I run this thing then?
Well, how do I run this thing then?
Simple! Just refer to the build instructions.Building SerenityOS is straightforward if you have the right development tools installed. The quick start guide walks you through the entire process.
Building & Development
I did a git pull and now the build is broken! What do I do?
I did a git pull and now the build is broken! What do I do?
If it builds on CI, it should build for you too. Try these steps:
Ask for Help
If you still can’t figure it out, ask in the
#build-problems channel on Discord.Why don't you use $LIBRARY instead of implementing $FEATURE yourself?
Why don't you use $LIBRARY instead of implementing $FEATURE yourself?
The SerenityOS project tries to maximize hackability, accountability, and fun by implementing everything ourselves.This means:
- You can understand the entire system from top to bottom
- No hidden behaviors from third-party libraries
- Complete control over the implementation
- More learning opportunities for contributors
- Maximum enjoyment for the developers
While this approach requires more work, it makes the system more cohesive and ensures everything follows the same design philosophy.
Package Management
Does SerenityOS have a package manager?
Does SerenityOS have a package manager?
In short: No, SerenityOS does not have a “Linux-style” package manager with pre-built software.
Why Not?
SerenityOS uses a monorepo approach, meaning all software is built in the same style using the same tools. Additionally:- The SerenityOS ABI has no stability guarantee
- Library symbols and syscall interfaces can change at any moment
- Only the POSIX C library API remains relatively stable
- Pre-built binaries would break frequently
There’s no reason to have a binary package manager because the entire system is built from source in a single repository.
What About Third-Party Software?
The supported method to use third-party software is by compiling ports found in thePorts directory.What is a port?- A piece of software that can optionally be installed
- Might not have been built by the SerenityOS team
- Supports running on SerenityOS
- Always built from source
- Has its own install script
How to Install Ports
Future Development
In the future, port installation may be easier with thepkg tool. If you’re interested in contributing, check out the #package-manager channel on Discord.Excluding Components
It is possible to exclude some SerenityOS components from the build at compile time.Legal & Licensing
Why is there an MP3 implementation if MP3 is protected by patents?
Why is there an MP3 implementation if MP3 is protected by patents?
MP3 Patents Have Expired
MP3 was indeed originally protected by patents. However, all MP3 patents have expired since at least 2017, depending on where a specific patent was registered.We believe it to be completely legal to implement MP3 as 2-clause BSD licensed software without acquiring patent licenses.Other Formats
This does NOT apply to many other multimedia formats, such as:- H.264 (AVC) video codec
- H.265 (HEVC) video codec
- JPEG 2000 image format
As long as there is any reason to believe that a format is covered by patents, there will not be an implementation in the SerenityOS monorepo. We believe patents are incompatible with the BSD 2-clause license in general.
Third-Party Ports
Third-party ports with differing licenses can provide implementations for patented formats (such as ffmpeg). However:- Using this third-party software might not be legal depending on your situation and use case
- See ffmpeg’s legal information for details
- Everything regarding SerenityOS code is handled by our license
- Everything regarding third-party code is handled by the license of that particular software
Getting Help
Join Discord
Get real-time help from the community
Read the Docs
Browse technical documentation
Contributing Guide
Learn how to contribute
Issue Policy
Before opening an issue, read the policy
More Questions?
If your question isn’t answered here:- Check the documentation folder in the repository
- Search existing GitHub issues
- Ask in the appropriate Discord channel
- Read the contributing guide before opening a new issue
