Re: What is a capability?

"Rob Meijer" <rmeijer-qWit8jRvyhVmR6Xm/[email protected]>
Newsgroups gmane.comp.capabilities.general
Message-ID <[email protected]>
On Fri, January 9, 2015 01:53, Kevin Reid wrote:
> On Jan 8, 2015, at 14:38, Karp, Alan H <[email protected]> wrote:
>
>> I'd like to make sure that we're not conflating object capabilities with
>> capabilities, because I think there is a distinction.  An ocap denotes
>> an object and authorizes invocation of all that object's methods.  If
>> you want to authorize less, you create a new object with fewer methods
>> that acts as a forwarder.  In KeyKOS, if I understand correctly, a
>> capability denotes some object and has bits specifying which method
>> invocations are authorized.  We did something similar in Zebra Copy; the
>> SAML authorization assertion denotes the service and lists the
>> authorized methods.  Further, with ocaps you must set up a caretaker
>> before delegating if you want separate revocability.  I don't know about
>> KeyKOS, but that's not the case with Zebra Copy.
>
> I believe this is not the proper distinction.
>
> Revocability-by-default of individual objects is a semantic choice
> independent of whether the system qualifies as a capability system. And as
> MarkM said, the permission bits are an implementation detail of particular
> capabilities.
>
>
> This is what I think of as the difference, and I hope MarkM would agree:
>
>
> A capability system is one which has the laws of locality,
> designation-and-authority-are-not-separated, etc.
>
> An object-capability system is a capability system in which the primary
> operation on a capability is "send a message", the message has a
> "selector"/"method name"/"verb" field, and all capabilities are on an
> equal footing in this way. And, more subjectively, the capabilities
> correspond to objects in an object-oriented programming language.
>

Interesting. If I interpret this loosely, basically you seem to be saying
that object capability systems are capability systems with actor
semantics?

Let me propose a third option that does not include any semantic specifiers:

An object capability system is a capability system with an insurmountable
divide between data and capabilities. The prime property is that
individual capabilities can not be serialized in such a system.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.