On dynamically updating a computer program: from concept to prototype
Journal of Systems and Software - Special issue on software maintenance
A Formal Framework for On-line Software Version Change
IEEE Transactions on Software Engineering
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Scalable Certification for Typed Assembly Language
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Safe and Flexible Dynamic Linking of Native Code
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Dymos: a dynamic modification system
Dymos: a dynamic modification system
Dynamic software updating
An API for Runtime Code Patching
International Journal of High Performance Computing Applications
Dynamic C++ classes: a lightweight mechanism to update code in a running program
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Flash: an efficient and portable web server
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
Type-based hot swapping of running modules (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Gamma system: continuous evolution of software after deployment
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Monitoring deployed software using software tomography
Proceedings of the 2002 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
IWAN '01 Proceedings of the IFIP-TC6 Third International Working Conference on Active Networks
Evolution in Action: Using Active Networking to Evolve Network Support for Mobility
IWAN '02 Proceedings of the IFIP-TC6 4th International Working Conference on Active Networks
Safe and Flexible Dynamic Linking of Native Code
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Predicting problems caused by component upgrades
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
HydroJ: object-oriented pattern matching for evolvable distributed systems
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Lazy modular upgrades in persistent object stores
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Dynamically updatable component-based system (DUCS)
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A declarative framework for adaptable applications in heterogeneous environments
Proceedings of the 2004 ACM symposium on Applied computing
A Framework for Evolutionary, Dynamically Updatable, Component-Based Systems
ICDCSW '04 Proceedings of the 24th International Conference on Distributed Computing Systems Workshops - W7: EC (ICDCSW'04) - Volume 7
Enabling autonomic behavior in systems software with hot swapping
IBM Systems Journal
Devirtualizable virtual machines enabling general, single-node, online maintenance
ASPLOS XI Proceedings of the 11th international conference on Architectural support for programming languages and operating systems
Dynamically programmable and reconfigurable middleware services
Proceedings of the 5th ACM/IFIP/USENIX international conference on Middleware
Leveraging architectural models to inject trust into software systems
SESS '05 Proceedings of the 2005 workshop on Software engineering for secure systems—building trustworthy applications
Detecting past and present intrusions through vulnerability-specific predicates
Proceedings of the twentieth ACM symposium on Operating systems principles
Develop once deploy anywhere achieving adaptivity with a runtime linker/loader framework
ARM '05 Proceedings of the 4th workshop on Reflective and adaptive middleware systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
A component-based approach to online software evolution: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
Live updating operating systems using virtualization
Proceedings of the 2nd international conference on Virtual execution environments
Hotswapping Linux kernel modules
Journal of Systems and Software
A formal framework for component deployment
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
A flexible model for dynamic linking in Java and C#
Theoretical Computer Science
Providing dynamic update in an operating system
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
POLUS: A POwerful Live Updating System
ICSE '07 Proceedings of the 29th international conference on Software Engineering
OPUS: online patches and updates for security
SSYM'05 Proceedings of the 14th conference on USENIX Security Symposium - Volume 14
Dynamic and adaptive updates of non-quiescent subsystems in commodity operating system kernels
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Supporting Run-Time Evolution In Seescoa
Journal of Integrated Design & Process Science
A calculus of open modules: call-by-need strategy and confluence
Mathematical Structures in Computer Science
HotDep'07 Proceedings of the 3rd workshop on on Hot Topics in System Dependability
ASM-based model of dynamic service update in OSGi
ACM SIGSOFT Software Engineering Notes
Designing highly flexible virtual machines: the JnJVM experience
Software—Practice & Experience
Efficient online validation with delta execution
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Using active networking's adaptability in ad hoc routing
IWAN'04 Proceedings of the 6th IFIP TC6 international working conference on Active networks
Active networking for TCP over wireless
IWAN'04 Proceedings of the 6th IFIP TC6 international working conference on Active networks
Flexible models for dynamic linking
ESOP'03 Proceedings of the 12th European conference on Programming
On-the-fly kernel updates for high-performance computing clusters
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Improving user experience by infusing web technologies into desktops
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
A dynamic update framework for OSGi applications
HPCA'09 Proceedings of the Second international conference on High Performance Computing and Applications
On correctness of dynamic protocol update
FMOODS'05 Proceedings of the 7th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Report on the third workshop on hot topics in software upgrades (HotSWUp'11)
ACM SIGOPS Operating Systems Review
Modular software upgrades for distributed systems
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Software protection through dynamic code mutation
WISA'05 Proceedings of the 6th international conference on Information Security Applications
PatchDroid: scalable third-party security patches for Android devices
Proceedings of the 29th Annual Computer Security Applications Conference
Hi-index | 0.00 |
Many important applications must run continuously and without interruption, yet must be changed to fix bugs or upgrade functionality. No prior general-purpose methodology for dynamic updating achieves a practical balance between flexibility, robustness, low overhead, and ease of use.We present a new approach for C-like languages that provides type-safe dynamic updating of native code in an extremely flexible manner (code, data, and types may be updated, at programmer-determined times) and permits the use of automated tools to aid the programmer in the updating process. Our system is based on dynamic patches that both contain the updated code and the code needed to transition from the old version to the new. A novel aspect of our patches is that they consist of verifiable native code (e.g. Proof-Carrying Code [17] or Typed Assembly Language [16]), which is native code accompanied by annotations that allow on-line verification of the code's safety. We discuss how patches are generated mostly automatically, how they are applied using dynamic-linking technology, and how code is compiled to make it updateable.To concretely illustrate our system, we have implemented a dynamically-updateable web server, FlashEd. We discuss our experience building and maintaining FlashEd. Performance experiments show that for FlashEd, the overhead due to updating is typically less than 1%.