[cap-talk] EQ, MyCap? review
Charles Landau
clandau at macslab.com
Tue Feb 12 17:20:26 EST 2008
At 1:20 PM -0800 2/12/08, Jed Donnelley wrote:
>Regarding:
>
>On 2/12/2008 8:53 AM, Charles Landau wrote:
> > At 12:11 AM -0800 2/12/08, Jed Donnelley wrote:
>>> >Can you describe how that situation (access to private
>>> >data for capabilities communicated as parameters) is
>>> >handled in the KeyKOS kin?
>>
>> In KeyKOS, MyCap? is called DOMAINCREATOR__IDENTIFY_ENTRY
> > (http://www.cis.upenn.edu/~KeyKOS/agorics/KeyKos/Gnosis/67.html#iden).
>> In EROS and CapROS it's Amplify Gate Key
>> (http://www.eros-os.org/devel/ObRef/standard/ProcessCreator.html).
>> These operations return a domain/process key, which allows you to
>> extract all the components of the process, such as its address space.
>
>I looked at the above references. The terminology is foreign
>enough to me that I haven't yet seen what I was looking for in
>the above. The Amplify Gate Key sounds to me more like a call
>made after an "entry" (invocation) that would allow access to
>the state of the invoked capability - though I admit I don't
>know what a "process" key is in the above context.
>
>What I was looking for is a mechanism whereby if, let's say,
>a capability A is invoked and A is also passed in as a parameter
>to the invocation of A, then the service (deputy) can determine
>that the parameter is one of the capabilities that it services
>and can identity its associated private state.
Let's say P is the process executing the service (deputy), and A is a
capability that grants the permission to send a message to P. A is
called a "start" capability to P in EROS/CapROS, or an "entry" key in
KeyKOS.
P usually holds a capability that allows it to do Identify_Entry or
Amplify Gate Key on start caps to a set of processes including P.
(The set is all processes that have the same "brand" as P.) If the
parameter to Amplify Gate Key is a start key to a process Q (Q may or
may not be the same as P, but it has the same brand as P), the
operation returns a Process key to Q. A Process key allows you to do
essentially anything to a process, not just call it. For example you
could reach in and share memory with it. Or you could call it using a
private interface.
The object that implements the Amplify Gate Key method is the Process
Creator, but this may change in the future.
In EROS/CapROS, the capability to a caller that allows the callee to
reply is called a "resume" capability; in KeyKOS it's an "exit" key.
Amplify Gate Key and Identify_Exit recognize these capabilities too.
I hope this helps with the terminology. Amplify Gate Key is very
equivalent to MyCap?, for reasonable definitions of "My".
More information about the cap-talk
mailing list