Software for updating
While these analyses prove properties of programs that are valuable for DSU, they are by nature sophisticated and difficult to understand.DSU systems that do not use a static analysis might require use of a specialized compiler.The location in a program where a dynamic update occurs is referred to as an update point.Existing DSU implementations vary widely in their treatment of update points.For example, Ksplice only supports code changes in functions, and does not support changes to state representation.This is because Ksplice primarily targets security changes, rather than general updates.
The hot spare would be periodically seeded with a checkpoint of the primary system.
Likewise, a program that has a plugin architecture, must be able to load and execute new code at runtime.
Similar techniques are sometimes also employed for the purpose of dynamic dead-code elimination to remove conditionally dead or unreachable code at load or runtime, and recombine the remaining code to minimize its memory footprint or improve speed.
In the event of a failure, the hot spare would take over, and the main machine would become the new hot spare. In the event of an update, the hot spare would activate, the main system would update, and then the updated system would resume control.
The earliest true Dynamic Software Updating system is DYMOS (Dynamic Modification System).