3 ms·
what does this do? i mean can we run x86 programs on say raspberry pi? what about oracle cloudtron alwaysfree vps?
by 2Gkashmiri 4y ago
what does this do? i mean can we run x86 programs on say raspberry pi?
what about oracle cloudtron alwaysfree vps?
- up6w6 4y agoI don't remember where I read about, but didn't Apple specifically designed their processor to make Rosetta run faster?
- sgerenser 4y agoYou’re probably thinking of having a Total Store Ordering mode that can be switched on and off on demand. Most ARM CPUs don’t have this feature since it isn’t necessary, but it’s the normal way that x86 CPUs work. Without doing it in hardware An x86 emulator/translator needs to use a ton of memory fence instructions to emulate TSO.
- jamesy0ung 4y ago> i mean can we run x86 programs on say raspberry pi? No, the BCM2711 is only ARMv8-A, Rosetta needs ARMv8.2 or later
- 2Gkashmiri 4y agosure. not the pi itself but other similar devices which have that processor clas?
- scheme271 4y agoSort of? You'd also need a way of guaranteeing total store order semantics for memory otherwise you may get random errors. I guess restricting the app to a single core might reduce that error frequency a bit
- roblabla 4y ago> I guess restricting the app to a single core might reduce that error frequency a bit Shouldn't it eliminate it entirely? I'm pretty sure ARM guarantees sequential consistency on a single core, so if the app is limited to a single CPU (e.g. using taskset), there should be no issue. The real problem is, performance will be degraded.
- vbezhenar 4y ago> The real problem is, performance will be degraded. Compared to qemu performance will be awesome.
- roblabla 4y agoI'm skeptical, but optimistic. qemu user emulation with TCG is also a JIT compiler, is pretty decent, and doesn't have the "needs to be limited to a single core" when ran outside macos hardware, though it certainly has a lot of room for optimizations. I'm waiting for some benchmarks comparing the two.
- officeplant 4y agoYou can already do x86 emulation on linux ARM devices via other means[0] including on the Raspberry Pi. Keep in mind performance will be greatly degraded, but its possible. [0]https://github.com/ptitSeb/box86 https://github.com/ptitSeb/box86