The repo does not make it clear, but Apple ships Linux builds of Rosetta 2 that can be used inside Linux VMs on apple silicon hardware [0]. With some patches (or so I'm told) it can be made to run on non-apple-silicon arm64 hardware.
Even if it's not fully decompiled yet, it should be possible to relink the decompiled subsections into an original binary.
No. Even the decompiled version is incomplete - there's comments all over it which signal missing code like "could not recover jumptable ... too many branches". The "refactored" version is wildly speculative - it looks more like a very clumsy attempt to write a new translator than to reverse-engineer an existing one.
> With some patches (or so I'm told) it can be made to run on non-apple-silicon arm64 hardware.
With the huge caveat that the generated code will expect TSO to be enabled, and may malfunction on non-TSO ARM systems, particularly when running multithreaded code. (Most ARM systems are non-TSO; Apple Silicon has a MSR to enable TSO.)
What exactly is this? It says it's for Linux, but what makes it "for Linux"? I'm curious which parts of Rosetta are Apple silicone specific and which aren't.
The repo does not make it clear, but Apple ships Linux builds of Rosetta 2 that can be used inside Linux VMs on apple silicon hardware [0]. With some patches (or so I'm told) it can be made to run on non-apple-silicon arm64 hardware.
Even if it's not fully decompiled yet, it should be possible to relink the decompiled subsections into an original binary.
[0]: https://developer.apple.com/documentation/virtualization/run...
No. Even the decompiled version is incomplete - there's comments all over it which signal missing code like "could not recover jumptable ... too many branches". The "refactored" version is wildly speculative - it looks more like a very clumsy attempt to write a new translator than to reverse-engineer an existing one.
> With some patches (or so I'm told) it can be made to run on non-apple-silicon arm64 hardware.
With the huge caveat that the generated code will expect TSO to be enabled, and may malfunction on non-TSO ARM systems, particularly when running multithreaded code. (Most ARM systems are non-TSO; Apple Silicon has a MSR to enable TSO.)