[coyotos-dev] Coyotos boot

Jonathan S. Shapiro shap at eros-os.com
Mon Apr 7 23:44:14 EDT 2008


On Tue, 2008-04-08 at 05:18 +0200, Pierre THIERRY wrote:
> Scribit Jonathan S. Shapiro dies 07/04/2008 hora 22:19:
> > If it is desired to implement a persistent system, it is the
> > responsibility of some (unspecified) program in the mkimage to
> > periodically call the snapshot interface and arrange for checkpoint
> > drain. If this is not done, the system is non-persistent.
> 
> I suppose it is also this unspecified program that will tell the kernel
> where to find the persistent objects and where to write checkpoints. Is
> it supposed to be the space bank, in a typical configuration?

Dear God, no! The space bank has enough to do allocating storage!

You are now asking about persistent object load/unload, which is
different from bootstrap. Think of it this way:

When the kernel goes to "prepare" a capability (convert it to in-memory
form), it consults the following items:

  1. The hash table of objects that are already in memory.
  2. The table of object range managers.

The kernel has a built-in object range manager for ROM regions. There is
also a mechanism for a non-persistent process to act as an object
server. The kernel says, in effect, "I need the GPT whose OID is 5 and
whose allocation count is 22". The object server responds either "no
such object exists" or "I have loaded it".

On write-back, a similar protocol operates in reverse. It is slightly
complicated by the addition of commit generations to the protocol.

The kernel has no knowledge of how/where objects are written (if at
all).

> 
> > So to implement a non-persistent system, the current design can be
> > used directly.
> 
> Thanks, I think I see approximately how.


shap



More information about the coyotos-dev mailing list