“He who fights with Windows should see to it that he himself does not become Windows. And when you gaze long into ntoskrnl, ntoskrnl also gazes into you.”
Seriously, is it really a victory if you have to adopt the architecture of your sworn enemy?
Not really, in the drunken happiness to have games, Linux users keep forgetting those are games developed on game studios that the only place there are GNU/Linux installations running are their MMO servers.
It is no different from arguing how Linux is getting better GameCube games with Dolphin.
Also Valve is only as good as its current management is still around, eventually like any other company time will pass, and new warm bodies will take other decisions.
Used to be a staff member working on an x86 OS called CTOS. I realized if I implemented a couple of traps, we could run command-line DOS programs. So I did. And it worked. Dev tools, text processing, piped commands all worked.
It helped that the DOS executable format was the same as the CTOS format - because we had traded Bill Gates our linker (which produces executables) for his BASIC compiler.
Thanks for sharing, never heard about it before. What was kernel programming back then? Briefly checked the wikipedia and looks like CTOS was kinda big in the government space back in the 80s.
If you wanted to get into development mode in CTOS, the keyword was 'developement' - an e between the p and the m. Worked on this system back in early 1990 as a developer.
hello! hello! I was mainly admin and COBOL dev with them (I wish I kept the collection of the manuals and PRGs, alas when no space..), bitsavers have a quite collection (incl a virtualbox HDD) if you are interested!
I wonder what spanners Windows can throw into the works to slow them down at this point, or if they're so checked out of the Desktop market as they suckle down hard on that Azure teat, that they're more than happy to let Linux eat their lunch
Headline says "Windows APIs are becoming Linux kernel features", but only provides two actual examples? It lists NTSYNC, and waiting on multiple events at once.
I developed for windows before moving to linux. I was surprised to find that was no system call similar to windows WaitForMultipleObjects. Sure you can implement something similar using poll() or using condition variables. but WaitForMultipleObjects seems so much simpler and more versatile
I only hope this eventually reaches enough coverage to support media production. It’s the last commercial area I care about. I’m entirely willing to pay for good work here (and have) but both major commercial desktop OSs are exhibiting significant warning signs of contempt for the users.
I predict that ntsync will eventually evolve into full blown ntoskrnl.ko and there would be virtually no overhead on calling Windows API. You can almost call it a Linux Subsystem for Windows.
I remember when XDA was the home of Android homebrew hackers working on things like CyanogenMod. It's so strange to see it repurposed as the brand for the same quasi-correct tech article slop that gets parroted between all the big blogs.
Tom's Hardware is a bit before my time, but I remember it being well regarded. I've seen a lot of similar articles under that name lately. I wonder if they've undergone similar fates.
Feels like there is some real momentum on linux gaming now. I mostly play older games but I've gotten most of them working acceptably in proton on my old system 76 laptop (oryp5, with a nvidia 2060; ~7 years old). The laptop actually has plenty of power for the games I play, but I underclock to keep the heat/fan speeds down (been doing the same on the win10 install on the same system), still getting acceptable framerate in proton for most of the things I do in game, non intense stuff.
Decades ago I ported some games to linux but I do think proton is the correct approach now. One underappreciated advantage is you get most of the mod environment too. In ESO for instance, there is an addon (tamriel trade center) which lets you download item prices, but it requires a windows client exe to do that. That client works on proton.
I also do some modding myself and can cross compile my rust code to windows with cargo xwin, and run it right away in proton, which is fairly amusing to behold.
I actually don't mind windows generally (been a MS user since DOS 5), but Win11 is a game changer, pun intended, and not in a good way.
Yes , Win32 / DirectX in common HAL for games now , just compile your game for windows/steam , you can run everywhere , minimize the headache of doing native game development , like breaking with X11 / wayland kde / wayland gnome / wayland mutter .
For the OSes runtime side you can depend on SteamOS / Apple's Game Porting Toolkit / Crossover / Proton / DWProton / Wine / and Android's Winlator/Gamehub/Gamenative .
For DirectX compatibility you can depends on Apple's D3DMetal , DXMT , VKD3D , DXVK and WineD3D .
I think Linux needs a few things before it will be ready for mass consumer adoption.
1. An equivalent of kernel level anti-cheats. Cheating really sucks. It ruins online games. Kernel level anti-cheats aren't perfect, but they're much better than user-space or server-side anti-cheats. Maybe in the future AI solves this, but inherence-based anti-cheats are likely going to be a cat-and-mouse game. Valve have stated they are working on this problem and I think if anyone is going to solve it, it's them.
2. Immutability. Right now distributing games on Linux isn't distributing games "on Linux." It's distributing games to 12 different distros with a hundreds different configurations and a thousand customisations. This is impossible to support. When SteamOS gains traction, developers will be able to target exactly one distro with fixed configurations and limited customisations. Valve will set the standard for other distros.
3. An enforced equivalent of .exe. One of the most wonderful parts of Windows is the near universal acceptance and use of the executable installation method. You just double click the file and install it. Linux is an absolute clusterfuck of installation manuals and scripts and competing app stores with their own repos and permissions and packaging methods. If Valve were to mandate the use of, for example, flatpaks in SteamOS, that will become the universal standard. I think this is one of the most frustrating parts of using Linux for regular people.
4. Better hardware support. My Fanatec peripherals don't work well in Linux. Fanatec doesn't offer drivers and open source options are limited in functionality (and stability). There are many products for which drivers support sucks in Linux. I think AI will solve many of these issues over the next few years. Unless the manufacturer has gone out of their way to encrypt of obfuscate the communication layer with the product, you can basically point Codex at the peripheral and tell it to build an interface driver. Within a few years, I imagine operating systems will have this kind of functionality built in. If the OS encounters a peripheral it doesn't recognise, it will just build its own driver on the fly.
I am more optimistic about all of these than ever before. Linus Torvalds famously said it will take Valve to fix this fragmentation problem for us, and that looks like where we are heading. No doubt there will be Linux fans who lament the loss of diversity and competition, but I think we end up with a true competition to Windows for gaming. That's when I will make the jump.
Thank you for sharing that last paragraph. It's nice to know I'm not the only one out there who feels let down by the trajectory Microsoft has taken.
I've likewise got a lifetime of experience on the Windows / MS stack, decades of custom tooling I've adapted or coded from scratch, etc. It's frustrating to see so many great advancements to core fundamentals like the kernel, tracing tools, I/O performance, etc. get completely overshadowed by such chronically user-hostile and frankly stupid business decisions.
I wish I could have the good bits without all the nasty cruft. I wish they stopped assigning junior devs who haven't even heard of Win32 to work on UI touched by millions of end users. I wish they hired back QA staff and rediscovered proper quality control methodologies like, say, regression testing. I remember a story from back in the day when they bought up one of every software title from the local tech store and had staff each pick one to dogfood on their prerelease OS. That passion to ensuring a good user experience.
I don't look forward to the time it will take to recreate all my infrastructure in Linux (including no doubt several detours tinkering into source codes to fix little issues and upstream little enhancements). But I fear Microsoft as a whole will never get their heads screwed on straight in time for me to avoid having to do so.
I would pay good money for something like ReactOS, Wine, or whatever, to offer the equivalent for business applications as Proton is for games. I applaud all the hard work done by people on those projects. I expect one day when kids have never heard of the word Microsoft, the code those heros wrote will still be in use by some grateful beneficiaries.
Anyway, that's the end of my rant. And in the meantime, just in case you haven't tried it yet... Windows 11 IoT Enterprise LTSC is the least offensive flavor I've found, and works as a daily driver.
This is good to hear, but I get 120FPS on Windows in Cyberpunk 2077 and ~70 on Ubuntu. Horizon Zero Dawn is much worse, and quite often drops to seconds-per-frame instead of frames-per-second, if I turn on dynamic scaling. I just have an ssd with windows on it for gaming and boot to that from the bios. Also means my headphones UI works too. But, to be fair, the fact that I _can_ run Cyberpunk and HZD if I want to is pretty impressive.
There's been real progress. Wine's memory allocator had an architecture with three nested locks. "Realloc" held a futex lock on the memory allocator while recopying the buffer. Multiple threads doing allocation could go into futex congestion, with many threads looping on the futex. This made Vec::push in Rust insanely inefficient. Some of my programs dropped from 60FPS to about 0.5 FPS.
Fixed in Wine 11.0. Thanks to the Wine team.
Not sure if this was related to NTSYNC, but Wine's locking infrastructure definitely got an overhaul.
Show me the numbers. Show me an identical gaming PC running Windows 11 and then Linux, and show not just FPS - but things like frametime pacing, latency, etc.
This NTSync stuff is very impressive, but I haven't seen a lot of end-to-end numbers versus Windows. The last comparisons I saw showed pretty much every distribution on the order of 5-30% behind Windows, varying on the game. And Nvidia GPU support was still not great.
I WANT to swap. Please give me cause to do so. I'm sitting here with my finger on the button waiting for it to finally get good enough to make sense.
> Show me the numbers. Show me an identical gaming PC running Windows 11 and then Linux, and show not just FPS - but things like frametime pacing, latency, etc.
No.
> I WANT to swap. Please give me cause to do so.
If you won't put the work in, why should we help you? Just stay on Windows, and we'll enjoy our Linux gaming rigs.
they installed Linux on a PS5 and somehow the Windows games running through proton get same or sometimes a little bit more fps then the native ps5 game, its crazy
I don't even know that FPS helps in that game, to be honest.
In my experience, CS2 plays better at 150ms ping than 19ms ping. It's not even K/D ratio bias as the far away server has better players than the matches.
19ms and everyone else is just janky-warping around. 150ms and maybe there is a rollback where yeah that whole thing 5s ago didn't happen but otherwise it is very smooth.
I stopped using Windows all together two years ago, and since then Linux gaming has made huge strides. Almost everything is playable now with the exception of Kernel AC games - which I don’t play anyways. The success of the Steam Deck has been an integral part, and Vulkan performance is similar if not equal to DX.
I moved about 4 months ago to Bazzite on my nvidia RTX 3080 desktop.
What worked fine:
- All steam games I tried (mostly indie but I did play Cyberpunk 2077 beginning to end and Satisfactory) all with 0 issues
- Overwatch over battle.net
- Accessing SMB partitions is easier than windows (although it is a bit weird how KDE handles it)
What caused problems:
- Linux doesn't support HDMI stream compression so you can't do 1440p @ 165hz with HRD on over HDMI 1.4, so I turned down to 120hz (my monitor doesn't have HDMI 2)
- battlenet is a bit annoying to set up (needed to mess with proton version) and sometimes craps out when I launch it. One time after an update it completely broke and I had to reinstall. Never had I to do any CLI stuff to fix this
- I ran into a problem that caused toast notifications on both steam and battlenet to memory leak and take several gb of ram and high CPU. Disabling toast notifications fixed the issue, I believe this has been fixed upstream in Bazzite/KDE.
- I couldn't get HDR working on Overwatch, apparently you need some proton CLI args to enable it and I just didn't want to bother.
- Once after a big update Overwatch completely crapped out and I had to reinstall the game. I could actually launch the game but it felt like textures were missing or shaders weren't compiled, it was very weird.
Overall I am very happy with no plans on going back to windows. Apparently the main report of problems are people using laptops with mobile nVidia GPUs, and older nVidia GPUs (1000 series I think).
I use Bazzite for all my gaming (Returnal at the minute) and it works unbelievably well. I don’t tinker with any of the proton version. I just press play.
I recently completed Stellar Blade with zero issues.
I don’t even shutdown the machine, I just hit the power to sleep it. Instantly resumes where I left off.
121 comments
[ 2.6 ms ] story [ 96.7 ms ] threadSeriously, is it really a victory if you have to adopt the architecture of your sworn enemy?
It is no different from arguing how Linux is getting better GameCube games with Dolphin.
Also Valve is only as good as its current management is still around, eventually like any other company time will pass, and new warm bodies will take other decisions.
It helped that the DOS executable format was the same as the CTOS format - because we had traded Bill Gates our linker (which produces executables) for his BASIC compiler.
What does this mean? System calls?
Thanks for sharing, never heard about it before. What was kernel programming back then? Briefly checked the wikipedia and looks like CTOS was kinda big in the government space back in the 80s.
Tom's Hardware is a bit before my time, but I remember it being well regarded. I've seen a lot of similar articles under that name lately. I wonder if they've undergone similar fates.
https://www.kickstarter.com/projects/944362954/bapaco-the-wo...
Interesting, but I wish it was half the size folded...
Decades ago I ported some games to linux but I do think proton is the correct approach now. One underappreciated advantage is you get most of the mod environment too. In ESO for instance, there is an addon (tamriel trade center) which lets you download item prices, but it requires a windows client exe to do that. That client works on proton.
I also do some modding myself and can cross compile my rust code to windows with cargo xwin, and run it right away in proton, which is fairly amusing to behold.
I actually don't mind windows generally (been a MS user since DOS 5), but Win11 is a game changer, pun intended, and not in a good way.
For the OSes runtime side you can depend on SteamOS / Apple's Game Porting Toolkit / Crossover / Proton / DWProton / Wine / and Android's Winlator/Gamehub/Gamenative .
For DirectX compatibility you can depends on Apple's D3DMetal , DXMT , VKD3D , DXVK and WineD3D .
1. An equivalent of kernel level anti-cheats. Cheating really sucks. It ruins online games. Kernel level anti-cheats aren't perfect, but they're much better than user-space or server-side anti-cheats. Maybe in the future AI solves this, but inherence-based anti-cheats are likely going to be a cat-and-mouse game. Valve have stated they are working on this problem and I think if anyone is going to solve it, it's them.
2. Immutability. Right now distributing games on Linux isn't distributing games "on Linux." It's distributing games to 12 different distros with a hundreds different configurations and a thousand customisations. This is impossible to support. When SteamOS gains traction, developers will be able to target exactly one distro with fixed configurations and limited customisations. Valve will set the standard for other distros.
3. An enforced equivalent of .exe. One of the most wonderful parts of Windows is the near universal acceptance and use of the executable installation method. You just double click the file and install it. Linux is an absolute clusterfuck of installation manuals and scripts and competing app stores with their own repos and permissions and packaging methods. If Valve were to mandate the use of, for example, flatpaks in SteamOS, that will become the universal standard. I think this is one of the most frustrating parts of using Linux for regular people.
4. Better hardware support. My Fanatec peripherals don't work well in Linux. Fanatec doesn't offer drivers and open source options are limited in functionality (and stability). There are many products for which drivers support sucks in Linux. I think AI will solve many of these issues over the next few years. Unless the manufacturer has gone out of their way to encrypt of obfuscate the communication layer with the product, you can basically point Codex at the peripheral and tell it to build an interface driver. Within a few years, I imagine operating systems will have this kind of functionality built in. If the OS encounters a peripheral it doesn't recognise, it will just build its own driver on the fly.
I am more optimistic about all of these than ever before. Linus Torvalds famously said it will take Valve to fix this fragmentation problem for us, and that looks like where we are heading. No doubt there will be Linux fans who lament the loss of diversity and competition, but I think we end up with a true competition to Windows for gaming. That's when I will make the jump.
I've likewise got a lifetime of experience on the Windows / MS stack, decades of custom tooling I've adapted or coded from scratch, etc. It's frustrating to see so many great advancements to core fundamentals like the kernel, tracing tools, I/O performance, etc. get completely overshadowed by such chronically user-hostile and frankly stupid business decisions.
I wish I could have the good bits without all the nasty cruft. I wish they stopped assigning junior devs who haven't even heard of Win32 to work on UI touched by millions of end users. I wish they hired back QA staff and rediscovered proper quality control methodologies like, say, regression testing. I remember a story from back in the day when they bought up one of every software title from the local tech store and had staff each pick one to dogfood on their prerelease OS. That passion to ensuring a good user experience.
I don't look forward to the time it will take to recreate all my infrastructure in Linux (including no doubt several detours tinkering into source codes to fix little issues and upstream little enhancements). But I fear Microsoft as a whole will never get their heads screwed on straight in time for me to avoid having to do so.
I would pay good money for something like ReactOS, Wine, or whatever, to offer the equivalent for business applications as Proton is for games. I applaud all the hard work done by people on those projects. I expect one day when kids have never heard of the word Microsoft, the code those heros wrote will still be in use by some grateful beneficiaries.
Anyway, that's the end of my rant. And in the meantime, just in case you haven't tried it yet... Windows 11 IoT Enterprise LTSC is the least offensive flavor I've found, and works as a daily driver.
Fixed in Wine 11.0. Thanks to the Wine team.
Not sure if this was related to NTSYNC, but Wine's locking infrastructure definitely got an overhaul.
This NTSync stuff is very impressive, but I haven't seen a lot of end-to-end numbers versus Windows. The last comparisons I saw showed pretty much every distribution on the order of 5-30% behind Windows, varying on the game. And Nvidia GPU support was still not great.
I WANT to swap. Please give me cause to do so. I'm sitting here with my finger on the button waiting for it to finally get good enough to make sense.
Got it running in less than an hour.
The title after the jump is "Linux gaming is getting faster because Windows APIs are becoming Linux kernel features"
Getting faster. Not at parity yet.
No.
> I WANT to swap. Please give me cause to do so.
If you won't put the work in, why should we help you? Just stay on Windows, and we'll enjoy our Linux gaming rigs.
In my experience, CS2 plays better at 150ms ping than 19ms ping. It's not even K/D ratio bias as the far away server has better players than the matches.
19ms and everyone else is just janky-warping around. 150ms and maybe there is a rollback where yeah that whole thing 5s ago didn't happen but otherwise it is very smooth.
And I didn’t expect: VR streaming works flawless, too. I just had to buy a WiFi 6 usb dongle.
What worked fine:
- All steam games I tried (mostly indie but I did play Cyberpunk 2077 beginning to end and Satisfactory) all with 0 issues
- Overwatch over battle.net
- Accessing SMB partitions is easier than windows (although it is a bit weird how KDE handles it)
What caused problems:
- Linux doesn't support HDMI stream compression so you can't do 1440p @ 165hz with HRD on over HDMI 1.4, so I turned down to 120hz (my monitor doesn't have HDMI 2)
- battlenet is a bit annoying to set up (needed to mess with proton version) and sometimes craps out when I launch it. One time after an update it completely broke and I had to reinstall. Never had I to do any CLI stuff to fix this
- I ran into a problem that caused toast notifications on both steam and battlenet to memory leak and take several gb of ram and high CPU. Disabling toast notifications fixed the issue, I believe this has been fixed upstream in Bazzite/KDE.
- I couldn't get HDR working on Overwatch, apparently you need some proton CLI args to enable it and I just didn't want to bother.
- Once after a big update Overwatch completely crapped out and I had to reinstall the game. I could actually launch the game but it felt like textures were missing or shaders weren't compiled, it was very weird.
Overall I am very happy with no plans on going back to windows. Apparently the main report of problems are people using laptops with mobile nVidia GPUs, and older nVidia GPUs (1000 series I think).
How do I actually see the graph?
All I see is stats for April:
- Windows 93.47% +1.14%
- Linux 4.52% -0.81%
- OSX 2.01% -0.34%
I recently completed Stellar Blade with zero issues.
I don’t even shutdown the machine, I just hit the power to sleep it. Instantly resumes where I left off.
Incredible to see just how far it’s come.