[coyotos-dev] Storage Objects
Jonathan S. Shapiro
shap at eros-os.org
Tue May 30 10:09:29 EDT 2006
On Tue, 2006-05-30 at 08:31 +0200, Neal H. Walfield wrote:
> I sent this message last night but I neither got a copy nor have I
> seen it appear in the message archives. Hence, I'm resending it.
>
>
>
> A GPT object contains an object ID. The named object contains 16
> capability slots (256 bytes). A process object also contains an
> object ID. The named object contains a number of capability slots.
> One slot if for a schedule object, another for a page object for the
> UPCB and a thing for a cappage object for the capability registers.
> There is also normal data: the protected payload, the fault code and
> the fault info. This totals about 200 bytes.
Actually: 16*16(cap) * 8(oid) + 4 (alloc count) = 268.
>
> I thought a storage object was the size of a hardware page. Since
> these objects use much less than 4kb what happens to the rest of the
> storage in the object? Do we just not care that it is wasted because
> these objects are rare relative to data and cappages?
The layout of objects into disk storage frames is the job of the object
manager, which runs in non-persistent storage.
> Since there are only two types of objects on backing store, pages and
> cappages, how do we get both data and capabilities in a single object
> (e.g. the process)?
The assumption doesn't hold in Coyotos: the on-disk representation is
completely at the discretion of the object manager. The kernel only
knows about its interface to the object store.
You may wish to pull a copy of the Coyotos tree and look at
sys/obstore/, which is where this interface is defined.
shap
More information about the coyotos-dev
mailing list