私はUbuntuパッケージの64ビットamdバージョンにqemu-user-static
バイナリが含まれていることを発見しました/usr/bin/qemu-x86_64-static
。
通常、qemu-user-static
他のアーキテクチャをエミュレートするために使用されているので、amd64 エミュレータで amd64 をビルドしてデプロイする理由を見つけようとしました。
Timesは、これが単なるラッパー以上であり、amd64のarmhfエミュレーションよりも速いことをdd
示しています。qemu-x86_64-static
デバッグ、サンドボックス、および/またはセキュリティにユースケースがありますか?
国の:
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
シミュレーション:
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
すべてが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
答え1
qemu-x86_64-staticは、ARMアーキテクチャ用にコンパイルされたqemu-user-staticパッケージにもあります。これは、ARM環境でx86コンパイルされたアプリケーションを実行する必要がある場合に便利です。私は、qemuの同じコードベースがフィルタリングなしですべてのアーキテクチャに対してコンパイルされたと思います。これがX86 qemu-user-staticパッケージにも存在する理由です。参考として、ARMのqemu-user-staticパッケージにはqemu-arm-staticも含まれています.)