Cosmos/source/Playgrounds/Ben/SOOOS/Code/trustedLibs/Capabilities/Cosmos.Capabilities/CapabilityDesign.rtf

94 lines
No EOL
2.7 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{\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
}