Puede ejecutar programas Linux más antiguos en kernels más nuevos. Linux mantiene la compatibilidad con versiones anteriores (al menos para todas las interfaces documentadas), en beneficio de las personas que ejecutan binarios antiguos por una u otra razón (porque no quieren molestarse en volver a compilar, porque han perdido la fuente, porque esto es software comercial para el que no tienen la fuente, etc.).
Si desea tener un entorno de compilación con herramientas de desarrollo más antiguas, o incluso un entorno de prueba para cualquier cosa que no profundice en las interfaces del núcleo, entonces no necesita ejecutar un núcleo más antiguo, solo un entorno de usuario más antiguo. Para esto, no necesita nada complejo:un chroot servirá. Algo más avanzado como LXC, Docker, … puede ser útil si desea que la distribución más antigua (o más nueva, para el caso) tenga su propia configuración de red. Si no quiere eso, puede usar lo que Debian usa precisamente para compilar software en un entorno conocido (por ejemplo, compilar software para Debian estable en una máquina con una instalación de prueba):schroot. Consulte ¿Cómo ejecuto programas de 32 bits en un Debian/Ubuntu de 64 bits? para obtener una guía sobre cómo configurar una instalación alternativa de Debian o un derivado en un chroot.
Si desea ejecutar el kernel de la distribución anterior, necesitará una máquina virtual real para eso, como KVM o VirtualBox. La virtualización Linux-on-Linux con LXC o similar ejecuta el mismo kernel en todo momento.
➜ 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!