[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cap-talk
Subject:    [Cap-Talk] Re: Capabilities and RPC calls...
From:       Charles Landau clandau () macslab ! com
Date:       2000-11-07 19:17:28
[Download RAW message or body]

Paul Snively wrote:

> Welcome back, Jonathan!
>
> > My apologies for getting into this thread so late.

Mine too. I don't have a good excuse.

> Among the implications I wanted to make clear (or, more
> accurately, request clarification on in the event my intuitions are poor)
> was that two capabilities might carry the same object reference but totally
> different collections of interfaces presented by that object. In such a
> case, would the two capabilities be considered "identical?" "Equal?"

I believe that all this talk of object references and thinning of interfaces is off
the mark. At a fundamental level, a capability is simply something that you can
invoke; invoking means sending a message; a message contains some data and some
capabilities. A capability is described by describing its behavior when a message
is sent to it. It may be helpful to describe the behavior using concepts such as
object and access rights, but it is not necessary.

For example, capability A's behavior may be to return the datum that was last sent
to capability B. Think of A as a capability to read, and B as a capability to
write, a shared variable. I don't have to say whether A and B refer to the same
"object". The means by which A and B share the variable is entirely internal to A
and B.

It is an implementation convenience, not a fundamental abstraction, that KeyKOS and
EROS start keys can carry a "data byte" or "tag" in addition to a reference to a
domain/process.

It follows from this view that A and B are not considered equal (by Discrim), and
start keys with different data bytes are likewise unequal.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic