[cap-talk] "Same" key
Jonathan S. Shapiro
shap at eros-os.com
Sat Feb 3 15:34:27 CST 2007
On Sat, 2007-02-03 at 07:39 -0800, Charles Landau wrote:
> At 11:43 PM -0800 2/1/07, Norman Hardy wrote:
> >The operation on a page key to produce a RO page key, issued to the
> >same page key, always produces the same RO key.
> >There is only one RO page key to that page.
>
> I think we all know what Norm is saying, but this terminology is
> inconsistent with where we seem to be going.
> If two processes perform the operation to produce a RO page
> capability to the same page, they will have two capabilities, one in
> each process. Those two capabilities satisfy the EQ relationship, and
> are distinguished only in where they are stored. Rather than say they
> are "the same" capability, it would be more precise to say they are
> capabilities to the same object (using MarkM's precise definition of
> object).
If so, then we are proceeding in the wrong direction.
Capabilities are value types. The two capability memory cells holding
read-only capabilities to that page are exactly as distinct as two data
memory cells each holding the data value "3". No more and no less. To
speak of multiple *copies* of the value 3 makes sense. To speak of
multiple 3's does not. To state this another way: capabilities are
"ground types".
The problem in this conversation is that we are failing to distinguish
correctly between the capability itself and the object that it
designates. The EQ relationship is a relationship on capabilities, not
objects. In real implementations, two distinct capabilities (i.e.
capabilities that are not EQ) may designate the same object because of
the way the object server is implemented.
I haven't had time to follow this discussion, so I haven't looked at
MarkM's precise definition of object, and I'm not sure if the discussion
underway conforms to that definition, but if the statements I have made
cannot be admitted then we have a serious problem somewhere.
shap
More information about the cap-talk
mailing list