Re: Switching Kernels without Rebooting?

Hua Zhong
2001-07-12T17:59:10Z

-> kaih@khms.westfalen.de (Kai Henningsen) wrote:
> riel@conectiva.com.br (Rik van Riel) wrote on 11.07.01 in <Pine.LNX.4.33L.0107111913010.9899-100000@imladris.rielhome.conectiva>:
> I suspect to do this right would need a means of storing per-process state
> controlled by the process (because only that process knows what needs to
> be saved, and what can easily be reconstructed - for example, open file
> descriptors to a place where we store cookies don't need to be saved, just
> routinely reopened), and then every user-visible non-transient program
> needs to implement it - and I don't see *that* happen in the next ten
> years.

This would be the easiest way to do in the sense that application authors take care of their own stuff, and kernel developpers only need to define rules/interfaces.

One scheme is that we can define a new signal number (e.g., SIGCKPT). When we send the signal to the process, it checkpoints itself (saves everything it needs for a restart). Then we define another signal (e.e., SIGRSUM). When we send the signal to it, it then knows that it should resume from the last checkpointed point. This is user-level checkpoint/restart, and there are already certain packages available (Condor, libckpt, etc).

If we want total transparency (i.e., applications don't need to be aware and everything is taken care of by the kernel), then the kernel needs substantial changes (I've written a kernel module to do this).