O ile mi wiadomo, tak zwane „duże pliki binarne” - pliki wykonywalne zawierające kod maszynowy dla wielu systemów - są naprawdę używane tylko na komputerach Apple, a nawet tam wygląda na to, że korzystały z nich tylko dlatego, że musiały przejść z PowerPC do x86.
Obecnie wiele programów jest wieloplatformowych i wydaje się, że utworzenie jednego grubego pliku binarnego byłoby pod wieloma względami prostsze niż śledzenie kilkunastu różnych pobrań dla każdej kombinacji systemu operacyjnego i architektury, nie wspominając już o przenoszeniu klientowi, którego chce.
Mogę wymyślić wiele domysłów, dlaczego takie podejście nigdy się nie przyjęło, na przykład:
- Brak narzędzi do kompilacji wielu plików binarnych dla wielu systemów operacyjnych jest niemożliwy
- Musisz przetestować kod w każdym systemie operacyjnym, więc musisz już mieć systemy, które mogą kompilować się natywnie dla każdego systemu operacyjnego
- Najwyraźniej programy 32-bitowe „po prostu działają” na komputerach 64-bitowych
- Łączenie dynamiczne działa inaczej w każdym systemie operacyjnym, więc „gruba biblioteka” może nie działać, nawet gdyby „gruba aplikacja” działała
Ale ponieważ zawsze pracuję z biblioteką lub frameworkiem, który ukrywa przede mną wszystkie szczegóły związane z systemem operacyjnym i architekturą, nie wiem, czy to prawda, ani czy jest jeszcze więcej problemów, których nie znam o. Więc, jakie są rzeczywiste powody binarne tłuszczowe nie są powszechnie wykorzystywane do tworzenia multi-architekturę i / lub oprogramowania multi-OS? (poza Apple)