This kind of generic process state-saving is extremely complex. Your
description is greatly oversimplifying the problem.

For Linux:
* There is a user-space solution called CyroPID. It hasn't been updated
since 2005 and doesn't work on recent kernels (because, yes, the whole
thing breaks as soon as the kernel changes a bit how process memory is
organized).
* There is a fork called CyroPID2, which hasn't been updated since 2009
and doesn't work at all on 64-bit.
* There's a "ckpt" system involving kernel patches. I don't know if it's
merged in the mainline kernel yet, but either way you need root to
checkpoint a process.
* BLCR looked quite promising: it's regularly updated and supports Linux
kernels up to 3.7.1. But you need to load a kernel module (off-limits for
BOINC).

I don't think you can slap together some "save memory and reload it at a
specified location" code and do what teams of low-level developers couldn't
do in all these years ;) The only generic user-space process state saving
that works flawlessly is to run everything in a virtual machine and take a
snapshot of it, and I think BOINC supports that already.

-- 
Nicolás

2013/4/11 Robert Miles <[email protected]>

> I'm interested, but doubt that I have enough of the right experience
> to be ready.
>
> On your list of development tasks:
>
> Runtime system
>
>     Implement a mechanism where the client can ask apps to checkpoint.
>
> Something to think about:  Which versions of which operating systems
> allow requesting memory blocks of specified sizes at specified locations?
>
> This would make it easier to add checkpoints to programs that don't have
> them by copying all of the program's memory to a file, and restarting from
> checkpoints by copying it back to the same locations in memory. Extra
> disk space required for such checkpoints, but at least it's better than
> not having checkpoints at all.
>
> For 64-bit Windows, this needs to be evaluated separately for 32-bit
> programs and 64-bit programs.
>
> From: David Anderson <[email protected]>
> Subject: [boinc_dev] updated list of development tasks
>
>
>  Any programmers out there interested in helping BOINC?
>> I've updated the list of development tasks:
>> http://boinc.berkeley.edu/**trac/wiki/DevProjects<http://boinc.berkeley.edu/trac/wiki/DevProjects>
>>
>
>  -- David
>>
>
> ______________________________**_________________
> boinc_dev mailing list
> [email protected]
> http://lists.ssl.berkeley.edu/**mailman/listinfo/boinc_dev<http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev>
> To unsubscribe, visit the above URL and
> (near bottom of page) enter your email address.
>
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to