UpStare manual

RELEASE_0-9-10

Kristis Makris <kristis.makris@asu.edu>

This is the documentation of UpStare, a dynamic software update system for multi-threaded userspace applications that can apply immediate updates using stack reconstruction.


Table of Contents
1. About
1.1. Copyright Information
1.2. Disclaimer
1.3. Document Conventions
2. Introduction
2.1. What Is It?
2.2. Example Updates
3. Installation
3.1. Availability
3.2. Installation
4. Preparing Updateable Programs
4.1. Invoking Wrapper Build Programs
4.2. Exporting Dynamic Symbols
4.3. Additional API Calls
5. Preparing Dynamic Software Updates
5.1. Preparing an Updateable Original Version
5.2. Preparing an Updateable New Version
5.3. Describing Dynamic Software Updates
5.3.1. Describing Function Updates
5.3.2. Describing Execution Continuation
5.4. Running the Patch Generator
5.5. Compiling the Dynamic Software Update Patch
6. Applying Dynamic Software Updates
7. System Internals
7.1. Function Call Indirection
7.2. Update Points
7.3. Multi-Threaded Updates
7.4. Multi-Process Updates
7.5. Blocking System Calls
7.6. Exported Local Variables
List of Figures
3-1. Forcing installation of RPM packages.
3-2. Forcing installation of Debian packages.
4-1. Original Makefile for PostgreSQL 7.4.16.
4-2. Makefile modifications for an updateable PostgreSQL 7.4.16.
4-3. Test program that attempts to be updated inside a signal handler.
5-1. Describing function updates for vsFTPd from 2.0.4 to 2.0.5.
5-2. Describing execution continuation when updating from Bubblesort to Heapsort.
5-3. Preparing a dynamic software update patch for vsFTPd from 2.0.4 to 2.0.5.
5-4. Patch generator report to update vsFTPd from 2.0.4 to 2.0.5.
5-5. Compiling a dynamic software update patch for vsFTPd from 2.0.4 to 2.0.5.
6-1. Applying a dynamic software update for vsFTPd from 2.0.4 to 2.0.5