Find a simple checkpoint package, which runs an application program, set checkpoint, and the program can be restarted after interrupt. The check- point function basically save and store the stack, data, and heap segments of the target. This package is much more portable than other available it doesn't try to read the infinite variety of core file formats. It doesn't use setjmp() or longjmp(), so the compiler can put variables and intermediate values into registers without any risk of destroying the values of those variables (as longjmp() usually does). It handles stacks in either direction. It also restores file positions and signal handlers. What's needed to implement it on microkernel? An application programming environment, just like our that on our workstation.
Started writing applications. One application (heartbeat) sends a UDP message every time period to a particular host. For example, it can send a message like 'HEARTBEAT nnn' to berg.crhc.uiuc.edu every 2 seconds where 'nnn' is a counter. The second application is just a hello world application.
I've spent a while trying to get the file system working. I can get one of the demo programs to run. It prints information about the filesystem. But, it crashed the filesystems once and damaged a few files another time. I don't know why.
I started looking at the feasibility of using a separate address space for each process. There is a library oskit_svm (simple virtual memory) which may be useful. Flux has no support for a 'process', so the idea of a user level process requires a) creating address spaces for each process b) scheduling between these processes (or combining them with the task concept)