Re: Binary Kernel Patching - Upgrading without a reboot

David (david@kalifornia.com)
Sat, 19 Jun 1999 02:42:46 -0700


"Michael B. Trausch" wrote:

> On Fri, 18 Jun 1999, Jordan Mendelson wrote:
> > I know a while back there was talk of a method of upgrading your
> > kernel for things like security holes, new features, etc using a
> > binary method similar to the way we use insmod to load kernel modules.
> You know, I don't know a whole lot about the internals of an operating
> system... but I do believe that you have to be crazy to think that you can
> change the *core* of an OS and not reboot it... Think about it. You can't
> do that with a user-level program, the exact reason escapes my mind now,
> but it has to do with how the memory is mapped during execution.

eh? you certainly can. use the same concept of process migration across
cpu/machine against the kernel. migrate all the parts of a section that are
being used to the new section and disable/purge the old section. modules are a
blunt rudimentary approach to this already. unload the legacy module, load the
new module, resume operation.

You can do this with a user level program just as well. Note the usage of
dl_open(...) and related functions. Simply signal your program to unload that
section, replace the code, and reload.

This is dynamic libraries. The concept is of dynamics is already surrounding
you, just in a very simple form. Extend it's functionality.

> The OS is nothing but a user level program from the CPU's view instead of
> the user's view. (That's not exactly what I mean to say, but I think I
> convey my idea... that's the best way I can think of to describe it at the
> moment.) You have to restart that program if you want to change it.

Not always. You change the way things operate when you load modules into apache,
into the kernel, etc.

As a final note, yes that project got off the ground, got some starting success
and we haven't heard much about it lately. In the near future the Linux kernel
will be able to handle things like this. The design of it employs consideration
of "what if bank0 memory faults...migrate checksummed memory contents and err
handle the rest, then disable bank0 for operator swapout." after the operator
has swapped the bad memory out, the kernel tests it then returns bank0 to
operation.

The only thing impossible is the unthinkable. If you can't dream it, you can't
do it.

-d

--
 This is Linux Country. On a quiet night, you can hear Windows NT reboot!
  Do you remember how to -think- ? Do you remember how to experiment? Linux
__ is an operating system that brings back the fun and adventure in computing.
\/  for linux-kernel: please read linux/Documentation/* before posting problems

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/