[cap-talk] Objects and Facets

Neal H. Walfield neal at walfield.org
Wed Aug 2 08:23:42 EDT 2006

I understand the terms object and facet in the following way: an
object encapsulates some state which can be sensed or manipulated
through capability invocations; a facet presents an object with
diminished authority, e.g. a read-only facet.

On the Hurd, we have the following: a file consists of its contents
and some meta-data.  When a user calls "open", the file server doesn't
simply return a capability naming this state; it first allocates some
memory to hold, among other things, the position of the cursor in the
file and returns a capability naming that state.  This state is
private to each open.

In the language of capabilities, what would be the file object here?
Is it the shared state and the private state?  (If so, is the shared
state also a separate object from this conglomeration of the shared
state and the private state?)  Is it the private state with the
addition of a capability naming an object encapsulating the shared
state?  In short, what's the right way to talk about these things?


More information about the cap-talk mailing list