• qqq@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    17 hours ago

    What does Wine have to do with anything…? Wine is an implementation of Windows ABI and APIs, it has nothing to do with Linux’s ability to run 32 bit executables on 64 bit machines. AMD64 CPUs can run x86 instructions. 32 bit executables run natively on Linux, no emulation or VM required. Old (pre arm) versions of MacBooks have hardware that can run 32 bit instructions, but the OS simply doesn’t let you run 32 bit executables anymore without jumping through hoops.

    A lot of your comment here makes no sense, tbh it reads like you’ve reached the limit of your understanding. And no we shouldn’t be “making fun of” the Wine team getting paid basically nothing for making an amazing product. Wtf?

    • mittorn@masturbated.one
      link
      fedilink
      arrow-up
      1
      ·
      17 hours ago

      @qqq @OpenStars before wow64 introduction, wine required 32 bit process and multilib to run 32 bit code, requiring 32 bit opengl/bulkan implementations
      But it is possible to run 32 bit code in 64 bit process.
      Wine in wow64 mode enforces 64 bit process to use only lower 32 bits address space and thunks 64 bit libraries via wine nt syscall interface to loaded 32 bit PE binaries. No multilib or even 32 bit process support required, 32 bit instructions executed as is. Also this allows using machine code translation layers (like fexemu) exposing native calls with same syscall interface.
      wow64 maybe still limitted because it does not allow calling native libraries directly and increases overhead. win32 TLS code is using same fs segment register as linux 64bit TLS and workarounds may have bigger overhead, than using multilib