Technology
Pure-capability systems
In a pure-capability ABI, pointers are represented and passed as capabilities throughout the supported software environment.
Why it matters
Pure capability offers stronger default coverage than hybrid use, while requiring the ABI, libraries and applications to handle capability-sized pointers and rules.
In brief
In a pure-capability ABI, pointers are represented and passed as capabilities throughout the supported software environment. This provides broad hardware-enforced pointer bounds, permissions and provenance across compiled C and C++ code.
Key considerations
1. ABI
Data layouts, calling conventions, relocations and system interfaces must be capability-aware.
2. Porting
Code must address pointer-size, integer-cast, union, assembly and external-interface assumptions.
3. Coverage
Protection extends widely through rebuilt code, but temporal safety and compartment policy still require their own mechanisms.
Evidence and caveats
Pure-capability compatibility depends on the complete software stack. Prebuilt conventional binaries cannot simply be linked into the ABI.
Use the exact architecture and software specification implemented by the target. Separate architectural guarantees from system-level outcomes.