This documentation topic refers to the rings for the Gen3 kernel which is currently in progress. The older Gen3 kernel rings have been disabled and will be phased out shortly.
What is a Ring?
To Do
Specifying a Ring
Use Cosmos.cfg, Ring entry.
Rings
Cosmos has the following rings. Assemblies in the same ring are permitted to reference each other.
CPU
Special Permissions
- Unsafe Code
- X# / Assembly
Inbound Refs
- CpuPlug
- Debug
- Platform
Outbound Refs
- Debug
- External
Platform
Inbound Refs
- Debug
Outbound Refs
- CPU
- Debug
- External
- HAL
HAL
Inbound Refs
- Debug
- Platform
- System
Outbound Refs
- Debug
- External
System
Inbound Refs
- Application
- Debug
- Plug
Outbound Refs
- Debug
- External
- HAL
Application
Inbound Refs
- Debug
Outbound Refs
- Debug
- External
- System
Plug
All Plug Targets must be in external ring assemblies
Inbound Refs
- Debug
Outbound Refs
- Debug
- External
- System
CpuPlug
Special Permissions
- Unsafe Code
- X# / Assembly
Inbound Refs
- Debug
Outbound Refs
- CPU
- Debug
- External
Debug
Special Permissions
- Unsafe Code
- X# / Assembly
Inbound Refs
- Any
Outbound Refs
- Any
External
Any assembly without a ring marker will be placed in the External Ring. Any unsafe code or P/Invokes that are unplugged will generate and error if referenced.
Inbound Refs
- Any
Outbound Refs
- Debug