# Preserving complex software

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](https://www.kernel.org/), 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:

* [jupyter-notebooks](https://docs.libnova.com/labdrive/get-started/jupyter-notebooks "mention")
* [containers-dockers](https://docs.libnova.com/labdrive/data-curation-and-preservation-1/preservation-activities/adding-representation-information/other-representation-information/software-as-part-of-the-rin/preserving-complex-software/emulation-virtualisation/containers-dockers "mention")
* [method-3-emulation-i.e.-true-emulation-virtualization-and-containerization](https://docs.libnova.com/labdrive/data-curation-and-preservation-1/preservation-activities/adding-representation-information/other-representation-information/software-as-part-of-the-rin/preserving-complex-software/emulation-virtualisation/method-3-emulation-i.e.-true-emulation-virtualization-and-containerization "mention")

Preserving these and other more complex software is discussed in [emulation-virtualisation](https://docs.libnova.com/labdrive/data-curation-and-preservation-1/preservation-activities/adding-representation-information/other-representation-information/software-as-part-of-the-rin/preserving-complex-software/emulation-virtualisation "mention"). Supplementing these tools are such as [method-4-migration-1](https://docs.libnova.com/labdrive/data-curation-and-preservation-1/preservation-activities/adding-representation-information/other-representation-information/software-as-part-of-the-rin/preserving-complex-software/method-4-migration-1 "mention").

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.
