Implementation
Our DSU implementation for single- and multi-threaded C programs is called Ginseng. We have used Ginseng to dynamically update well-known open-source programs with updates derived from actual releases over a long timeframe:Software | Update timeframe (years) |
---|---|
Vsftpd | 3 |
OpenSSH | 3 |
GNU Zebra | 4 |
Memcached | 1 |
Icecast | 1 |
Space Tyrant | 1 |
The implementation uses static analysis and lightweight source code annotations to permit dynamic updates to be applied safely and timely.
Download
Ginseng, our DSU implementation for C programs, runs on Linux; it requires gcc 3.3+ and ocaml 3.08+. It should compile on BSD and MacOS, so you're able to see how the safety analyses and source-to-source transformations work, but to actually perform dynamic updates you need to have dynamic linking working, and we haven't tested that on platforms other than Linux. You can find an user's guide in the tarball, under ginseng/doc/UsersGuide/guide.pdf. Contact Iulian Neamtiu for Ginseng-related issues.
Latest development release: May 19, 2009 |
Ginseng 1.3.0 alpha a.k.a. STUMP (with multi-threading support) |
Latest stable release: Jan 13, 2008 |
Ginseng 1.2.2 (no multi-threading support) |