Skip to content
Dietmar Planitzer edited this page Sep 25, 2025 · 3 revisions

Welcome to the Serena wiki!

Serena OS is what you get when modern operating system design and implementation meets vintage hardware. Serena OS is built around a pervasive preemptive multi-user kernel. The kernel features an object-oriented design and implementation to enable easy cross-platform support and to make it future proof. It currently runs on Amiga systems with a 68020 or better CPU installed.

Serena OS is built around dispatch queues rather than threads. Dispatch queues are very convenient to use by applications because an application does not need to create and manage threads manually. Instead the application schedules function invocations with the dispatch queue and the queue then takes care of executing the function as soon as possible while transparently and automatically managing the acquisition and release of virtual processors as needed.

The kernel features a strong object-oriented design in terms of it's internal implementation but also in terms of it's user space interface. This means for example that processes, filesystems and driver instances are implemented as objects that conform to kernel defined classes and that the object instances are organized in catalogs. A catalog looks and behaves like a directory of files from the viewpoint of user space. The driver catalog can be found at the /dev path, the process catalog at /proc and finally the filesystem catalog at /fs. An application may open a driver, process or filesystem entry using the standard open() call to interacte with and acquire information about a kernel object.

The Serena OS API is inspired by the POSIX API. Inspired - because it is not a design goal of Serena OS to be an exact POSIX implementation. It will adopt POSIX concepts and APIs wherever it makes sense for Serena OS to simplify porting of existing software and as long as they do not conflict with Serena OS design goals.

Serena comes with the SerenaFS filesystem which supports POSIX style permissions and user and group ownership information.

Clone this wiki locally