mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-22 22:09:12 +00:00
94 lines
No EOL
2.7 KiB
Text
94 lines
No EOL
2.7 KiB
Text
{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Courier New;}}
|
||
{\*\generator Msftedit 5.41.21.2508;}\viewkind4\uc1\pard\lang3081\b\f0\fs20 IPC Capabilities\par
|
||
\par
|
||
\par
|
||
\b0\par
|
||
\b The problem is how to do messaging and capability Invoke ?\par
|
||
\par
|
||
\b0 1) Capabilities will be sealed objects with internal constructors ( or private and a static internal generate method) \par
|
||
\par
|
||
\par
|
||
\par
|
||
Capabilities are not invoked they are merely used . Note it is possible for Capabilities to have methods but this will cause threading issues. Hence CDC ( Cross Domain Communication) is independent of Capabilities though Capability references are used as Paramaters. \par
|
||
\par
|
||
\b Where are they stored ?\par
|
||
\b0\par
|
||
Capabilities are stored in shared memory created by the capability service or kernel ( ie With the kernel ( or capability service) as the owner) . Hence user programs can reference them and can Invoke the object which will call the server. User programs ( or services) may not have a reference to any object or call the kernel . [Alternative is a special keyring which holds the capabilities which can hence call the kernel]\par
|
||
\par
|
||
\b Capability \par
|
||
\par
|
||
\b0 public abstract Class Capability\par
|
||
\{\par
|
||
\par
|
||
\par
|
||
protected Capability() //warning should be internal for all derived classes\par
|
||
\{\par
|
||
\par
|
||
\}\par
|
||
\par
|
||
\}\b\par
|
||
\par
|
||
\par
|
||
Secured System types and their Capabilities.\b0\par
|
||
\par
|
||
\b\i Core Capabilities\b0\i0\par
|
||
\par
|
||
Null Capability \par
|
||
\par
|
||
SystemControl\par
|
||
\tab SystemControlCapability Start, stop system, enter sleep states.\par
|
||
\par
|
||
*Allocator\par
|
||
\tab AllocatorSpaceCapability\par
|
||
\par
|
||
MemoryManager\par
|
||
\tab MemoryPageCapability\par
|
||
\par
|
||
EndPoint \par
|
||
\tab EndPointCapability \par
|
||
\par
|
||
Thread\par
|
||
\tab ThreadCapability\par
|
||
ScheduleCOntrol\par
|
||
\tab ScheduleControlCapability ; Interface with scheduling primatives.\par
|
||
\par
|
||
Processor \par
|
||
\tab ProcessorScheduleQueue\par
|
||
\par
|
||
Capability\par
|
||
\tab CapabilityRightsCapability \par
|
||
\tab PersistLoadCapability\par
|
||
\par
|
||
\par
|
||
AppDomain\par
|
||
\tab AppDOmain Capability\par
|
||
\par
|
||
Syslog\par
|
||
\tab Syslog Capability\par
|
||
IOPort\par
|
||
\tab IO Port Capability\par
|
||
DMA\par
|
||
\tab DMA Capability\par
|
||
IRQWait\par
|
||
\tab IRQ Wait Capability\par
|
||
\par
|
||
\par
|
||
\b\i User Capabilities\b0\i0\par
|
||
\par
|
||
Directory\par
|
||
\tab DirectoryCapability\par
|
||
\tab ViewDIrectoryCapability\par
|
||
\tab ViewAndCreateCapability\par
|
||
File \par
|
||
\tab ReadFileCapability\par
|
||
\tab WriteFileCapability\par
|
||
\tab ReadWriteFileCapability\par
|
||
\tab ReadExecuteFileCapability\par
|
||
\tab FileCapability\par
|
||
\par
|
||
URI\par
|
||
\tab URICapability Everything is a URI , file systems etc \par
|
||
\par
|
||
\par
|
||
}
|
||
|