Runner: container-free filesystem virtualization

Runner is a brand new filesystem virtualization tool, specifically designed for GoboLinux. It dynamically changes a process' view of /System/Index based on the program's Dependencies file.

From day one, GoboLinux has always supported keeping multiple versions of a program installed on disk at the same time, but when two versions had conflicts, you had to choose which one would be activated in the system as the default.

With Runner, you don't need to worry about which version of a given dependency is currently linked (or activated) in /System/Index: Runner gives the process its own virtual /System/Index with all the right dependencies.

Avoiding conflicts without containers

Instead of using full-fledged containers (which carry an entire distro inside them!) just to avoid library conflicts when running an executable, in GoboLinux you can launch a program with Runner to make sure the filesystem view of the process will match its dependencies. Runner builds a custom mount table for the process, like container tools do, but without all the file duplication: it dynamically picks the correct parts of your /Programs tree. This approach is only feasible because in GoboLinux programs are logically organized in the filesystem.

A transparent multi-arch setup

Unlike mainstream distributions, GoboLinux doesn't need a particular "multi-arch" setup for supporting 32 and 64-bit binaries. Using Runner, we can simply give 32-bit processes their own view of the standard Unix directories so that, for example, /lib/ is a 32-bit library for a 32-bit process and a 64-bit library for a 64-bit process.

© 2002-2022
gobo AT gobolinux DOT org