Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
A survey of process migration mechanisms
ACM SIGOPS Operating Systems Review
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On dynamically updating a computer program: from concept to prototype
Journal of Systems and Software - Special issue on software maintenance
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Region-based memory management
Information and Computation
Stratified operational semantics for safety and correctness of the region calculus
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ROC-1: Hardware Support for Recovery-Oriented Computing
IEEE Transactions on Computers - Special issue on fault-tolerant embedded systems
Type-based hot swapping of running modules (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Checking and inferring local non-aliasing
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
A Technique for Dynamic Updating of Java Software
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
An Overview of Checkpointing in Uniprocessor and DistributedSystems, Focusing on Implementation and Performance
Dynamic software updating
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
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
Application-level checkpointing for shared memory programs
ASPLOS XI Proceedings of the 11th international conference on Architectural support for programming languages and operating systems
Mutatis mutandis: safe and predictable dynamic software updating
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An API for Runtime Code Patching
International Journal of High Performance Computing Applications
Providing dynamic update in an operating system
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
OPUS: online patches and updates for security
SSYM'05 Proceedings of the 14th conference on USENIX Security Symposium - Volume 14
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
Flexible models for dynamic linking
ESOP'03 Proceedings of the 12th European conference on Programming
Banshee: a scalable constraint-based analysis toolkit
SAS'05 Proceedings of the 12th international conference on Static Analysis
Dynamic updates: another middleware service?
MAI '07 Proceedings of the 1st workshop on Middleware-application interaction: in conjunction with Euro-Sys 2007
POLUS: A POwerful Live Updating System
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Mutatis Mutandis: Safe and predictable dynamic software updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
HotDep'07 Proceedings of the 3rd workshop on on Hot Topics in System Dependability
Contextual effects for version-consistent dynamic software updating and safe concurrent programming
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reboots are for hardware: challenges and solutions to updating an operating system on the fly
ATC'07 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction
Journal of Functional Programming
Research on Dynamic Updating of Grid Service
ICCS '07 Proceedings of the 7th international conference on Computational Science, Part II
A language model for dynamic code updating
Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades
Introspecting continuations in order to update active code
Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades
Consistently applying updates to compositions of distributed OSGi modules
Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades
Ksplice: automatic rebootless kernel updates
Proceedings of the 4th ACM European conference on Computer systems
Dynamic update of Java applications—balancing change flexibility vs programming transparency
Journal of Software Maintenance and Evolution: Research and Practice - Special Issue on the 12th Conference on Software Maintenance and Reengineering (CSMR 2008)
Dynamic software updates: a VM-centric approach
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Safe and timely updates to multi-threaded programs
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Collateral evolution of applications and databases
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Dependable, online upgrades in enterprise systems
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Dependable, online upgrades in enterprise systems
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Cooperative update: a new model for dependable live update
Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades
Dynamic software updates for real-time systems
Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades
Efficient systematic testing for dynamically updatable software
Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades
Proceedings of the 10th ACM/IFIP/USENIX International Conference on Middleware
Prospect: a compiler framework for speculative parallelization
Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
Using twinning to adapt programs to alternative APIs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Dynamic updates for web and cloud applications
APLWACA '10 Proceedings of the 2010 Workshop on Analysis and Programming Languages for Web Applications and Cloud Applications
Middleware'09 Proceedings of the ACM/IFIP/USENIX 10th international conference on Middleware
Dynamic code evolution for Java
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Security impact ratings considered harmful
HotOS'09 Proceedings of the 12th conference on Hot topics in operating systems
Immediate multi-threaded dynamic software updates using stack reconstruction
USENIX'09 Proceedings of the 2009 conference on USENIX Annual technical conference
ReCaml: execution state as the cornerstone of reconfigurations
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Component adaptation and assembly using interface relations
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Safely updating running software: tranquility at the object level
Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution
ACM SIGOPS Operating Systems Review
Aspect-based dynamic software updating: a model and its empirical evaluation
Proceedings of the tenth international conference on Aspect-oriented software development
Analyzing software updates: should you build a dynamic updating infrastructure?
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Elastic executions from inelastic programs
Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems
Run-time phenomena in dynamic software updating: causes and effects
Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
Specification patterns and proofs for recursion through the store
FCT'11 Proceedings of the 18th international conference on Fundamentals of computation theory
Tailoring dynamic software product lines
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Safe and atomic run-time code evolution for Java and its application to dynamic AOP
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
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
Report on the third workshop on hot topics in software upgrades (HotSWUp'11)
ACM SIGOPS Operating Systems Review
Using first-class contexts to realize dynamic software updates
Proceedings of the International Workshop on Smalltalk Technologies
Specifying and verifying the correctness of dynamic software updates
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Enhanced operating system security through efficient and fine-grained address space randomization
Security'12 Proceedings of the 21st USENIX conference on Security symposium
Incremental dynamic updates with first-class contexts
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Kitsune: efficient, general-purpose dynamic software updating for C
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Automating object transformations for dynamic software updating
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Report on the fourth workshop on hot topics in software upgrades (HotSWUp 2012)
ACM SIGOPS Operating Systems Review
Katana: Towards Patching as a Runtime Part of the Compiler-Linker-Loader Toolchain
International Journal of Secure Software Engineering
Safe and automatic live update for operating systems
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Unrestricted and safe dynamic code evolution for Java
Science of Computer Programming
Safe software updates via multi-version execution
Proceedings of the 2013 International Conference on Software Engineering
Formalizing correctness criteria of dynamic updates derived from specification changes
Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems
PatchDroid: scalable third-party security patches for Android devices
Proceedings of the 29th Annual Computer Security Applications Conference
The operating system: should there be one?
Proceedings of the Seventh Workshop on Programming Languages and Operating Systems
Specification patterns for reasoning about recursion through the store
Information and Computation
Back to the future: fault-tolerant live update with time-traveling state transfer
LISA'13 Proceedings of the 27th international conference on Large Installation System Administration
Hi-index | 0.00 |
Software updates typically require stopping and restarting an application, but many systems cannot afford to halt service, or would prefer not to. Dynamic software updating (DSU) addresses this difficulty by permitting programs to be updated while they run. DSU is appealing compared to other approaches for on-line upgrades because it is quite general and requires no redundant hardware. The challenge is in making DSU practical: it should be flexible, and yet safe, efficient, and easy to use.In this paper, we present Ginseng, a DSU implementation for C that aims to meet this challenge. We compile programs specially so that they can be dynamically patched, and generate most of a dynamic patch automatically. Ginseng performs a series of analyses that when combined with some simple runtime support ensure that an update will not violate type-safety while guaranteeing that data is kept up-to-date. We have used Ginseng to construct and dynamically apply patches to three substantial open-source server programs---Very Secure FTP daemon, OpenSSH sshd daemon, and GNU Zebra. In total, we dynamically patched each program with three years' worth of releases. Though the programs changed substantially, the majority of updates were easy to generate. Performance experiments show that all patches could be applied in less than 5 ms, and that the overhead on application throughput due to updating support ranged from 0 to at most 32%.