Didn’t you reinvent docker with your solution? Docker also uses pivot_root and essentially solves the exact same problem with very similar methods. A simple Dockerfile with FROM ubuntu:focal would probably give you the same thing you outlined here, unless I missed some crucial requirement that cannot be satisfied with docker.
The similarities to Docker end at the systemd-nspawn step. After the systemd pivot-root step, the host userland is shut down entirely and the Ubuntu userland takes over, including privileged hardware access such as the graphics system.
Yeah, as hufman says this isn’t running both OSes in parallel, it’s having them installed in parallel – but mimicking a “normal” installation much more closely than one could ever achieve with docker. None of the namespace or cgroup stuff – real direct access to everything the kernel can provide.
Didn’t you reinvent
docker
with your solution? Docker also usespivot_root
and essentially solves the exact same problem with very similar methods. A simple Dockerfile withFROM ubuntu:focal
would probably give you the same thing you outlined here, unless I missed some crucial requirement that cannot be satisfied with docker.The similarities to Docker end at the systemd-nspawn step. After the systemd pivot-root step, the host userland is shut down entirely and the Ubuntu userland takes over, including privileged hardware access such as the graphics system.
Yeah, as hufman says this isn’t running both OSes in parallel, it’s having them installed in parallel – but mimicking a “normal” installation much more closely than one could ever achieve with docker. None of the namespace or cgroup stuff – real direct access to everything the kernel can provide.
This is horrible and I love it. I may try to do this with Arch Linux.