This repository documents various platforms and strategies for preserving legacy software. As software ages, the systems required to run it often become obsolete. Software preservation ensures that important digital artifacts such as scientific tools, historical applications, vintage games, and cultural content, remain accessible in the future.
This work explores a range of open-source tools and systems that support software emulation, virtualization, and reproducibility. It compares their architectures, features, and use cases, and provides hands-on guides for setup and usage.
Digital content becomes unusable when the software or systems needed to run it are no longer supported. The goal of this project is to preserve both the software and its environment (operating systems, dependencies, configurations) in a reusable and shareable way.
This repository focuses on:
- Emulation platforms (e.g., QEMU, VMNetX, Docker)
- Tools for archiving runnable software environments
- Tutorials for capturing, modifying, and re-executing legacy software
- Comparisons between major software preservation systems (e.g., EaaSI vs Olive)
Version control systems (VCSs) are essential for tracking changes to source code and build instructions. They do not typically include the final artifacts (e.g., executable software, final designs) themselves. Therefore, VCSs are not a complete solution for software preservation.
OCI containers are a way to package software and its dependencies into a single "image" (essentially a file containing everything needed to run the software except the Linux kernel, part of a Linux operating system). OCI containers rely on the Linux kernel's version on the host system, so future versions of Linux may break compatibility with older containers (probably very rare).
EaaSI is a Yale-led platform designed to allow users to create and share emulated computing environments through a web interface.
Olive (developed by Carnegie Mellon) focuses on preserving software by delivering full virtual machines over the web. It uses VMNetX to stream only the parts of a VM that are needed.
In-depth comparison of EaaSI and Olive Archive across architecture, usability, scalability, and accessibility.
- Choose a platform: EaaSI, Olive, or Other Tools
- Follow the linked tutorials to create or reuse software environments
- Archive and share virtual machines or containers
- Use emulators or VM streaming tools to run preserved software