Sie können ältere Linux-Programme auf neueren Kerneln ausführen. Linux behält die Abwärtskompatibilität (zumindest für alle dokumentierten Schnittstellen) zum Nutzen von Leuten bei, die aus dem einen oder anderen Grund alte Binärdateien ausführen (weil sie sich nicht die Mühe machen wollen, sie neu zu kompilieren, weil sie den Quellcode verloren haben, weil dies der Fall ist kommerzielle Software, für die sie den Quellcode nicht haben usw.).
Wenn Sie eine Build-Umgebung mit älteren Entwicklungstools oder sogar eine Testumgebung für alles haben möchten, was nicht tief in Kernel-Schnittstellen eintaucht, müssen Sie keinen älteren Kernel ausführen, sondern nur eine ältere Userland-Umgebung. Dafür brauchen Sie nichts Kompliziertes:Eine Chroot reicht aus. Etwas Fortgeschritteneres wie LXC, Docker, … kann nützlich sein, wenn Sie möchten, dass die ältere (oder neuere) Distribution eine eigene Netzwerkkonfiguration hat. Wenn Sie das nicht möchten, können Sie genau das verwenden, was Debian verwendet, um Software in einer bekannten Umgebung zu erstellen (z. B. Software für Debian Stable auf einer Maschine mit einer Testinstallation erstellen):schroot. Siehe Wie führe ich 32-Bit-Programme auf einem 64-Bit-Debian/Ubuntu aus? für eine Anleitung zum Einrichten einer alternativen Installation von Debian oder einem Derivat in einer Chroot.
Wenn Sie den Kernel der älteren Distribution ausführen möchten, benötigen Sie dafür eine echte virtuelle Maschine wie KVM oder VirtualBox. Linux-auf-Linux-Virtualisierung mit LXC oder ähnlichem läuft durchgängig auf dem gleichen Kernel.
➜ codetv_static# docker run ubuntu:10.04 /bin/echo 'Howdy!'
Unable to find image 'ubuntu:10.04' locally
10.04: Pulling from library/ubuntu
a3ed95caeb02: Pull complete
86b54f4b6a4e: Pull complete
Digest: sha256:f6695b2d24dd2e1da0a79fa72459e33505da79939c13ce50e90675c32988ab64
Status: Downloaded newer image for ubuntu:10.04
Howdy!