These systems are commonly tested on real-world programs.
Current operating systems and programming languages are typically not designed with DSU in mind.
Or, imagine upgrades to systems hosting in-memory databases: Right now, you have to checkpoint the DB to stable storage, stop the system, upgrade it, restart it, read the data from stable storage, and restart service.
Just the checkpointing and re-reading from disk could take tens of minutes.
Patch a running linux kernel Ksplice is an extension of the Linux kernel that allows security patches to be applied to a running kernel without the need for reboots, avoiding downtimes and improving availability (a technique broadly referred to as dynamic software updating).
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
Ksplice allows system administrators to apply patches to their operating system kernels without rebooting.
extension of the Linux kernel that allows security patches to be applied to a running kernel without the need for reboots, avoiding downtimes and improving availability (a technique broadly referred to as dynamic software updating).
The system verifies that no processors were in the middle of executing functions that will be modified by the patch.
The location in a program where a dynamic update occurs is referred to as an update point.
A copy of the license is included in the page “GNU Free Documentation License”.
The copyright and license notices on this page only apply to the text on this page.
I’m particularly excited by this announcement because I’ve been working on the general problem of updating running software, which I call (DSU), for nearly 15 years.
In this post, co-authored with my Ph D student Luís Pina, I take a closer look at the challenge that DSU presents, showing that what Linux will support is still quite far from what we might hope for, but that ideas from the research community promise to get us closer to the ideal, both for operating systems and hopefully for many other applications as well. If in the updated program the entries of a hash table are extended with a timeout field, then a dynamic update needs to convert in-memory hashtable entries to now contain a timeout field; otherwise, when the updated code goes to access that field, it will behave unpredictably.
Using Ksplice does not require any preparation before the system is originally booted, (the running kernel needs no special prior compiling, for example).
In order to generate an update, Ksplice must determine what code within the kernel has been changed by the source code patch.
As such, DSU implementations commonly either utilize existing tools, or implement specialty compilers.
These compilers preserve the semantics of the original program, but instrument either the source code or object code to produce a dynamically updateable program.