SO3 is a compact, lightweight, full-featured and extensible operating system, particularly well suited to embedded and IoT systems. It is the result of several years of research and development at the REDS Institute of HEIG-VD, has long been used as a teaching platform, and today forms the foundation of the SOO framework.
The most distinctive feature of SO3 is that it is polymorphic: from a single source tree, the very same code base can be configured and built into three different kinds of system.
- Standalone OS — SO3 runs directly on the hardware as a conventional monolithic OS (kernel at EL1, user applications at EL0 on ARM64). This is the configuration used for teaching and for plain embedded products.
- AVZ hypervisor — built with
CONFIG_AVZ, the same tree becomes AVZ (Agency VirtualiZer), a lightweight type-1 hypervisor running at EL2 that hosts one or more guest domains — the primary guest being the agency. - SO3 capsule (S3C) — on top of AVZ, the SOO framework adds SO3 capsules: lightweight, self-contained guests running at EL1 beside a Linux agency and cooperating with it through split (frontend/backend) drivers. The capsule (guest) side lives in this repository; the Linux agency and the rest of the SOO framework live in a separate one.
SO3 targets ARM 32-bit and 64-bit, is multicore, and is kept as compact as possible. It ships with a MUSL-based user space and integrations such as LVGL, lwIP and MicroPython.
The complete and up-to-date documentation — philosophy, architecture, build
system, user guide, debugging and more — is the source of truth. It lives in
doc/ and is published at:
Start there for everything about building, configuring, running and debugging SO3.
- QEMU
virt— ARM 32-bit and 64-bit - Raspberry Pi 4 (64-bit)
- Toradex Verdin iMX8M Plus
The main branch always holds the last released version.
Important
Do not push directly to main. Each development is tracked by an issue with
its own branch; open a merge/pull request as soon as it is stable enough for
review.
If you would like to contribute, please first get in touch with the maintainer at daniel.rossier@heig-vd.ch.
We warmly thank our sponsors for their generous support in funding the development of the SO3 ecosystem, in particular HEIG-VD and the Hasler Foundation.
We are also grateful to all the contributors — developers, students, researchers and community members alike — whose code, ideas and feedback have shaped SO3.
SO3 is released under the GNU General Public License v2.