[cap-talk] In Defense of Identities - not

Toby Murray toby.murray at comlab.ox.ac.uk
Fri Dec 8 04:03:43 CST 2006


The material from these classes isn't perchance available anywhere, is
it?
(Or is it in Walnut already?)
It sounds like it would be a great source of info for E programmers and
object-cap practitioners in general.

On Thu, 2006-12-07 at 09:51 -0800, Marc Stiegler wrote:
> Nice questions. Having built 5 different membranes for a class I taught 
> on object-caps using E, I can answer these questions at least when using 
> language, not os, for enforcement:
> 
> -- "A revokes cap 'c'. Does C still have it?" The answer with all 5 of 
> the membranes I wrote is, C still has 'c' (this assumes that Bob has a 
> true 'c' to begin with, if B only had a copy of 'c' from A controlled by 
> the same membrane, both C and B have all copies revoked).
> 
> --"Should the wrapping be implicit in the transport?" Answer in all 5 of 
> my membranes: yes, the wrapping is implicit in the transport. Otherwise 
> it is error prone, and so difficult to use no one would use it.
> 
> --"What are the implications for EQ and EQUAL?" This question is made 
> complicated by the fact that EQ and EQUAL vary in meaning from language 
> to language :-) However, in the 5 E membranes, the answer varies from 
> membrane to membrane. The simplest does not preserve EQ or EQUAL for 
> anything. Three of them preserve EQUAL for pure data. The most 
> complicated membrane preserves EQ across separately manufactured copies 
> of the reference to 'c' created by the same membrane, but does not 
> preserve EQ across membranes, or between the membraned 'c' and the 
> original 'c'. I don't immediately know of a way of implementing a 
> membrane that would directly support the built-in EQ for cross-membrane 
> comparison, though it is easy enough to imagine a separate pattern that 
> one could support, similar to a notary/inspector pattern, that would 
> perform EQ across multiple membranes and 'c' itself, if one were the 
> owner of both 'c' and the membranes.
> 
> So the real answer is, pick a membrane that meets your needs. Which, 
> alas, is no answer at all if one is trying to pick the one true membrane 
> to be used by the OS :-) Is there something wrong with the membranes in 
> KeyKos? Or did I miss that part of the discussion?
> 
> --marcs
> 
> Jonathan S. Shapiro wrote:
> > On Wed, 2006-12-06 at 15:44 -0500, Jonathan S. Shapiro wrote:
> > 
> >> 1. Introducing a wrapper is incredibly expensive (thousands of cycles).
> > 
> > And when you think about it, this is quite a nasty statement. If
> > membranes are a frequently manipulated pattern this will almost
> > certainly perturb the OS, because it means that for efficiency reasons
> > the OS must have explicit cognizance of membrane domain boundaries.
> > 
> > This in turn means that we are introducing an entirely new capability
> > model, because one of the operations (we may want others) takes the
> > form:
> > 
> >   domain->revoke(cap)
> > 
> > and we don't want to search the domain to hunt them down. This is quite
> > a serious mess.
> > 
> > But there is a bigger problem. I haven't heard anybody articulate a
> > sensible algebra for membrane construction. Consider processes in three
> > different revocation domains A, B, C.
> > 
> >   A sends cap 'c' to C.
> >   B sends cap 'c' to C.
> > 
> > A revokes cap 'c'. Does C still have it? Which copies? Must the sender
> > be explicitly aware of membrane domain boundaries, or should the
> > "wrapping" be implicit in the transport? What are the implications for
> > EQ and EQUAL?
> > 
> 
> _______________________________________________
> cap-talk mailing list
> cap-talk at mail.eros-os.org
> http://www.eros-os.org/mailman/listinfo/cap-talk



More information about the cap-talk mailing list