{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,23]],"date-time":"2025-12-23T00:28:31Z","timestamp":1766449711276,"version":"3.41.0"},"reference-count":30,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2014,10,28]],"date-time":"2014-10-28T00:00:00Z","timestamp":1414454400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000143","name":"Division of Computing and Communication Foundations","doi-asserted-by":"publisher","award":["CCF-0910530"],"award-info":[{"award-number":["CCF-0910530"]}],"id":[{"id":"10.13039\/100000143","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2014,10,28]]},"abstract":"<jats:p>Dynamic software updating (DSU) systems facilitate software updates to running programs, thereby permitting developers to add features and fix bugs without downtime. This article introduces Kitsune, a DSU system for C. Kitsune\u2019s design has three notable features. First, Kitsune updates the whole program, rather than individual functions, using a mechanism that places no restrictions on data representations or allowed compiler optimizations. Second, Kitsune makes the important aspects of updating explicit in the program text, making the program\u2019s semantics easy to understand while minimizing programmer effort. Finally, the programmer can write simple specifications to direct Kitsune to generate code that traverses and transforms old-version state for use by new code; such state transformation is often necessary and is significantly more difficult in prior DSU systems. We have used Kitsune to update six popular, open-source, single- and multithreaded programs and find that few program changes are required to use Kitsune, that it incurs essentially no performance overhead, and that update times are fast.<\/jats:p>","DOI":"10.1145\/2629460","type":"journal-article","created":{"date-parts":[[2014,10,29]],"date-time":"2014-10-29T18:05:55Z","timestamp":1414605955000},"page":"1-38","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":25,"title":["Kitsune"],"prefix":"10.1145","volume":"36","author":[{"given":"Christopher M.","family":"Hayden","sequence":"first","affiliation":[{"name":"University of Maryland, College Park, USA"}]},{"given":"Karla","family":"Saur","sequence":"additional","affiliation":[{"name":"University of Maryland, College Park, USA"}]},{"given":"Edward K.","family":"Smith","sequence":"additional","affiliation":[{"name":"University of Maryland, College Park, USA"}]},{"given":"Michael","family":"Hicks","sequence":"additional","affiliation":[{"name":"University of Maryland, College Park, USA"}]},{"given":"Jeffrey S.","family":"Foster","sequence":"additional","affiliation":[{"name":"University of Maryland, College Park, USA"}]}],"member":"320","published-online":{"date-parts":[[2014,10,28]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.5555\/1251398.1251417"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1519065.1519085"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.5555\/1247360.1247392"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/582419.582421"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1134760.1134767"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2010.79"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/1762174.1762221"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2451116.2451147"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-27705-4_22"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.5555\/2664350.2664352"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2384616.2384635"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2011.101"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDEW.2011.5767632"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1108970.1108971"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1217935.1217949"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","unstructured":"LiveRebel 2013. LiveRebel. Retrieved from http:\/\/zeroturnaround.com\/software\/liverebel\/. 10.1145\/503502.503505","DOI":"10.1145\/503502.503505"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855807.1855838"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1272996.1273031"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508275"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542479"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328447"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1133991"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.5555\/647478.727796"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.5555\/2482626.2482663"},{"volume-title":"Proceedings of the Workshop on Hot Topics in Software Upgrades (HotSWUp\u201913)","author":"Payer Mathias","key":"e_1_2_1_27_1","unstructured":"Mathias Payer, Boris Bluntschli, and Thomas R. Gross. 2013. DynSec: On-the-fly code rewriting and repair. In Proceedings of the Workshop on Hot Topics in Software Upgrades (HotSWUp\u201913)."},{"key":"e_1_2_1_28_1","volume-title":"Gross","author":"Payer Mathias","year":"2013","unstructured":"Mathias Payer and Thomas R. Gross. 2013. Hot-patching a web server: A case study of ASAP code repair. In PST. 143--150."},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the Workshop on Hot Topics in Software Upgrades (HotSWUp\u201913)","author":"Pina Lu\u00eds","year":"2013","unstructured":"Lu\u00eds Pina and Michael Hicks. 2013. Rubah: Efficient, general-purpose dynamic software updating for Java. In Proceedings of the Workshop on Hot Topics in Software Upgrades (HotSWUp\u201913)."},{"volume-title":"A Survey of Checkpoint\/Restart Implementations","author":"Roman Eric","key":"e_1_2_1_30_1","unstructured":"Eric Roman. 2002. A Survey of Checkpoint\/Restart Implementations. Technical Report. Lawrence Berkeley National Laboratory."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1986.6312929"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542478"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2629460","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2629460","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T07:01:17Z","timestamp":1750230077000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2629460"}},"subtitle":["Efficient, General-Purpose Dynamic Software Updating for C"],"short-title":[],"issued":{"date-parts":[[2014,10,28]]},"references-count":30,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2014,10,28]]}},"alternative-id":["10.1145\/2629460"],"URL":"https:\/\/doi.org\/10.1145\/2629460","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"type":"print","value":"0164-0925"},{"type":"electronic","value":"1558-4593"}],"subject":[],"published":{"date-parts":[[2014,10,28]]},"assertion":[{"value":"2013-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-05-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-10-28","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}