Group: Software/research/DistroExecutionEnvironments

From LibrePlanet
Jump to: navigation, search

Introduction

The Free System Distribution Guidelines (GNU FSDG) have the following:

Complete Distros

Our list of distributions is a guide for systems you can install in a computer. Therefore, it only includes distributions that are complete in themselves and ready to use. [...]

An exception to this requirement and to the self-hosting requirement above is for small system distributions, which are distros designed for devices with limited resources, like a wireless router for example. Free small system distributions do not need to be self-hosting or complete, because it is impractical to do development on such a system, but it must be developable and buildable on top of a free complete system distribution from our list of distributions, perhaps with the aid of free tools distributed alongside the small system distribution itself.

So sometimes (like with Replicant) building the small distribution rely on being able to install specific FSDG compliant distributions.

So for instance building Replicant has only been tested on specific distributions (typically Trisquel), so if you run another FSDG distribution (like Parabola for instance) you might want to run Trisquel under Parabola somehow.

Installing

There are often various possibilities for installing an FSDG distribution in a virtual environment. For instance

  • You can cross bootstrap it (see the CrossDistroBootstrap article for more details)
  • You can also install in a VM that emulates a complete computer like Qemu with KVM.

Virtual execution environments

Here some known working combinaison of distributions and virtual execution environments:

Distributions
GuixSD Hyperbola Parabola PureOS Trisquel 9.0 Etiona
Runtimes LXC No[1][2] Yes Yes Yes Yes
Qemu / Qemu KVM / Bare metal Yes Yes Yes Yes Yes
Docker guix system docker-image ? ? ? ?


At the time of writing (May 2021) Trisquel 8 doesn't work anymore in LXC through libvirt in Parabola:

Failed to create symlink /sys/fs/cgroup/net_cls: Operation not permitted
Freezing execution.

This is due to a cgroup API change[3].

However Trisquel 9 works fine in this context and Trisquel 8 is not supported anymore by Trisquel since April 2021.

References

  1. guix system cannot produce a chroot in a directory if it's not backed by a block device.
  2. guix system init doesn't have an easy way for the host to know which init binary to run which which arguments.
  3. https://bugzilla.redhat.com/show_bug.cgi?id=1770763