procd is the user-space process lifecycle manager. It is responsible for controlled process/task creation and lifecycle policy.
- Rust 100%
| .github | ||
| src | ||
| .editorconfig | ||
| .gitignore | ||
| ARCHITECTURE.md | ||
| Cargo.toml | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| linker-phase0-exit.ld | ||
| linker-phase0-fault-kill.ld | ||
| linker-phase0-isolation-a.ld | ||
| linker-phase0-isolation-b.ld | ||
| linker-phase0-probe.ld | ||
| linker-phase1-lookup-client.ld | ||
| linker-phase1-time-client.ld | ||
| linker-phase2-irq-client.ld | ||
| linker.ld | ||
| README.md | ||
| ROADMAP.md | ||
| rustfmt.toml | ||
| SECURITY.md | ||
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_stdexecutable 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:
procdboots without requiringnamed/logd/crashdavailability