[coyotos-dev] Executable format for Coyotos

Jonathan S. Shapiro shap at eros-os.com
Mon Mar 12 14:01:19 CDT 2007


I think that the confusion here may be less about operations and more
about theory of operation.

Pierre: Hopefully, it will be clear enough that the GPT insert() and
fetch() operations can be used to put things into GPT slots. See:

  http://www.coyotos.org/docs/ukernel/spec.html#MAN-7

You probably have figured out that the memory interface includes a
method setGuard() for setting up guard values:

  http://www.coyotos.org/docs/ukernel/spec.html#MAN-11

[Aside: I hate these links. We need a way to make more durable link
names as the document changes -- especially for things like this where
we have a perfectly good, unambiguous, permanent name! I know what needs
doing in osdoc, but I haven't had time to do it.]

Finally, the initial spacebank interface is now online (some
improvements coming today):

 http://www.coyotos.org/docs/base/interfaces.html#MAN-1

so you can see how to obtain the required objects.


But it occurs to me that there may still be a significant confusion.
Perhaps you are wondering where the mmap() operation is? In case this is
the confusion, let me try to explain what is going on.

There is no mmap() operation in Coyotos or EROS. You build an address
space by making an arrangement of GPT and Page objects, and you install
a capability to a GPT into the .dataSpace slot of the process object
(see the process interface documentation). The mere act of installing a
GPT capability causes the named GPT tree to become your address space.

[Detail: technically, you can use a page capability too.]


So if you really want to implement all of this yourself, you would call
the space bank to allocate the objects and then you would arrange them
and use them.

In practice there will be utility code that does all of this for you; it
just isn't documented quite yet.


On Mon, 2007-03-12 at 14:15 -0400, Jonathan Adams wrote:
> On Mon, 2007-03-12 at 17:34 +0100, Pierre THIERRY wrote:
> > Scribit Jonathan S. Shapiro dies 12/03/2007 hora 12:14:
> > > > So the low-level question is: what kernel interface will the ZSC use
> > > > do do that?
> > > Have we answered your question on this?
> > 
> > I still don't see exactly what interfaces can be used to create pages,
> > create GPTs and insert pages into GPTs...
> 
> The Space Bank will use the coyotos.range.get*Page() calls (which aren't
> currently appearing in the spec), to fabricate keys to known-unused
> pages and GPTs, and returns them to the ZSC.  The ZSC will use
> coyotos.page.copyFrom() to copy the page content to the new pages, and
> coyotos.gpt.guardedInsert() to insert the new pages and GPTs.
> 
> Cheers,
> - jonathan
> 
> 
> _______________________________________________
> coyotos-dev mailing list
> coyotos-dev at smtp.coyotos.org
> http://www.coyotos.org/mailman/listinfo/coyotos-dev
-- 
Jonathan S. Shapiro, Ph.D.
Managing Director
The EROS Group, LLC
+1 443 927 1719 x5100



More information about the coyotos-dev mailing list