Re: [friam] Re: What is a capability?
Jed Donnelley <capability-iCFHVraI1K1Wk0Htik3J/[email protected]>
| Newsgroups | gmane.comp.capabilities.general |
|---|---|
| Message-ID | <[email protected]> |
On 1/8/2015 4:53 PM, Kevin Reid wrote: > 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. Hmmm. Perhaps I've been focusing on the wrong thing or over simplifying. For me the relevant distinction is the membrane pattern. If a capability system supports the membrane pattern (and thus can implement services like network capabilities, the Horton responsibility tracking mechanism, and other services that depend in this functionally invisible "insertion" property) then its "object-capability". If not, not. This is why I've encouraged those implementing capability systems to test them with a membrane implementation. I'm not sure how this ability to support the membrane pattern maps into the above description. Can somebody describe the relevant difference and perhaps why the choice (definition?) has been made as it is? --Jed