( geza42 | 2020. 12. 02., sze – 12:52 )

Amit idézel, az másról szól: az inteles kódot a rosetta futtatás előtt átfordítja ARM-ra. A kapcsoló arra szolgál, hogy futtatáskor az ARM-os kódot a CPU egy speciális módban futtatja, ahol a memory model garantálja ugyanazt, mint amit az x86 garantál. Pl. arról van szó, hogy alapból ARM-on 2 "sima" memória írásnak a sorrendjét egy másik szál fordított sorrendben láthatja. x86-on ilyesmi nem fordulhat elő (mondjuk elvileg ez se 100%-ban igaz, de a részletekre már nem emlékszem). Ha a kapcsoló be van kapcsolva, akkor az M1 is garantálja ugyanazokat a dolgokat, mint amit az x86 garantál. Ezt amúgy nem saját tapasztalat, csak amikor meghallottam, hogy az apple x86-t fog ARM-ra fordítani, akkor kíváncsi voltam, hogy mégis hogyan oldják meg ezt a problémát software-esen, és utánanéztem. Hát, sehogy, hanem hardware-es feature-t csináltak hozzá. :)