Per quanto ne so, i cosiddetti "fat binaries" - file eseguibili che contengono codice macchina per più sistemi - sono realmente utilizzati solo su PC Apple, e anche lì sembra che li abbiano usati solo perché dovevano passare da Da PowerPC a x86.
Oggigiorno molti software sono multipiattaforma e sembra che creare un singolo binario fat sarebbe in molti modi più semplice che tenere traccia di una dozzina di download diversi per ogni combinazione di sistema operativo e architettura, per non parlare del modo in cui ve ne sono al cliente quale desidera.
Posso fare molte ipotesi sul perché questo approccio non abbia mai preso piede, ad esempio:
- Mancanza di strumenti di compilazione incrociata che rendono impossibili i binari multi-OS
- È comunque necessario testare il codice su ciascun sistema operativo, quindi è già necessario disporre di sistemi in grado di compilare in modo nativo per ciascun sistema operativo
- Apparentemente i programmi a 32 bit "funzionano già" su macchine a 64 bit
- Il collegamento dinamico funziona in modo diverso su ciascun sistema operativo, quindi una "libreria fat" potrebbe non funzionare anche se una "applicazione fat" funzionerebbe
Ma poiché lavoro sempre con una libreria o un framework che nasconde tutti questi dettagli specifici del sistema operativo e specifici dell'architettura, non so quanto sia vero tutto ciò, o se ci sono ancora più problemi che non conosco di. Quindi, quali sono le ragioni reali per cui i binari fat non sono generalmente utilizzati per creare software multi-architettura e / o multi-OS? (fuori da Apple)