Preserving complex software

By complex software is meant software which currently requires many computers and is made up of many separate software applications, some of which may be relatively simple.

Complex software will consist of many separate elements specifying for example:

  • source code

  • configuration

  • build processes

  • distribution between computers

  • control processes and frameworks

  • test suites

In principle each element may be preserved as pieces of simple software, text files, etc. Even whole operating systems, particularly open source ones like the Linux kernel, can be built from such files, boot-strapping from a small core. It is important to understand what these core tools are in order to build the software and to be able to recognise when it is becoming impractical to re-build nd run the software.

However, in some cases the software may be encapsulated in one of many ways including:

Preserving these and other more complex software is discussed in Emulation/Virtualisation. Supplementing these tools are such as Use of ReproZip.

An important aspect of this is that once the problem of preserving these encapsulations, in particular the RINs that are needed, then, because they are so widely used, the RINs an be re-used.

Last updated