Acabei de descobrir que a versão de 64 bits do pacote Ubuntu amd qemu-user-static
contém o binário /usr/bin/qemu-x86_64-static
.
Normalmente, qemu-user-static
é usado para emular outra arquitetura, portanto, tento encontrar um motivo pelo qual eles criam e implementam um amd64 no emulador amd64.
As dd
times mostram que qemu-x86_64-static
é mais do que apenas um wrapper, mas ainda mais rápido que uma emulação armhf em amd64. Talvez exista um caso de uso em depuração, sandbox e / ou segurança?
nativo:
me:~$ time /bin/dd if=/dev/zero of=/dev/null count=100000
100000+0 records in
100000+0 records out
51200000 bytes (51 MB) copied, 0.0694854 s, 737 MB/s
real 0m0.075s
user 0m0.017s
sys 0m0.058s
emulado:
me:~$ time qemu-x86_64-static /bin/dd if=/dev/zero of=/dev/null count=100000
100000+0 records in
100000+0 records out
51200000 bytes (51 MB) copied, 0.175123 s, 292 MB/s
real 0m0.198s
user 0m0.121s
sys 0m0.076s
tudo é amd64:
me:~$ uname -a
Linux 3.13.0-65-generic #105-Ubuntu SMP Mon Sep 21 18:50:58 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
me:~$ file /bin/dd
/bin/dd: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=83e959307f50e08b797447bd3f673b1f0e7c2386, stripped
me:~$ file /usr/bin/qemu-x86_64-static
/usr/bin/qemu-x86_64-static: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=8fb7501ac002a3f2cee4c07c77b9e7232d6c501e, stripped