← Back to context

Comment by homarp

5 months ago

https://www.winehq.org/ calls it a compatibility layer that translates calls on the fly.

so 'translation layer' is not that unfair.

Clearly they don't want to come out and say that Wine is an "implementation of windows apis", because that would invite legal issues. But clearly this is what Wine really is for a large part. Some stuff are just shallow shims to Linux apis, while other stuff they need to make more of their own implementation of.

  • "WINE Is Not an Emulator" has always said something exactly like that. It hasn't exactly been a "secret" that Wine is an implementation of Windows APIs (and not an emulator/translator).

If it is forwarding to libc() as opposed to syscalls directly than maybe ‘translation’ is fair.

  • I think that's how it started out, and also how a lot of developers still conceptualize it. Wine has had to massively expand that scope to reach the maturity it has now. I think it's kind of straddling the line between "Implementation" and "translation".

    Philosophically its still a translation layer though. It doesn't really care about correctness if the no apps depend on it. Success is in meaningfully running client software. The implementation of the Windows Libraries are just a way to get there.