this post was submitted on 27 Aug 2024
41 points (91.8% liked)

Linux

47290 readers
1007 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

hi ik wine can translate userspace calls but i wonder if its possible to translate windows kernel level calls to linux ones (eg,kernel level anticheat,etc)

top 18 comments
sorted by: hot top controversial new old
[–] [email protected] 73 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

Wine does translate kernel calls. Perhaps youre misunderstanding how that is then exposed?

Wine translates windows calls (including system level/kernel level) but exposes/implements in userspace on linux.

It doesn’t only do windows userspace to linux userspace

Its a design decision from the wine team to not build it as a kernel module and to instead implement as an application in userspace

Have a read here https://werat.dev/blog/how-wine-works-101/

[–] [email protected] 5 points 2 weeks ago (3 children)

then if it translates kernel calls why cant some kernel level anticheat run

[–] [email protected] 67 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

Anticheat isnt solely about kernel calls. Anticheat systems, depending on what one you are referring to, will inspect runtime memory, data loaded into RAM. It will do a number of things to verify memory isn’t being modified (which cheat engines, among other things, need to do).

Simply, Wine and linux load applications differently, anticheat systems see the difference and assume something nefarious is going on.

Its not as simple as just running anticheat in wine.

edit some additional info from a pretty old article

https://www.theverge.com/2021/10/5/22709918/valve-steam-deck-supported-games-anti-cheat-proton-eac-battleye-epic

[–] [email protected] 17 points 2 weeks ago (1 children)

oh i thought its just translating the anti cheat calls,ty for the detailed explination

[–] [email protected] 29 points 2 weeks ago (1 children)

sadly, no. Anticheat Systems are designed to be paranoid as fuck. So even some readout of the hardware used that WINE handles a tad differently than Windows might trip it.

[–] [email protected] 5 points 2 weeks ago

oh yeah some anticheat can ban you for playing games on your pc

[–] [email protected] 7 points 2 weeks ago (1 children)

Also, (and this is from security research articles here) most kernel level anticheats seem to focus more on datamining than anticheat (see: anything from tencent)

Its so bad that a lot of corporate environments ban any work being done on machines that also have them installed (source: my employer)

Over time more and more anricheat companies have realised that personal data is gold and they are harvesting more and more of it.

Just read the eula some time. Most of it state in plain english that they send files from your documents, take screenshots and log keys.

And we give them kernel access…

[–] [email protected] 3 points 2 weeks ago (1 children)

if any anti cheat datamines my data i am prob not playing that game

[–] [email protected] 4 points 2 weeks ago

Well, buddy… I got news for you!

[–] [email protected] 3 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

Because it is in user space not kernel space. Also Linux uses a monolithic kernel (no separate space for drivers)

[–] [email protected] 10 points 2 weeks ago (1 children)

If you wanted to support all possible drivers, you would basically need to rewrite the entire kernel. You could make one specific anticheat work by supporting its specific calls, but this will take a lot of work, and will probably be broken with the first ever update.

In the past there were projects that supported specific types of drivers, such as ndiswrapper, but that had a very limited scope.

Here's also an answer to a similar question: https://unix.stackexchange.com/questions/544776/installing-proprietary-windows-drivers-on-linux

[–] [email protected] 1 points 2 weeks ago
[–] [email protected] 8 points 2 weeks ago

WINE loads the executable binary data into the memory, and runs it. The Machine doesn't care if the code was made for Windows or Linux when it runs it

[–] [email protected] 5 points 2 weeks ago (1 children)

The funny thing here is that Microsoft did a very good job in WSL v1 doing the exact opposite. Unlike Windows apps that run all broken under Wine, running GUI app on WSL worked just fine.

[–] [email protected] 19 points 2 weeks ago

They really did do a good job. The difference is that they have access to documentation about Linux that wine doesn't have about Windows.

[–] [email protected] 2 points 2 weeks ago

That's more or less what a virtual machine does. And I bet cheating programs do as well.

[–] [email protected] 1 points 2 weeks ago

Not really

It is the difference between kernel space and user space