Onyx — a multi-process OS for the Raspberry Pi 4, built on Circle

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
Post Reply
trolly
Member
Member
Posts: 53
Joined: Tue Mar 25, 2008 12:26 pm

Onyx — a multi-process OS for the Raspberry Pi 4, built on Circle

Post by trolly »

i everyone,

I'd like to share a project I've been working on: Onyx, a homemade multi-process operating system for the Raspberry Pi 4 (AArch64), built on Circle as its hardware layer. Circle made all of this possible.

Some of the main features:

Multi-process with per-app address spaces: every app runs in its own translation tables (ASID), with a kernel API table, and gets its own window.
Dedicated cores: the TCP/IP stack runs on its own core, and so does the audio synthesizer (with an FM tracker on top). The two remaining "app cores" can be acquired by programs such as emulators.
Filesystem performance work on top of FatFs.
A windowed GUI (Elegant-UI) with a compositor (dirty-rectangle refresh), a widget toolkit, and a menu bar with app categories.
3D with the V3D GPU, bare metal: textures, blending, depth, batches with per-object matrices, frame completion by interrupt, and rendering straight into the window. The shaders are hand-written QPU assembly, built with a small assembler based on Mesa's encoder.
A NetSurf port, so there is a real web browser.
BASIC programming: a QBasic-compatible language compiled to bytecode for a VM, with a QBasic-style IDE, GUI controls, gamepad support, and now 3D statements (on the GPU, with a software fallback). There are also Windows tools to write programs on a PC.
Console emulators: Game Boy / Color, Game Boy Advance, NES ,SNES, Nintendo 64 and GameCube (sic) running on an app core, with a game library, the emulators are not ported from existing projects all are done from scratch specificaly to work on top on my os and use the full advantage of it. There's also a Doom port.
Networking and more: FTP client and server, a VNC server, Custom Remote Desktop server (and its windows client), lightighter than VNC because instead of sharing the whole screen, it send only the content of each windows when they are modified or presented. Wi-Fi, USB gamepads, and more.

The code and the documentation are here: https://github.com/stephaneweg/Onyx

Feedback and questions are welcome!
Attachments
Elegant-UI , the gui of Onyx
Elegant-UI , the gui of Onyx
Post Reply