Practical dynamic software updating for c
Practical dynamic software updating for c - washington state law minors dating adults
However, both of those systems require target programs to pass a static analysis that may be over-conservative.They also perform significant source-to-source compilation of the original program, which adds overhead and can inhibit compiler optimizations.
We have used Kitsune to retrofit a half-dozen open-source programs to support dynamic updating.
Redundancy-based updates require extra hardware resources, which may not otherwise be needed, and can require significant changes to application code.
Checkpointing to and restoring from disk can introduce a long delays (tens of seconds to minutes).
Existing DSU implementations vary widely in their treatment of update points.
In some systems, such as Up Stare and Po LUS, an update can occur at any time during execution.
Kitsune requires no extra hardware resources (except perhaps a modest increase in memory) and performs updates in millseconds.
Adding support for dynamic updating using Kitsune is essentially adding a feature to your application.Update times for Redis scale nearly linearly with database keys, on the opposite end of the spectrum.That said, a small change to Redis makes its updates essentially constant-time too. Kitsune can update programs that do not introduce a backwards-incompatible protocol change; e.g., we have updated Tor, a distributed overlay router.Kitsune is a simple framework that C programmers can use to write software that can be updated on the fly.Such dynamic software updates preserve in-memory state and active connections, thus avoiding the disruption of shutdown-and-restart.These systems are commonly tested on real-world programs.