[cap-talk] kernel object knowledge

Charles Landau clandau at macslab.com
Wed May 30 13:09:16 EDT 2007


At 1:53 PM -0400 5/29/07, Jonathan S. Shapiro wrote:
>On Tue, 2007-05-29 at 00:04 -0700, Jed Donnelley wrote:
>
>>  Any capability system worthy of the name must include an extension
>>  mechanism capable that can implement what we have referred to as
>>  invisible membranes - able to "membrane" or proxy any other capability,
>>  including presumably any sort of 'kernel' known or supported
>>  capability.
>
>I do not agree, but I think that my disagreement may be a matter of
>"fine print". I would like to find out.
>
>There are two readings that I could take of your statement above:
>
>1. It must be possible to front-end a capability at the "transport"
>    (i.e. bare invocation) layer without knowledge of the capability's
>    protocol. From a transport perspective I believe this is possible in
>    KeyKOS and EROS. It is *technically* possible in Coyotos, but the
>    storage cost involved is prohibitive (because messages can be very
>    long).
>
>    I refer to this as an "oblivious front end".
>
>2. It must be possible for an interposing agent to ask the target
>    object what it's alleged interface is, and based on knowledge of
>    the interface specification (possibly obtained from the target
>    object), forward all messages to the target that the target
>    alleges to accept.
>
>    However, it is acceptable for such an agent to drop, ignore,
>    mutilate, or fail messages that do not comply with the alleged
>    protocol.
>
>There are two difficulties with oblivious membranes in OS
>implementations:
>
>   1. Messages are multidirectional. A correct implementation must
>      understand the protocol well enough to know which capabilities
>      to wrap.
>
>   2. Naive (and even sophisticated) membranes must perform
>      storage allocation on every invocation

to wrap every capability passed

>, except where
>      they are able to recognize a capability as EQ to some
>      capability that they have already wrapped.

Don't these difficulties apply also to non-oblivious membranes, 
though to a lesser degree? A non-oblivious membrane may know that 
some capabilities do not need to be wrapped, but there may still be 
some that do need to be wrapped. At best, a non-oblivious membrane 
simply lowers the bound of storage required (possibly lowering it 
from infinite to finite).


More information about the cap-talk mailing list