Hasta donde yo sé, los llamados "binarios gordos", archivos ejecutables que contienen código de máquina para múltiples sistemas, solo se usan realmente en las PC de Apple, e incluso allí parece que solo los usaron porque necesitaban hacer la transición de PowerPC a x86.
En la actualidad, una gran cantidad de software es multiplataforma, y parece que hacer un solo binario gordo sería, en muchos sentidos, más simple que realizar un seguimiento de una docena de descargas diferentes para cada combinación de sistema operativo y arquitectura, sin mencionar que de alguna manera se transmite al cliente cuál quieren.
Puedo llegar a muchas conjeturas sobre por qué este enfoque nunca se dio cuenta, por ejemplo:
- La falta de herramientas de compilación cruzada hace que los binarios de múltiples sistemas operativos
- De todos modos, debe probar el código en cada sistema operativo, por lo que ya debe tener sistemas que puedan compilarse de forma nativa para cada sistema operativo
- Aparentemente, los programas de 32 bits ya "funcionan" en máquinas de 64 bits
- La vinculación dinámica funciona de manera diferente en cada sistema operativo, por lo que una "biblioteca fat" podría no funcionar incluso si una "aplicación fat"
Pero como siempre trabajo con una biblioteca o marco que oculta todos estos detalles específicos del sistema operativo y de la arquitectura, no sé cuán cierto es realmente eso, o si hay más problemas que no sé acerca de. Entonces, ¿cuáles son las razones reales por las que los binarios gordos generalmente no se usan para crear software de arquitectura múltiple y / o sistema operativo múltiple? (fuera de Apple)