[clug] Random Thought: support for Hot-code swap in the kernel
jm
jeffm at ghostgun.com
Tue Jun 30 00:17:17 GMT 2009
What would it take to do hot-code swapping at the OS level in Linux?
More fully, I was wondering what it would take to be able to have one
version of an application start up, inherit its state from another
version that is already running, have the old version shutdown and the
new version continue running without a noticable break in service.
There are a number of languages which can do this. However, it's a
language specific feature and it relies on an image or virtual machine.
Update the vm and you loose the continuity. Ideally, you'd also be able
to migrate processes between machines so that you could stop one machine
to upgrade the OS. The Xen hypervisor, for example, supports the
migration of host OSes between machines when the host OS's filesystem is
mounted via nfs.
Ignoring such migration for the moment, ie limiting the application to
one host OS instance. What is currently available to make the transfer
of OS process state possible and what is missing?
If it wasn't for the process state in kernel space it would just be a
matter of having a set of functions in the application which would
detect the presents of the new app, serialise the state, send the state
to the new app, etc. It's things like sockets, file descriptors, etc
which screw this idea up.
Of course, there's also problems with resuming correct execution after
the upgrade and security which I haven't even thought about. One step at
a time.
Just thinking aloud,
Jeff.
More information about the linux
mailing list