Serena: an experimental operating system for 32bit Amiga computers

Serena is an experimental operating system based on modern design principles with support for pervasive preemptive concurrency and multiple users. The kernel is object-oriented and designed to be cross-platform and future proof. It runs on Amiga systems with a 68030 or better CPU installed.

One aspect that sets it aside from traditional threading-based OSs is that it is purely built around dispatch queues somewhat similar to Apple’s Grand Central Dispatch. There is no support for creating threads in user space nor in kernel space. Instead the kernel implements a virtual processor concept where it dynamically manages a pool of virtual processors. The size of the pool is automatically adjusted based on the needs of the dispatch queues and virtual processors are assigned to processes as needed. All kernel and user space concurrency is achieved by creating dispatch queues and by submitting work items to dispatch queues. Work items are simply closures (a function with associated state) from the viewpoint of the user.

↫ Serena GitHub page

Serena is a remarkably advanced concept, and since it runs in an Amiga emulator just fine, there’s no need for real hardware, which is becoming ever harder to come by. It has its own unique file system, the executable file format is Atari ST GemDos (for now), and it has its own shell. It comes with a variety of drivers and services for your basic needs like keyboard and mouse input, a basic graphics drivers, a VT52 and VT100 series compatible interactive console, a floppy disk driver, and much more.

Anyone can load up WinUAE and try SerenaOS out – it’s available under the MIT license.