Partitioning

What a partition is

A partition is a controlled execution domain with explicitly described resources. A partition is not defined by the isolation mechanism that realizes it, it is defined by the Partition Contract.

Concretely, a partition contract declares:

  • Identity: unique id, name, criticality, trust domain

  • CPU: cpu-set allocation, scheduling policy and priority, timing budget

  • Memory: named regions with size and permissions

  • Devices: devices the partition owns

  • Interrupts: interrupts the partition owns

  • DMA: permitted DMA regions

  • Communication: endpoints with message-size and rate bounds

  • Startup: boot artifact and dependencies (defines boot order)

  • Security: image identity, secure-boot requirement

  • Recovery: watchdog, restart policy, safe state, escalation policy

  • Requirements / verification: requirement identifiers and required tests

This list is the minimum conceptual field set of the Partition Contract v1; the full field reference is the Specification.

Why partition, and not process / container / VM

A GoMyRobotOS partition is described at the level that is invariant across separation mechanisms:

  • a process or container is tied to one OS’s semantics;

  • a VM / domain is tied to one hypervisor’s model;

  • a partition is a semantic object, CPU, memory, time, interrupts, devices, DMA, communication, startup, recovery, that each target backend must realize with whatever it offers: Xen domains on x86-64, XtratuM partitions on NG-ULTRA, and (as research) hardware WorldGuard partitioning on HPSC.

This is the core research question of the project: which partition semantics are genuinely portable, and which are inherently hardware/backend-specific (see Research problems).

A mixed-criticality system is a set of partitions

The target end-state (milestone M6 reference platform) is a system of partitions with different criticalities and runtimes, under one supervisor:

                  GoMyRobotOS
                      │
          ┌───────────┼───────────┐
          │           │           │
        Flight     Autonomy     Services
        RTEMS       RTEMS       Linux
          │           │           │
          └───────────┼───────────┘
                      ▼
               GoMyRobotGuard

Each column is partitioned independently; the Supervisor (GoMyRobotGuard) must not depend exclusively on any single partition in order to recover the others, see GoMyRobotGuard and ADR-0011.

Partition and partition contract: the distinction

The contract is the description; the partition is the running realization of that description on a specific target using a specific backend. One contract can have many realizations; that distinction is what assurance portability depends on.