Imposing AMemory Management Discipline On Software Deployment
Stc
ComputingScienceColloquium
Date: March 25
Time: 11:00
Room: Unnik Room 311
Abstract
To Appear in ICSE 2004.
The deployment of software components frequently fails because
dependencies on other components are not declared explicitly or are
declared imprecisely. This results in an incomplete reproduction of
the environment necessary for proper operation, or in interference
between incompatible variants. In this paper we show that these
deployment hazards are similar to pointer hazards in memory models of
programming languages and can be countered by imposing a memory
management discipline on software deployment. Based on this analysis
we have developed a generic, platform and language independent,
discipline for deployment that allows precise dependency verification;
exact identification of component variants; computation of complete
closures containing all components on which a component depends;
maximal sharing of components between such closures; and concurrent
installation of revisions and variants of components. We have
implemented the approach in the Nix deployment system, and used it for
the deployment of a large number of existing Linux packages.