procd is the user-space process lifecycle manager. It is responsible for controlled process/task creation and lifecycle policy.
Find a file
Erik Inkinen 40cafdfc48
All checks were successful
CI / test (push) Successful in 6s
CI / security (push) Successful in 1m27s
CI / minimal-versions (push) Successful in 11s
procd: drop unstable rustfmt options for stable toolchains
2026-03-23 10:19:56 +02:00
.github refactor: Update milestone terminology to 'Component Milestone Tracking' across documentation 2026-03-05 11:57:00 +02:00
src procd: split startup process and runtime paths 2026-03-23 09:37:39 +02:00
.editorconfig Initial commit 2026-02-26 17:48:05 +01:00
.gitignore Initial commit 2026-02-26 17:48:05 +01:00
ARCHITECTURE.md procd: extend service spawn lifecycle and update service docs 2026-03-13 20:59:12 +02:00
Cargo.toml runtime-mode: migrate feature gates and document mode model 2026-03-11 08:04:59 +02:00
CODE_OF_CONDUCT.md Initial commit 2026-02-26 17:48:05 +01:00
CONTRIBUTING.md refactor: Update milestone terminology to 'Component Milestone Tracking' across documentation 2026-03-05 11:57:00 +02:00
LICENSE Initial commit 2026-02-26 17:48:05 +01:00
linker-phase0-exit.ld feat: Add new binaries for phase0-exit, phase0-isolation-a, phase0-isolation-b, and phase0-fault-kill; refactor phase0-probe and main for improved process management 2026-03-04 14:50:59 +02:00
linker-phase0-fault-kill.ld feat: Add new binaries for phase0-exit, phase0-isolation-a, phase0-isolation-b, and phase0-fault-kill; refactor phase0-probe and main for improved process management 2026-03-04 14:50:59 +02:00
linker-phase0-isolation-a.ld feat: Add new binaries for phase0-exit, phase0-isolation-a, phase0-isolation-b, and phase0-fault-kill; refactor phase0-probe and main for improved process management 2026-03-04 14:50:59 +02:00
linker-phase0-isolation-b.ld feat: Add new binaries for phase0-exit, phase0-isolation-a, phase0-isolation-b, and phase0-fault-kill; refactor phase0-probe and main for improved process management 2026-03-04 14:50:59 +02:00
linker-phase0-probe.ld Add linker script for Phase 0 probe and refactor main and phase0-probe for IPC enhancements 2026-03-03 16:15:51 +02:00
linker-phase1-lookup-client.ld feat: Add phase1-lookup-client binary and linker script; enhance main for phase1 integration and IPC handling 2026-03-04 17:58:20 +02:00
linker-phase1-time-client.ld feat: Implement phase1-time-client with IPC communication and time service integration 2026-03-06 10:28:39 +02:00
linker-phase2-irq-client.ld feat: Add phase2-irq-client with IPC handling and interrupt management 2026-03-07 12:06:36 +02:00
linker.ld Add linker script for Phase 0 probe and refactor main and phase0-probe for IPC enhancements 2026-03-03 16:15:51 +02:00
README.md procd: extend service spawn lifecycle and update service docs 2026-03-13 20:59:12 +02:00
ROADMAP.md procd: extend service spawn lifecycle and update service docs 2026-03-13 20:59:12 +02:00
rustfmt.toml procd: drop unstable rustfmt options for stable toolchains 2026-03-23 10:19:56 +02:00
SECURITY.md docs: align security policy phase numbering 2026-03-11 05:28:15 +02:00

EriX Process Manager (procd)

procd is the user-space process lifecycle manager. It is responsible for controlled process/task creation and lifecycle policy.


Scope

  • create/start/stop/reap process instances under root policy
  • manage process-level capability distribution workflows
  • enforce lifecycle constraints (restart policy, dependency order, failure policy)

Out of Scope

  • kernel scheduler/object implementation
  • raw memory and mapping policy internals (owned by memd/vspaced/pagerd)

Inputs and Outputs

  • startup contract: docs/handoff/root-to-services.md
  • receives lifecycle-related capabilities from rootd
  • exposes controlled process management IPC endpoints

Invariants

  • process creation authority is explicit and auditable
  • lifecycle actions are policy-checked, not ambient
  • deterministic behavior during bootstrap-critical launch phase

Implementation Status

Runtime baseline:

  • no_std executable service binary (x86_64-unknown-none) with SysV entry ABI
  • startup envelope parsing/validation via lib-bootstrap
  • role/intake contract validation via lib-capabi
  • runtime IPC server loop (RECV + REPLY) for spawn request handling
  • spawn path wired through kernel-control IPC (CREATE_PROCESS + START_PROCESS)
  • typed service spawn path for rootd: IPC_PHASE0_PROCD_OP_SPAWN_SERVICE (0x402)
  • deterministic process-id/endpoint assignment from kernel-control responses
  • async probe-completion notify path for bootstrap completion signaling
  • foundation-service startup is non-blocking before discovery comes online: procd boots without requiring named/logd/crashd availability