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_WAIT and FUTEX_WAKE operations.

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, and exit/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_cast and typeid. 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/.