Skip to content

Modules ​

Xila is organized as composable modules with explicit contracts and concrete implementations. The final binary constructs stateful managers and passes references to other modules and executables. Lock-protected state belongs to those managers; allocator, logging, C ABI, and LVGL callback boundaries retain process-wide registration.

This section is an architecture map, grouped by system role.

  1. Virtual file system
  2. Task
  3. Network
  4. ABI
  5. Bindings (runtime integration path)
  6. Remaining modules and integrations: Memory, Users, Time, Log, Graphics, Virtual machine

Foundation modules ​

  • Memory: Allocation contract (ManagerTrait), global allocator bridge, capability flags, and cache/page helpers.
  • Task: Manager-owned task registry, executor/spawner integration, metadata inheritance, and signal delivery.
  • Users: In-memory user/group database and identifier/membership resolution.
  • Time: Explicit time source abstraction over a direct character device.
  • Log: Global logging bridge (LoggerTrait) on top of log ecosystem integration.

Runtime modules ​

  • Virtual file system: Path namespace, mount dispatch (file systems/devices/pipes), ownership/permission checks.
  • Network: smoltcp interface stacks, runner tasks, control-device surface under /devices/network/*.
  • Graphics: LVGL runtime management, display/input plumbing, window/event services.

Interop and runtime-integration pages ​

  • ABI: C ABI declarations and definitions, with an explicitly installed runtime context.
  • Bindings: Module-adjacent runtime integration implemented in executable/WASM host paths for host-call dispatch and guest/host pointer translation.
  • Virtual machine: Module-adjacent Wasmi integration in the WASM executable, with per-execution stores, WASI imports, and cooperative execution.

Cross-module wiring (high level) ​