Problém se spouštěním starých binárek máš i na Windows a Linuxu, kde se CPU architektura nezměnila. Dodnes můžeš na Windows a Linuxu nativně pouštět i386 - problém jsou nekompatibilní API. Na Windows např. hry pro staré DirectX (pro Colin McRae Rally 2 musím nahrát do složky hry DLLka převádějící volání starých DX na novější). Na Linuxu zas moje stará hra potřebuje starší verzi libstdc++ (nějakou dobu šla doinstalovat z repozitářů, dnes nevím). Ta hra je opensource, ale narazíš na to, že využívá starou verzi SDL, která si nerozumí s Wayland (komunita ale pracuje na wrapper knihovně převádějící volání SDL 1.2 na SDL 2).
U Apple je to pochopitelnější, ten mění architekturu CPU jako ponožky - podle toho, co je zrovna nejlepší (Motorola --> PowerPC --> x86 --> ARM). Navíc Rosetta 1 (běh PowerPC aplikací na x86) nebyla ani od Apple, byl to zaplacený software od externí firmy a licence jim vypršela - Apple ji nechtěl prodlužovat. Beztak Apple razí heslo, že aplikace, která není přebuildovaná aspoň jednou za rok, je mrtvá a potenciálně nebezpečná. Na takové máš použít např. virtualizaci. Já si třeba na Windows PC ozkoušel MacOS X 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 10.10, 10.15 a teď pro vývoj používám virtálku macOS 11 Big Sur (abych mohl buildovat univerzální binárky Intel+ARM). Ty PowerPC verze jsem si zkoušel v dnes již zapomenutém emulátoru PearPC, kde sice nefungovala např. síť, ale mně šlo jen o základní představu, jaký daný OS byl - včetně naživo vidět historii jejich změn v designu. Pro zajímavost: 10.0 nebyl finální systém, např. nebyla ještě OpenGL akcelerace toho prostředí Aqua.
8. 1. 2022, 01:14 editováno autorem komentáře