edición general

JingPad A1, la primera tablet Linux para consumo del mundo

#34 Hace años que tienes QEMU que soporta "user mode emulation" para binarios de otras arquitecturas. Se usa mucho para tareas de compilación y testing en multiarquitectura para no tener que montar una máquina con cada una porque a diferencia de otros sistemas como MacOS que mencionas Linux soporta decenas de arquitecturas diferentes con lo cual no es práctico si quieres probar que tu software funciona en ellas tener una máquina para cada una. Por ejemplo este post de Qt lo usa para testing: www.qt.io/blog/2018/11/09/testing-qt-emulated-architectures-using-qemu

Y en cuanto a librerías dinámicas Linux también tiene soporte de primera clase desde hace siglos, el más común sistemas x86 y amd64 para binarios de 32 y 64 bits, que en este caso no requieren emulación porque el hardware soporta ambos, pero no hay ninguna restricción en instalar librerías ARM en un amd64 o a la inversa y utilizarlas con QEMU.
#65 La gran diferencia es que tienes que usar QEMU de forma explicita, y probablemente parchear algunos aspectos de la aplicación si esta es relativamente compleja o interactúa con otros programas. No es una solución preparada para el usuario final.
#73 No, no necesitas llamar a QEMU de forma explícita, en el enlace que he puesto lo hacen porque normalmente si es para pruebas no quieres llenar tu sistema de librearías de otras arquitecturas y montas un chroot, además que seguramente querrás probar contra varias versiones, pero si es algo que vas a usar continuamente QEMU lo hace automáticamente porque cuando instalas una arquitectura para el modo de usuario se registra como el ejecutable que entiende esos binarios así que cuando intentas abrir uno simplemente se delega en QEMU y este ya se las apaña para traducir las llamadas de una arquitectura a otra.

Lo único como he dicho antes son las librerías dinámicas, pero Linux es multiarquitectura de serie y no tiene ningún problema manejando multiples versiones de la misma librería para diferentes arquitecturas, lo hacen todos los gestores de paquetes sin despeinarse y luego ya es tema de ld encontrarlas como hace con la arquitectura nativa.

menéame