Compilei um programa C simples "Hello World" no Raspberry Pi 3, que foi então transferido para um laptop AMD64. Por curiosidade, executei-o e ele funciona mesmo que eu não esperasse:
$ uname -a
Linux 15ud490-gx76k 6.5.0-25-generic #25~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Feb 20 16:09:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
$ file hello64
hello64: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=486ee1cde035cd704b49c037a32fb77239b6a1c2, for GNU/Linux 3.7.0, not stripped
$ ./hello64
Hello World!
Assim, como ele pode ser executado?
A emulação de usuário QEMU está instalada, mas não sei se ela está desempenhando um papel nisso ou não.
A emulação de usuário QEMU é exatamente a razão pela qual seu binário é executado: em seu sistema, um dos pacotes relacionados ao QEMU que você instalou garante que o QEMU seja registrado como um manipulador para todas as arquiteturas que ele pode emular, e o kernel então passa binários para ele. Contanto que você tenha as bibliotecas necessárias, se houver, o binário será executado; como seu binário está vinculado estaticamente, ele não possui dependências externas.
Consulte Por que meu binário ARM compilado estaticamente do BusyBox pode ser executado em meu PC x86_64? e como Mono é mágico? para detalhes.