12 ms·
Steam for Linux client adds support for Linux namespaces
- frio 7y agoThis is amazing work from Valve, but I have to admit some fear that it'll eventually stop. They started to put a lot of work into Linux gaming/Steam Machines when the Microsoft Store was a potential existential threat on Windows, but with the multitude of stores now present -- Battle.net, Ubiplay, Origin, Epic -- that no longer seems to be as terrifying as it once was. In the meantime, their own survey indicates that only <1% of users are on Linux (https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam?platform=combined https://store.steampowered.com/hwsurvey/Steam-Hardware-Softw... -- click the "OS Version" entry in the table). Still, as a full-time Linux user, I'm over the moon. I've always used Linux on my development laptop, but struggled to keep it on my desktop because the lure of gaming with remote friends has been too strong. However, after literally decades of trying to give up Windows entirely, between Proton, kernel contributions and efforts like this, I can play most of my backlog without having to resort to dual-booting or even VFIO. Even many fresh releases work without strife. To anyone at Valve who reads HN: thanks. I know we're a tiny minority, and I'm really grateful for the continued on-going support.
- agumonkey 7y agogotta wonder how small the % of linux users was prior steam
- shawnz 7y agoMaybe this is part of an effort to build a Google Stadia competitor
- gdxhyrd 7y agoThis is the right answer. With Proton, Steam has a very good start for their Cloud Gaming offering.
- nikeee 7y agoAlso, you already can play Steam games via in-home streaming on your TV or Android phone. There is also a program that lets a remote player connect and play with your local computer. This way, you can play couch multi player games via the internet together. Also, there was a reveal regarding steam gaming cloud recently: https://youtu.be/GqY5WYBDyyQ https://youtu.be/GqY5WYBDyyQ
- noicebrewery 7y agoLinux and Steam OS will continue to be an escape hatch, it is in their business interests to continue hedging their bets. Just because the Microsoft Store didn't pan out a few years ago doesn't mean they won't try again.
- pjmlp 7y agoAn utopian escape hatch, store now also does Win32 and MSIX is the way forward. Every year since XP I keep reading how PC gamers will switch in droves to Linux because of X, instead those of us that really enjoy gaming and high performance graphics are on Apple, Microsoft, Google, Sony and Nintendo platforms.
- baroffoos 7y ago>gaming and high performance graphics >Apple >Nintendo What? Nintendo and apple do not provide high performance graphics for gaming. Apple actively tries to kill gaming on their platform by not supporting vulkan and killing open gl and nintendo has never had high performance graphics.
- pjmlp 7y agoThey do more high performance graphics than the large majority of GNU/Linux "gamming" environments. Apple is not killing anything, anyone that has a name on the game industry already supports Metal, because professional game studios care about performance and productive tooling not about API religion wars. Game consoles, outsolding any Linux based platform, also don't support Vulkan, so they are also killing gamming? Yes, Switch does Vulkan, but their main 3D API is NVN and most of their titles are being done in Unity/Unreal, with Unity already having over 50% of Switch titles.
- jdnenej 7y agoYou are very uneducated on the topic if you think macos is a more suitable setup for gaming than Linux. The Mac gaming community consists mostly of casual gamers since the only hardware available is weak laptops or $10,000 workstations. Proton being built in to steam means that most games just work on Linux with a high level of performance. AMDs open source drivers are very good and included with the Linux kernel. Currently there are no game consoles you could consider high performance but the switch is by far the lowest performance. Which is fine for what it is but it not even close to something you would substitute PC gaming with.
- taeric 7y agoI'm with you in that tiny minority. And fully share your perspective. Thanks to the folks making this happen!
- commandar 7y ago>This is amazing work from Valve, but I have to admit some fear that it'll eventually stop. They started to put a lot of work into Linux gaming/Steam Machines when the Microsoft Store was a potential existential threat on Windows, but with the multitude of stores now present -- Battle.net, Ubiplay, Origin, Epic -- that no longer seems to be as terrifying as it once was. In the meantime, their own survey indicates that only <1% of users are on Linux (https://store.steampowered.com/hwsurvey/Steam-Hardware-Softw.. https://store.steampowered.com/hwsurvey/Steam-Hardware-Softw.... -- click the "OS Version" entry in the table). While this is true, I can also definitely see the logic in continuing to invest in a Plan B to protect the company from future external threats. I'm thinking along the lines of Apple maintaining an x86 port of MacOS for years before it ever became a public thing just in case. Valve certainly has the resources to keep such an escape hatch open for themselves.
- babuskov 7y ago> Battle.net, Ubiplay, Origin, Epic Not sure how relevant are the first 3 of those in this context. Battle.net, UPlay and Origin are basically just download/update systems for Blizzard, Ubisoft, EA and not a real competing store that could take over the whole market. Epic's store is the only one that sells 3rd party titles. More relevant competition would be GOG and to some extent itch.io (recently surpassed 200k titles in their catalog, but it's mostly very small indie games).
- timClicks 7y agoOT but pretty keen to figure out why someone decided that they needed to invest in a 52 core gaming rig last month (check the last line of the Linux table) https://store.steampowered.com/hwsurvey/cpus/ https://store.steampowered.com/hwsurvey/cpus/
- pg_is_a_butt 7y agoProbably someone trying to run a cluster of rasp-pis.
- bscphil 7y ago> their own survey indicates that only <1% of users are on Linux This is interesting to me because I spend 99.5% of my time on Linux (even for most of my gaming), but I still boot into a different OS when I want to use Steam, so I don't show up on the stat sheet. I wish I did. Two reasons I do this: 1. The Steam installation is kind of messy on my OS (Arch Linux). It involves a big client that doesn't integrate into the OS very well, requires a lot of 32 bit compatibility libraries that I wouldn't otherwise need, and leaves a bunch of large data files all over my home folder. 2. It simply feels weird and uncomfortable to run closed-source DRM-including software on Linux. I can't explain it any better than that, because it really is just a mental "purity" thing. I'd rather completely separate the "foreign" software that I have this instinctive distrust for onto a separate system entirely, where I already don't trust the OS. I'm still grateful to Valve for the support, because it encourages developers to get their software to run on Linux, even if most of the games I play are DRM-free binaries purchased from the developer.
- vkizl 7y agoTo me it feels weird to use binaries from outside the repos, period. On Windows double clicking an exe file feels natural. On Linux "chmod +x something && ./something" is icky.
- bscphil 7y agoThat's a good point! Maybe that's the source of it. I've gotten used to it for a couple of statically compiled long-lived binaries (games), but other than that even software I compile myself gets packaged before I install it.
- edoo 7y agoYou can run GPU accelerated apps in a container. You just need to install the same video driver and expose the x11 socket and card device. The app could still be evil and screen scrape or key log but at least it has no access to your filesystem and when the container is off it is truly off (assuming reasonable container security). There are several tutorials out there for at least browsers.
- ryukafalz 7y agoAgreed, Linux gaming has finally gotten to the point where it's actually pretty good, largely thanks to Valve's efforts. I'm grateful to them for that. I do also worry that it'll eventually stop, but right now, with the competition essentially actively discouraging native Linux ports (EGS exclusives with no support for Linux downloads)... well, I'll take whatever I can get with open arms.
- disordinary 7y agoYou say that but while there's a few good games but not that many and if you talk to anyone that games on Linux I guaranty you that we all own all those games.
- headsoup 7y agoI think the author above is including Proton, which actually works pretty well for many Windows games running on Linux.
- yjftsjthsd-h 7y agoEh, who cares how it works? What matters to me is that I want to play games on Linux[0] and I can. [0] Well, I say want to, but I literally do not own a Windows machine, so it's more that I only can play games that work, in any reasonable way, on *nix.
- vintermann 7y agoI don't understand such comments. Maybe if you're chasing the latest AAA game. But all the last games I bought had Linux versions. Back in the era of Loki games, maybe what you said was true, but that's 20 years ago now. It's easier to count the games that are hostile to Linux these days, and they're usually exclusive to Epic anyway.
- disordinary 7y agoI'm talking AAA games available on steam without having to run something like WINE. I like games with strong immersion and narrative and on Linux that's restricted to Alien Isolation, the BioShock series, the Metro series, etc. and that's something which is rare on Linux unfortunately. I, like many Linux users, have a windows boot partition just for games and the few Windows applications that I can't get on Linux I'd rather not have to do it but it is what it is.
- chongli 7y agoThe thing is, Valve put in the initial investment to support Linux in a big way. Now that things seem more stable, they could pull that support and save money. But how much money would they save? Maintenance of what they have now is far cheaper than the initial investment. So why not continue support? It’s always, always nice to have an escape hatch you can point to should Microsoft get that look in their eyes again.
- AnIdiotOnTheNet 7y agoI dunno. If Windows continues its downward slide Linux will eventually be the lesser of two crap-piles and Steam will be well positioned to take advantage of it. How long will it take EGS to catch up with that?
- arminiusreturns 7y agoSame. Many thanks to Valve for their work. I went linux only before proton for ideological reasons and the relatively recent strides with proton, the steam client, and moves like this really make me happy to continue to be one of the 1%rs running steam on linux and support valve for their efforts. I can't wait to buy an index vr headset and try to dev with it in godot. Valve, if you are reading this, just please make sure source 2 has a linux compatible editor! One thing I miss is modding source games.
- city41 7y agoDoes anyone know or have theories why Valve is doing all of this work? I mean, I love it. I use Steam on Linux and almost my entire library works perfectly. I couldn't be happier. But with Steam Machines seemingly dead, and such a small Linux base, why is Valve doing this? And yes, seriously, _thank you_ Valve!
- shmerl 7y agoTheir streaming service can easily use Linux, like Google does with Stadia. That would be a very obvious way to benefit from their own investment into Linux gaming ecosystem. Especially, since unlike Stadia, they are aiming at making their whole catalog work on Linux, using Wine (Proton) and etc.
- yjftsjthsd-h 7y ago> Does anyone know or have theories why Valve is doing all of this work? I believe the running theory has been that it's a defense against Microsoft being Microsoft. If MS tries to do something like force all NT apps through their own store and take a cut of every sale, or anything else that poses too much threat to Valve, then Valve has an escape hatch in the form of Linux support. "You want 30% of our sales? Screw you, we'll tell our users to switch to Linux!" is a bit extreme, but it just needs to be a deterrent.
- pjmlp 7y agoAnd they will get as many to switch as when DX 10 was only Vista, and other hurdles announced as the opportunity for GNU/Linux take over the gaming world.
- pnako 7y agoLinux dominates mobile, supercomputing, servers and embedded. There is no fundamental reason why it can't eventually take over gaming, or even desktop.
- AnIdiotOnTheNet 7y ago
- 29athrowaway 7y agomacOS has a 14% market share, yet there are many products developed exclusively for macOS that are highly profitable. Linux may have a 1% market share, but when you release on Windows, you will not only target a larger audience, but you will have to share that audience with a large number of studios. The AAA studios will take the lion share of the revenue. I think in Linux there's still some room for indie games to thrive. Sometimes all it takes if you are using a game engine like Unity is to simply create a cross platform build that may work out of the box.
- temptemptemp111 7y agoExactly why proaudio & provideo software could be profitable on Linux - but everyone seems to be ignoring it!
- erichurkman 7y agoMaybe if they are back doing non-Microsoft build work, they can soon support Mac with case-sensitive filesystems?
- ripdog 7y agoSeems somewhat unlikely to me. Now that OpenGL is gone from MacOS, the Mac is basically dead as a cross-platform gaming system. Who's going to rewrite their renderer on Metal just to target such a tiny platform? Maybe if UE or Unity do the work, games might still get Mac releases...
- tmzt 7y agoThere are libraries like [1] that expose a Vulkan api/abi on a Metal backend. [1] https://github.com/gfx-rs/gfx https://github.com/gfx-rs/gfx
- yincrash 7y agoValve uses MoltenVK[1] on their own games. They have used it since 2018 for Dota 2[2], but I can't find a lot of uptake by others. [1] https://github.com/KhronosGroup/MoltenVK https://github.com/KhronosGroup/MoltenVK [2] https://www.khronos.org/news/permalink/vulkan-support-for-dota2-on-macos-now-available https://www.khronos.org/news/permalink/vulkan-support-for-do...
- herewulf 7y agoMy experience from nearly 20 years of gaming on Linux: Just because a developer can support a platform, doesn't mean they will (sadly). It becomes less likely with any additional complications such as special libraries.
- baroffoos 7y agoMacOS was already dead for gaming since they have no hardware that can play most games. Killing OpenGL and not adding vulkan just finished it off.
- selectodude 7y ago
- simosx 7y agoThe main benefit is that it makes Steam not depend anymore on the installed packages of the host Linux distribution. Part of this is that Steam can still use 32-bit libraries even when the host Linux distribution has fully moved to 64-bit. See recent discussion at https://ubuntu.com/blog/statement-on-32-bit-i386-packages-for-ubuntu-19-10-and-20-04-lts https://ubuntu.com/blog/statement-on-32-bit-i386-packages-fo... While you would have expected from Valve to use an existing container platform, they went ahead and used directly the security features of the Linux kernel in Steam.
- the8472 7y agoAssuming your kernel is compiled with IA32 emulation
- yjftsjthsd-h 7y agoIt's not emulation; x86_64 processors are backwards compatible (to a fault, arguably...), so it's just a little bit of support that AFAIK everyone leaves enabled because why not.
- the8472 7y agoI am aware, nevertheless the flag is called CONFIG_IA32_EMULATION because the 64bit kernel is emulating the 32bit syscall interface.
- non-entity 7y agoI'm building a new PC soon and plan on trying my hand at a Gentoo box. Is this something I want to make sure is set if I wish to use steam?
- icebraining 7y agoFor now, I think it's the default everywhere.
- 7y ago
- haunter 7y agoWish I can find it now but there was an obscure article 10 years ago or so, maybe it wasn't an article even, which argued that the "desktop linux" will be gaming only. Linux will be as is now, enterprise, business, programming etc + gaming. But no middleground. Anyways just feels like we are closer and closer to that
- ComputerGuru 7y agoThis is only tangential, but I realized I never wrote this down and figured I’d take the opportunity. Ever since Steam published their non-Windows clients, we randomly get support requests from Steam users on Linux and macOS because the (all stacks) backtrace contains references to the WFMO WIN32 events library I open sourced many, many years back [0]. Always makes me smile though, my small contribution to Linux gaming. (Somewhat ironically, even Microsoft now uses this for cross-platform projects with VS Code being the primary example.) I think all library developers (open source or otherwise) would probably do well to adopt the etilqs hack, you never know where your code will end up. [0]: https://neosmart.net/blog/2011/waitformultipleobjects-and-win32-events-for-linux-and-read-write-locks-for-windows/ https://neosmart.net/blog/2011/waitformultipleobjects-and-wi...
- HeWhoLurksLate 7y agoNeat read, & thank you!
- ComputerGuru 7y agoThank you!
- efiecho 7y agoWith the recent Linux Foundation controversy fresh in mind, I misread namespaces as safespaces.
- myrloc 7y agoCan someone please do an ELI5 for Linux namespaces and why this is important for a better Linux Steam client?
- mikekchar 7y agoI don't know the answer, but a sibling post confirmed by suspicion: It allows you to run games in a container without having to set it up yourself. If you want to run Windows games using Steam on Linux, you have to have a bunch of libraries available which you will almost certainly not use in your normal day to day activities. Having the software in a container means that all those libraries are bundled into the game distribution and you don't need to maintain them yourself.
- habitue 7y agoThis isolates steam games from the rest of the things running on the machine, which dramatically reduces the number of variables Valve has to consider for supporting a Linux game. This means they can support more games with fewer resources, or give better support to more games. With namespaces and cgroups and chroot and bind mounts you can cobble together an isolated linux distro running on the same kernel as yours. So for example, Steam can target having a game run on Ubuntu 16.04, and ensure that it runs well there, while you can go ahead and use Arch, or Fedora 31 or whatever. It's like virtualization except that it doesn't translate every instruction, it only adds some overhead to certain syscalls.
- dottrap 7y agoAny opinions on which containers are easiest to get working on SteamOS? Any links on how-to-guides for this?
- Arnavion 7y agoThere was that time the Steam client rm-rf'd your home directory because of a typo in its wrapper shell script. Also, the client itself requires a bunch of packages that I'd rather not install on my machine, because my distro packages don't match what it wants, and because some of the packages it wants are 32-bit ones. So I just run Steam itself in a Docker container. The home directory inside the container is mounted to a subdirectory of my home on the host, so even if Steam wipes everything from it the only thing I'd lose is Steam itself.
- crummy 7y agoI didn't know you could run graphical apps in Docker. How does that work?
- Arnavion 7y agorm -f ~/docker-games/root/.Xauthority touch ~/docker-games/root/.Xauthority xauth nlist "$DISPLAY" | sed -e 's/^..../ffff/' | xauth -f ~/docker-games/root/.Xauthority nmerge - chmod 0444 ~/docker-games/root/.Xauthority XSOCK="$(realpath /tmp/.X11-unix/*)" DBUS_SESSION_BUS_PATH="$(echo "$DBUS_SESSION_BUS_ADDRESS" | sed -e 's/^unix:path=//')" docker run -it --rm \ --device '/dev/dri:/dev/dri' \ -v "$XSOCK:$XSOCK" \ -v "$(realpath ~/docker-games/root):/home/arnavion" \ -v "$(realpath ~/.config/pulse/cookie):/home/arnavion/.config/pulse/cookie" \ -v "$DBUS_SESSION_BUS_PATH:$DBUS_SESSION_BUS_PATH" \ -e "DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS" \ -e "DISPLAY=$DISPLAY" \ -e "PULSE_SERVER=$(ip -4 addr show enp4s0 | grep -Po 'inet \K[^/]+'):4713" \ -e 'XAUTHORITY=/home/arnavion/.Xauthority' \ --shm-size '1G' \ --hostname arnavion-docker-games \ docker-games \ $COMMAND The XSOCK mount allows it to talk to the host X server, and the .Xauthority mount allows it to auth with the host X server. Apart from that: * ~/docker-games/root is the home directory inside the container. * The DBUS mount and env var is to allow Steam to show its icon in the system tray of the host DE. There's also a symlink for `~/.steam/public/steam_tray_mono.png` -> `~/docker-games/root/.steam/public/steam_tray_mono.png` so that the host DE can find the icon based on the path inside the container. * The pulseaudio mount and env var is to allow sound. It requires pulseaudio to be set up to allow network clients. Here's the full gist: https://gist.github.com/Arnavion/3212232d0761d49d9636f796c5a99e53 https://gist.github.com/Arnavion/3212232d0761d49d9636f796c5a...
- shmerl 7y agoIs it using lxc?
- BatteryMountain 7y agoProbably. I had that hunch too.. seems to be the shortest and cleanest path the get namespaces. Maybe a subset of that library without allocating system resources like a vm.
- Yuioup 7y agoIs there a list of games that actively take advantage of containerization (i.e. old libraries, etc..)? For example, I can't run the GOG version of Legend of Grimrock on Fedora 31 because of libraries. This is the type thing that would that problem.
- perlgeek 7y ago(How) does this affect graphics performance? And how does the container communicate with the graphics engine? Just an X11 socket linked into the container?
- dastx 7y ago> (How) does this affect graphics performance? Namespaces are default feature within the Linux Kernel. If a process isn't isolated in any way, it's automatically assigned the default namespace. So what they've done is simply run the game processes in the a separate namespace. Therefore there should be negligible performance impact if at all.
- fonkyyack 7y agoI recently moved to Linux as a primary (and only os). I was a windows user because of games and I was so fed up with automatic updates, privacy concerns and so on that I decided to fully go to Linux. I searched a lot over internet before choosing a distrib (I'm not pro Deb or rhel or else) so I ended up with Manjaro (KDE version). And it such a delight fully customizable. Steam installed with some of my games working without doing anything "complicated", I was impressed! And then I installed lutris for all non native games. I expected much much troubles but in fact, it was easy. I installed Epic games store first and oxenfree just to test. It runs smoothly! I also installed Control (great game) in standalone still with lutris. I finished the games with only two or three crashes. So yes gaming on Linux is not ideal it might not be with the best performances also but it was much much easier than I though before doing the big step from windows to Linux. I'll follow any new improvements for gaming on Linux and I hope in the future that every store and game will be accessible natively on Linux. And that more and more user have the choice of the os they want!
- usr1106 7y agoThere are 7 types of namespaces, I don't see it mentioned which types they use. Mount namespaces are not a big deal to use, as long as you freely bind-mount from /dev and /sys whatever your software might need. The effect is mostly protecting your home directory against both reading and modification and isolating your system installations against version and configuration conflicts. Uid namespaces are really challenging if you try to make some complex software system work. They give a lot of isolation from the host system, some would say also new risks that the isolation has unexpected privilege escalations. Disclaimer: Not a gamer on any platform, so I don't know Steam other than from hearsay that it's the only serious one running on Linux.
- sha666sum 7y agoSomething nobody else seems to have said here, is that Valve's work on Linux, Proton, streaming from one device to another (even phones), etc, puts them in an excellent position for cloud gaming, as pointed out by [1]. Namespaces support seems like an obvious next step here. Valve is already in the best position for this, since they're the dominant market player and gamers already have their game libraries in Steam. Buying a game from Valve makes more sense than buying a game from Google Steam users get to keep a playable product even if the streaming product is a flop. [1] https://www.gamingonlinux.com/articles/looks-like-valve-could-be-set-to-launch-something-called-steam-cloud-gaming.15354 https://www.gamingonlinux.com/articles/looks-like-valve-coul...