Other related sources¶
Some of these projects were developed in parallel to qus, and there has been feedback; so, some features and use cases
are equivalent.
Currently, the enhancements which might be unique to qus are
1) providing docker images for host architectures other than amd64
; and
2) optionally, limiting the list of QEMU binaries to be registered on the host.
Tip
There is some info about QEMU and Docker at
wiki.qemu.org/Testing/DockerBuild.
However, it is focused on building and testing QEMU itself, and details about how to set
binfmt
interpreters are not explained.
multiarch/qemu-user-static¶
multiarch/qemu-user-static is the most similar to qus.
Script register.sh
in qus was initially based on multiarch’s.
Later, qus was used as a reference by multiarch, in order to implement persistent loading.
The main difference is that multiarch does not provide images for host architectures other than amd64
.
[R2] is a talk by one of the maintainers of multiarch/qemu-user-static that provides an introduction to contexts where these projects are useful. See also [R8].
fkrull/docker-qemu-user-static¶
In fkrull/docker-qemu-user-static QEMU binaries are also loaded
persistently.
However, fkrull uses some custom Python scripts, instead of relying on qemu-binfmt-conf.sh
.
rmoriz/multiarch-test¶
rmoriz/multiarch-test tries to fix moby/moby#36552
in hooks/build
, but we have not found that issue in this project yet.
linuxkit/binfmt | docker/binfmt¶
Although not well documented, since version 1.13.0 (2017-01-19), QEMU is installed by default with Docker Desktop and a
tool written in golang (named binfmt
) is used to register interpreters in the kernel.
The upstream project is linuxkit/linuxkit.
For further details about similarities/differences, see:
The project from docker (docker/binfmt) was deprecated in favour of github.com/linuxkit/linuxkit/tree/master/pkg/binfmt.
At DockerCon San Francisco 2019, a partnership with Arm was announced: Building Multi-Arch Images for Arm and x86 with Docker Desktop.