Sun Sep 19 18:55:37 CEST 2010

Hack to improve RAM usage

Let's say we have plenty of Flash.  And let's say that multiple passes
are allowed.  Can we dump out the image such that it can be stored in
Flash and simply resumed?

This requires serialization of the leaf objects.

That is fixable, but it does not work for non-serializable objects
like OS references (file descriptors).  An image is a tree of memory
objects where some of the leafs are holes that link it to the OS.

But if the Scheme _is_ the OS, then there are really no such objects.

The point is: that is wrong.  In fact, going down to the hardware
there is always going to be hidden state and context-sensitive
behaviour, simply because a machine is never isolated.

Linking with the OS/hardware is linking with _objects_ not just data.

What is the interesting problem hidden here? [1]

An operating system image has a number of communication channels.
Whenever an image gets restored/resumed, the communication channels
need to be restored.

Can we make this explicit?  Have a base object that is a port and a
standard way to re-initialize.  That way image snapshotting is free.

The trick there is dependency between ports, so let's have a port
hierarchy (one port initializer is parameterized by several
initialized ports).

[1] entry://../compsci/20100919-193304