[cap-talk] Cap OS question
clandau at macslab.com
Thu Sep 3 12:58:34 PDT 2009
On 8/2/09 Ben Kloosterman wrote:
>> On Mon, Aug 03, 2009 at 12:36:21AM +0800, Ben Kloosterman wrote:
>>> 2) How to handle the access rights and where does the logic go . In the
>>> capability ?
>> Access rights belong in the object the capability points to.
> Very interesting . This basically adds the requirement that each such
> object has only set of one access rights.
LOGICALLY, this is correct, and agrees with the definition of object in
MarkM's thesis (http://erights.org/talks/thesis/).
HOWEVER, an object, under this definition, does not equate to a single
area of memory containing the object's implementation. The memory that
implements an object may be located partly in the same area that
implements capabilities to the object.
To state it plainly, bits representing access rights are often stored
with the capability.
> How do you handle a Process
> object in terms of the Process itself and a separate read only version.
Think of this as two objects: a read-write object, and a read-only
object. These two objects share the mutable state of the Process. A
capability to the read-write object is implemented as a bit indicating
read-write access, and a pointer (reference) to the shared state of the
Process. A capability to the read-only object is implemented as a bit
indicating read-only access, and a pointer (reference) to the shared state.
More information about the cap-talk