Execution model

The realization pipeline

Execution in GoMyRobotOS is the result of a pipeline from the portable layer down to a concrete target:

Partition Contract
       │
       ▼
Parser
       │
       ▼
Validator
       │
       ▼
GoMyRobotOS IR
       │
       ├───────────────┬────────────────┐
       ▼               ▼                ▼
     Xen            XNG/XtratuM       Future
    Backend           Backend         Backend
       │               │
       ▼               ▼
target artifacts   target artifacts
  • The contract is author-facing, human-auditable intent.

  • The IR (GoMyRobotOS Intermediate Representation) is the stable internal representation shared by all backends, see IR.

  • A backend is the only layer allowed to know about Xen, XtratuM/XNG, or raw hardware, see Backend model.

What “execution” means per partition

A partition’s execution profile is fixed by its contract:

  • which cpus it may run on,

  • with what scheduling policy and priority,

  • within what timing budget (period and budget in microseconds),

  • over what memory regions, interrupt vector, device set, and DMA region.

Deterministic execution properties (fixed priorities, bounded budgets, static allocation) are declared in the contract; whether the target backend enforces them with what fidelity is a backend matter, and it is measured in validation, not assumed (see Temporal isolation).

Runtime integration

The software that runs inside a partition is the workload. For the flight-oriented reference stack, the workload is GoMyRobotRT:

                GoMyRobotOS
                     │
    Partition Contract
                     │
                     ▼
                   IR
                     │
           Target Backend
                     │
            ┌────────┴────────┐
            ▼                 ▼
         Hypervisor       Bare metal /
         / separation    future backend
            │
            ▼
          Runtime
            │
            ▼
        GoMyRobotRT
            │
       ┌────┴─────┐
       ▼          ▼
     RTEMS     ROS 2 APIs
  • GoMyRobotOS hosts or consumes GoMyRobotRT, it controls the execution environment.

  • GoMyRobotRT executes the robotics workload (deterministic executors, robotics middleware including ROS 2 concepts, hardware abstraction) - see GoMyRobotRT.

The two remain separate products (ADR-0007).

Non-partition execution

Not every workload is a flight partition. The reference deployment shapes also include service domains running Linux (built, where applicable, by the GoMyRobotBSP target-build pipeline using Yocto/OpenEmbedded, see Yocto’s role). GoMyRobotOS still manages those domains as partitions: startup order, recovery behavior, and health monitoring are contractual.