this post was submitted on 22 Aug 2024
484 points (98.8% liked)
Linux Gaming
15797 readers
26 users here now
Gaming on the GNU/Linux operating system.
Recommended news sources:
Related chat:
Related Communities:
Please be nice to other members. Anyone not being nice will be banned. Keep it fun, respectful and just be awesome to each other.
founded 4 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Sometimes i feel weird and impressed with Microsoft that allow third party to create windows emulation system that beat original windows in many ways
It is mostly a translation layer -- WINE is Not an Emulator (WINE). The reason Microsoft 'allows' this is because they have no choice. WINE hasn't broken any laws or violated any copyright or trademarks. Same goes for Proton with DXVK of course.
Although i never fully understand how wine works, how WINE doesn't break any lawsuit ? It's clearly mimicking windows itself with windows library (like VC Library, DotNet, DirectX, etc) as add-ons
Now i hope linux community can do the same with Nintendo Emulator or Sony PS emulator without triggering lawsuit
In a highly simplified way:
Wine isn't breaking Windows copyright because it doesn't copy any of the Windows internals: instead it provides the contact points with the right "shape" for programs which were made to work in Windows to connect to to get their needs fullfilled, and then internally Wine does its own thing which is mainly using the Linux under it to do the heavy lifting.
Mind you, this simplification seriously understates just how complicate it is to implement what was implemented in Wine because the Windows interface is a lot more that just the shape of a wall socket.
To add to your explanation
If I remember correctly, the only thing WINE has "copied" are the function calls and signatures (which are the adaptors as mentioned in the other response). The function implementation is completely original.
To add a more technical explanation, the main point is about the expectation on how it behaves and not what it really does. To get windows to do something, you read the specification (interface) and make a call against it. Windows interprets your request and does what you wanted. You do not care how it works but just that it works. As a developer, you can also switch to the other side and make your own program that interprets these calls and translates, them for linux.
Legally (I am not a lawyer), the specification is a fair game. The spicy part is how it is done and copying that gets you in trouble.
Of course, this is also extremely simplified since linux and windows differ wildly in many regards. Also a "specification" is often incomplete or the implementaion bleeds into the real world use. This makes it not reliable to look at it alone and so, often the "original" implementation has to be observed on how it behaves.
As a more relatable example, think about websites. On the one hand, it does not matter which browser you use. It "just" has to display the page and act accordingly. On the other side, it does not matter what server sends you the page. It could be a pre-computed static page, served via a proxy server or dynamically generated by any of the different programming languages.
Edit: grammar