Per quanto ne so, i cosiddetti "file binari grassi" - i file eseguibili che contengono codice macchina per più sistemi - sono realmente usati solo sui PC Apple, e anche lì sembra che li abbiano usati solo perché ne avevano bisogno per passare da PowerPC a x86.
In questi giorni un lotto di software è multipiattaforma, e sembra che creare un singolo binario grasso 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 in qualche modo di comunicare al cliente quale desidera.
Posso trovare molte ipotesi sul perché questo approccio non sia mai stato preso in considerazione, ad esempio:
- Una mancanza di strumenti di compilazione incrociata che rendono i binari multi-OS non fattibili
- Devi comunque testare il codice su ogni sistema operativo, quindi devi già disporre di sistemi che possano compilare nativamente per ogni sistema operativo
- Apparentemente i programmi a 32 bit "funzionano solo" su macchine a 64 bit già
- Il collegamento dinamico funziona in modo diverso su ogni sistema operativo, quindi una "libreria di grassi" potrebbe non funzionare anche se una "applicazione di grasso" potrebbe
Ma dal momento che lavoro sempre con una libreria o un framework che nasconde tutti i dettagli specifici dell'OS e specifici dell'architettura da parte mia, non so quanto sia realmente vero o se ci sono ancora più problemi ne so qualcosa. Quindi, quali sono le reali ragioni per cui i file binari grassi non vengono generalmente utilizzati per creare software multi-architettura e / o multi-OS? (al di fuori di Apple)