• Dark ArcA
    link
    English
    18 months ago

    it was just an example of a compatibility layer

    It’s a different problem under the same name. You’re comparing apples to oranges by comparing WINE and Rosetta.

    WINE (as I understand it) explicitly does its best to maintain the instructions and basically just implements functions that are missing.

    Rosetta actually changes out every instruction (and presumably has to do a WINE-like thing as well to handle dynamically linked code, though in theory this is more of a 1-to-1 mapping since you’re not swapping OSes).

    if there’s no viable way to translate those x86 legacy applications over to ARM

    For a properly written application that doesn’t have a lot of third party binary dependents… This really shouldn’t be that big of a job. You just recompile the code on ARM, test, and fix any bugs.

    I’d speculate that most of the time this stuff comes up like: “this was written for Windows with some very specific Microsoft libraries/tech in mind and we want to run it on Linux and ARM as cost cutting measures.”

    Granted, it’s not unusual for a large enough code base to contain some code that wasn’t written in an architecture neutral way/does some shady stuff.

    • @Defaced@lemmy.world
      link
      fedilink
      English
      18 months ago

      I’m not comparing Rosetta and proton…I’m just using them as examples of compatibility layers that make their products viable. I frankly don’t give a shit about the inner workings of Rosetta or proton, but thanks for clarifying I guess.