Advanced programming in the UNIX environment
Advanced programming in the UNIX environment
Delta algorithms: an empirical analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
Component technology: what, where, and how?
Proceedings of the 25th International Conference on Software Engineering
Imposing a Memory Management Discipline on Software Deployment
Proceedings of the 26th International Conference on Software Engineering
Nix: A Safe and Policy-Free System for Software Deployment
LISA '04 Proceedings of the 18th USENIX conference on System administration
An automated binary security update system for FreeBSD
BSDC'03 Proceedings of the BSD Conference 2003 on BSD Conference
Hi-index | 0.00 |
Safe and efficient deployment of software components is an important aspect of CBSE. The Nix deployment system enables side-by-side deployment of different versions and variants of components, complete installation, safe upgrades, and safe uninstalls through garbage collection. It accomplishes this through a purely functional deployment model, meaning that the file system content of a component only depends on the inputs used to build it, and never changes afterwards. An apparent downside to this model is that upgrading “fundamental” components used as build inputs by many other components becomes expensive, since all of these must be rebuilt and redeployed. In this paper we show that binary patching between sets of components enables efficient deployment of upgrades in the purely functional model, transparently to users. Sequences of patches can be combined automatically to enable upgrading between arbitrary versions. The approach was empirically validated.