HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
multiarch
qemu-user-static
Shell2019–2024
multiarch / qemu-user-static

qemu-user-static

:earth_africa: `/usr/bin/qemu-*-static`

8Distinct people
8Mentions
0Explicit recommenders
2.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

:earth_africa: `/usr/bin/qemu-*-static`

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year8 dated mentions

Observed mentions: 2019-04-24 08:30:09 UTC to 2024-11-15 04:51:02 UTC.

01232019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC303
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202

What Hacker News says

8 sources
> Using wrappers doesn't really help that much because the difficulties are in the things that aren't covered anyway. Proot doesn't help for these issues, there's a long-standing open issue for that one. Could I ask for more details? I could certainly believe that podman doesn't do something that's needed, but I'm pretty sure it does everything that this particular article spends time setting up out of the box. And I can't find anything about proot; https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/i... gives me nothing and a web search only gives me https://gitlab.com/postmarketOS/pmbootstrap/-/issues/2052#no... which is... either they're wrong (because faking mounts is definitely something proot does), they were right but it's changed (I don't know when that was added), or I'm misunderstanding the problem (maybe pmbootstrap dyn
Read the rest
amically changes mounts?). > Using docker would make the mixing and nesting of native and foreign architecture chroots only more difficult Would it? I'm not intimately familiar with how postmarketos is doing it now, but I have done qemu-user-static with docker and it's easy to work with; you can either do the whole thing in docker with https://github.com/multiarch/qemu-user-static , or I think you can enable qemu on the host and it automatically works in containers. EDIT: Oh hang on, I might have it - doing that with docker needs --privileged so probably doesn't work if you're running without root. I personally would shrug and say that running this one command as root is fine but if we want zero sudoing then yeah that's a problem.
In Bootstrapping Alpine Linux without root
and its "oh, you want multi-arch, do you?" friend. While prosecuting this <https://gitlab.com/gitlab-org/gitlab/-/issues/339567> I learned that they bundle binfmt into the buildkit docker image <https://github.com/moby/buildkit/blob/v0.12.5/Dockerfile#L11...> which itself is compiled against a static copy of qemu <https://github.com/tonistiigi/binfmt/blob/deploy/v6.2.0-26/D...> with various /proc/sys/fs/binfmt_misc wizardry <https://github.com/tonistiigi/binfmt/blob/deploy/v6.2.0-26/c...> We ended up switching to using multiarch/qemu-user-static:7.2.0-1 <https://hub.docker.com/layers/multiarch/qemu-user-static/7.2...> which also mutates binfmt_misc in buildx's context in order to exec the static copy of qemu in it but I find their shell script much more legible about what's going on: <https://github.com/multiarch/qemu-user-static/blob/v7.
Read the rest
2.0-1/...> not to mention the fact that it more clearly represents the recent qemu version versus secreting it away inside the moby/buildkit:heheh-good-luck-friend They have an entire GH label for that: https://github.com/docker/buildx/labels/area%2Fqemu and my journey into the buildx sewers started from https://github.com/docker/buildx/issues/1170
In BuildKit in depth: Docker's build engine explained
> binfmt_misc https://en.wikipedia.org/wiki/Binfmt_misc > binfmt_misc can also be combined with QEMU to execute programs for other processor architectures as if they were native binaries.[9] QEMU supported [ARM guest] machines: https://wiki.qemu.org/Documentation/Platforms/ARM#Supported_... Edit: from "Running and Building ARM Docker Containers on x86" (which also describes how to get CUDA working) https://www.stereolabs.com/docs/docker/building-arm-containe... : sudo apt-get install qemu binfmt-support qemu-user-static # Install the qemu packages docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # Execute the registering scripts docker run --rm -t arm64v8/ubuntu uname -m # Test the emulation environment https://github.com/multiarch/qemu-user-static : > multiarch/qemu-user-static is to enable an execution of d
Read the rest
ifferent multi-architecture containers by QEMU [1] and binfmt_misc [2]. Here are examples with Docker [3].
In Waydroid – Run Android containers on Ubuntu
(5) Docker Image (amd64) ^ | (4) QEMU Binfmt (arm64 <-> amd64 binary emulation layer) ^ | (3) Linux VM (arm64) ^ | (2) Hypervisor.framework (arm64, macOS native virtualization framework) ^ | (1) Docker for Mac Linux Kernel has a feature to allow using a wrapper to execute userspace program based on file header (binfmt[1]). In this case, Linux VM in (3) has QEMU user mode emulation registered as binfmt, so any amd64 binaries are automatically wrapped into `qemu-x86_64-static /path/to/bin` and run. Docker Image itself doesn't run a Linux kernel but use one from the VM host, so this scenario is possible. This is also how multiarch[2] works (for amd64 to arm64/ppc64le/etc.
Read the rest
) which might even be what Docker is using. In case of multiarch, the qemu-*-static binary is provided as a container running in privileged mode. [1]: https://www.kernel.org/doc/html/latest/admin-guide/binfmt-mi... [2]: https://github.com/multiarch/qemu-user-static
In Tech Preview of Docker Desktop for M1
From their roadmap, it does not appear they have really investigated this yet. [1] Rosetta 2 translates Mac apps and can deal with JIT, but I do not believe it will work through virtualization. It should be relatively light lifting to make Docker for Mac run an ARM linux installation and ARM-built containers. From there, you likely would want to strategically add multi-arch container support to the docker runtime. This might be implemented based on existing qemu containers [2] 1: https://github.com/docker/roadmap/issues/142 2: https://github.com/multiarch/qemu-user-static
In Introducing the next generation of Mac

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.