9. Glossary
- ABI
Application Binary Interface — the low-level convention (register usage, calling convention, syscall numbering) that binaries must follow. SO3 uses the Linux-style syscall ABI expected by MUSL.
- Agency domain
The full Linux environment running next to the capsules. It hosts the EMISO engine and the “critical” user interface and services.
- AVZ
Agency Virtualizer — the hypervisor on top of which the agency domain (Linux) and the SO3 capsule run. It manages the IPA-to-PA address translation stage.
- binutils
The GNU binary utilities (assembler, linker, and related tools) that are part of the toolchain.
- Capsule
A strongly isolated SO3-based container used to deploy a micro-service or application alongside Linux. A capsule is derived from the SOO mobile entity concept and is, in Docker terms, the equivalent of a running container.
- COUI
Container Orchestration User Interface — the role played by Portainer in the MICOFE framework.
- Docker
The de-facto container platform whose APIs and concepts (image, container, logs) are partially mirrored by EMISO to manage SO3 capsules.
- EMISO
The engine, running in the agency domain user space, that manages the lifecycle of the SO3 capsules (creation, start/stop, pause/unpause, logs). It exposes a subset of the Docker APIs.
- ENOSYS
The error code returned by SO3 when an application invokes a syscall that is not implemented, which makes missing functionality easy to diagnose in logs.
- Framebuffer
The memory region representing the whole screen content. In MICOFE its IPA is remapped by AVZ so that only the focused capsule is shown on the display.
- futex
Fast userspace mutex — the Linux syscall used by MUSL for thread synchronization. SO3 implements the
FUTEX_WAITandFUTEX_WAKEoperations.- Hypercall
A call from a guest (Linux or a capsule) to the AVZ hypervisor, used for example to share the framebuffer address or to switch capsule focus.
- IPA
Intermediate Physical Address — the address space produced by the first MMU translation stage, sitting between the virtual (VA) and physical (PA) address spaces. Managed by Linux and the capsules.
- itb file
The image tree blob used as a SO3 capsule image. EMISO stores these images in the
/root/capsule/folder.- libc
The standard C library providing the C/POSIX runtime to user-space applications. In MICOFE, the libc is MUSL.
- libgcc
The low-level GCC support library providing compiler helper routines (integer arithmetic, stack unwinding metadata, object-layout support) required by generated code, including C++ workloads.
- LVGL
Light and Versatile Graphics Library — a library for creating graphical user interfaces on embedded devices, used as the graphical application class for capsules.
- MICOFE
Micro-Container for Edge Computing. The project that provides a lightweight, strongly isolated micro-container environment for edge computing, built on SO3 and Arm64 virtualization.
- Mobile Entity
Also abbreviated ME. The SOO virtualization concept of a self-contained, migratable execution unit on which SO3 capsules are based.
- MUSL
An implementation of the standard C/POSIX library designed for correctness, static linking, and use in embedded systems. Used as the libc for SO3 user-space applications.
- PA
Physical Address — the real hardware memory address, produced by the second MMU translation stage managed by AVZ.
- Portainer
Portainer CE (Community Edition), an open-source container management tool used in the MICOFE framework as the COUI. It runs on the host PC and talks to the EMISO engine through a RESTful API.
- pthread
The POSIX threads API. Its MUSL implementation relies on Linux syscalls such as
clone, futex, andexit/exit_group.- REDS
The Reconfigurable & Embedded Digital Systems institute of HEIG-VD, where the SOO framework and this project were developed.
- RTTI
Runtime Type Information — C++ services such as
dynamic_castandtypeid. Optional in resource-constrained embedded systems.- Snapshot
A saved state of an injected capsule. Creating a capsule snapshots the injected capsule; pausing a capsule snapshots its current state before shutting it down.
- SO3
A lightweight operating system supporting key Linux-like features such as user/kernel separation, memory paging, and multithreading. It is the operating system running inside the capsule.
- SOO
The virtualization framework, developed at the REDS Institute, that introduced the mobile entity concept on which the SO3 capsules are based.
- syscall
System call — the interface through which a user-space application requests a service from the kernel. SO3 implements a subset of the Linux syscalls expected by MUSL.
- sysroot
The directory tree containing the target headers and libraries against which the toolchain compiles and links applications.
- TLS
Thread-Local Storage — per-thread storage used to hold thread-specific data (including the pthread context). On AArch64 it is held in
tpidr_el0.- toolchain
The cross-compilation tool suite (compiler, linker, runtime libraries, and sysroot) built from source to produce binaries for ARM32 and ARM64 SO3 targets.
- TrustZone
The ARM hardware security technology leveraged, together with virtualization, to provide a highly secure execution environment for the capsules.
- VA
Virtual Address — the address space seen by a user-space application, translated to an IPA by the first MMU stage.
- VLOGS
The backend/frontend driver mechanism used to forward log messages from a SO3 capsule to the Linux kernel, where they are stored per capsule under
/var/log/soo/.