|
ABSTRACT
This article presents Proteus, a core calculus that models dynamic software updating, a service for fixing bugs and adding features to a running program. Proteus permits a program's type structure to change dynamically but guarantees the updated program remains type-correct by ensuring a property we call con-freeness. We show how con-freeness can be enforced dynamically, and how it can be approximated via a novel static analysis. This analysis can be used to assess the implications of a program's structure on future updates in order to make update success more predictable. We have implemented Proteus for C, and briefly discuss our implementation which we have tested on several well-known programs.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
Ajmani, S., Liskov, B., and Shrira, L. 2006. Modular software upgrades for distributed systems. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP).
|
| |
3
|
Gautam Altekar , Ilya Bagrak , Paul Burstein , Andrew Schultz, OPUS: online patches and updates for security, Proceedings of the 14th conference on USENIX Security Symposium, p.19-19, July 31-August 05, 2005, Baltimore, MD
|
| |
4
|
Appel, A. 1994. Hot-Sliding in ML. Unpublished manuscript.
|
| |
5
|
Armstrong, J. L. and Virding, R. 1991. Erlang---An experimental telephony switching language. In the 13th International Switching Symposium. Stockholm, Sweden.
|
 |
6
|
|
| |
7
|
Andrew Baumann , Gernot Heiser , Jonathan Appavoo , Dilma Da Silva , Orran Krieger , Robert W. Wisniewski , Jeremy Kerr, Providing dynamic update in an operating system, Proceedings of the annual conference on USENIX Annual Technical Conference, p.32-32, April 10-15, 2005, Anaheim, CA
|
| |
8
|
Bierman, G., Hicks, M., Sewell, P., and Stoyle, G. 2003a. Formalizing dynamic software updating. In Proceedings of (USE03) the 2nd International Workshop on Unanticipated Software Evolution Warsaw, Poland.
|
 |
9
|
Gavin Bierman , Michael Hicks , Peter Sewell , Gareth Stoyle , Keith Wansbrough, Dynamic rebinding for marshalling and update, with destruct-time ?, Proceedings of the eighth ACM SIGPLAN international conference on Functional programming, p.99-110, August 25-29, 2003, Uppsala, Sweden
|
| |
10
|
Bloom, T. 1983. Dynamic module replacement in a distributed programming system. Ph.D. thesis, Laboratory for Computer Science, The Massachussets Institute of Technology.
|
| |
11
|
Bloom, T. and Day, M. 1993. Reconfiguration and module replacement in Argus: Theory and practice. Soft. Engin. J. 8, 2 (March), 102--108.
|
 |
12
|
Chandrasekhar Boyapati , Barbara Liskov , Liuba Shrira , Chuang-Hue Moh , Steven Richman, Lazy modular upgrades in persistent object stores, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
| |
13
|
|
| |
14
|
|
| |
15
|
Drossopoulou, S. and Eisenbach, S. 2003. Flexible, source level dynamic linking and re-linking. In Proceedings of the ECOOP 2003 Workshop on Formal Techniques for Java Programs.
|
 |
16
|
|
 |
17
|
|
| |
18
|
|
 |
19
|
|
| |
20
|
Gilmore, S., Kirli, D., and Walton, C. 1997. Dynamic ML without dynamic types. Tech. rep. ECS-LFCS-97-378, LFCS, University of Edinburgh.
|
 |
21
|
Dan Grossman , Greg Morrisett , Trevor Jim , Michael Hicks , Yanling Wang , James Cheney, Region-based memory management in cyclone, Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, June 17-19, 2002, Berlin, Germany
|
| |
22
|
Gupta, D. 1994. Online software version change. Ph.D. thesis, Department of Computer Science and Engineering, Indian Institute of Technology, Kanpur, India.
|
| |
23
|
|
 |
24
|
|
| |
25
|
Hicks, M., Tse, S., Hicks, B., and Zdancewic, S. 2005. Dynamic updating of information-flow policies. In Proceedings of the International Workshop on Foundations of Computer Security (FCS).
|
| |
26
|
|
| |
27
|
|
| |
28
|
|
 |
29
|
|
 |
30
|
|
 |
31
|
Iulian Neamtiu , Michael Hicks , Gareth Stoyle , Manuel Oriol, Practical dynamic software updating for C, Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, June 11-14, 2006, Ottawa, Ontario, Canada
|
| |
32
|
|
| |
33
|
David Oppenheimer , Aaron Brown , James Beck , Daniel Hettena , Jon Kuroda , Noah Treuhaft , David A. Patterson , Katherine Yelick, ROC-1: Hardware Support for Recovery-Oriented Computing, IEEE Transactions on Computers, v.51 n.2, p.100-107, February 2002
[doi> 10.1109/12.980002]
|
| |
34
|
|
| |
35
|
Peterson, J., Hudak, P., and Ling, G. S. 1997. Principled dynamic code improvement. Tech. rep. YALEU/DCS/RR-1135, Department of Computer Science, Yale University.
|
| |
36
|
Soules, C., Appavoo, J., Hui, K., Wisniewski, R. W., Silva, D. D., Ganger, G. R., Krieger, O., Stumm, M., Auslander, M., Ostrowski, M., Rosenburg, B., and Xenidis, J. 2003. System support for online reconfiguration. In Proceedings of the USENIX Annual Technical Conference.
|
 |
37
|
Gareth Stoyle , Michael Hicks , Gavin Bierman , Peter Sewell , Iulian Neamtiu, Mutatis mutandis: safe and predictable dynamic software updating, Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.183-194, January 12-14, 2005, Long Beach, California, USA
|
 |
38
|
|
 |
39
|
|
 |
40
|
|
| |
41
|
Zorn, B. 2005. Personal communication, based on experience with Microsoft Windows customers.
|
|