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.
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.
Programs that are updated by a DSU system are referred to as target programs.
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).
These systems contain a main machine and a hot spare.
The hot spare would be periodically seeded with a checkpoint of the primary system.