News: 1695812414

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Linux interop is maturing fast… thanks to a games console

(2023/09/27)


Open Source Summit Steam OS is the Arch-based distro for a handheld Linux games console, and Valve is aggressively pushing Linux's usability and Windows interoperability for the device.

Two unusual companies, Valve Software and Igalia, are working together to improve the Linux-based OS of the [1]Steam Deck handheld games console . The device runs a Linux distro called Steam OS 3.0, but this is a totally different distro from the original [2]Steam OS it announced a decade ago . Steam OS 1 and 2 were [3]based on Debian, but Steam OS 3 is based on Arch Linux, as Igalia developer [4]Alberto García described in a talk entitled [5]How SteamOS is contributing to the Linux ecosystem .

He explained that although Steam OS is built from some fairly standard components – the normal filesystem hierarchy, GNU user space, systemd and dbus – Steam OS has quite a few unique features. It has two distinct user interfaces: by default, it starts with the Steam games launcher, but users can also choose an option called Switch to Desktop , which results in a regular KDE Plasma desktop, with the ability to install anything: a web browser, normal Linux tools, and non-Steam games.

[6]

Obviously, though, Steam OS's raison d'être is to run Steam games, and most of those are Windows games which will never get native Linux versions. Valve's solution is [7]Proton , an open-source tool to run Windows games on Linux. It's formed from a collection of different FOSS packages, notably:

[8]WINE , the compatibility layer for Windows APIs.

[9]DXVK , which translates DirectX version 9 to 11 calls into [10]Vulkan calls.

[11]VKD3D-Proton , which translates DirectX 12 calls to Vulkan.

And also the [12]GStreamer open source multimedia framework and other libraries.

The result is a remarkable degree of compatibility for some of the most demanding Windows apps around – Proton's compatibility database, [13]ProtonDB , offers these impressive stats:

Deck Verified Games

▸ verified: 3,886

▸ verified or playable: 11,503

Games on ProtonDB

▸ recommended by three or more: 8,106

▸ recommended by two or more: 11,275

▸ recommended by at least one: 18,760

Proton was released by Valve in 2018 and is still in very active development. It's also actively involved in WINE development now, working alongside Codeweavers, whose efforts The Reg [14]first reported on in 2000 .

Wherever possible, WINE converts Windows API calls to Linux ones, but sometimes, there is no matching Linux API. If there isn't, García said, "Wine needs to implement the missing parts. This can result in overhead, and it's not always easily solvable in userspace. Solution: new Linux features to fill in the missing gaps."

[15]

[16]

One recent example is the new [17]futex_waitv() call in kernel 5.16, which brings a new API to Linux that's like Win32's [18]WaitForMultipleObjects() call, as this Collabora [19]blog post explains in depth. Another [20]patch brings [21]optional case-insensitivity to the F2FS, the [22]Flash-friendly file system . As another example, Valve and its partners are also working on more [23]reliable user-space spinlocks .

A significant way that Steam OS differs from its Arch parent distro is that, like Chrome OS, it uses dual root partitions with failover: the active instance of the OS updates the other instance, so that if the update fails for some reason, it can automatically fail-over back to the original, unmodified instance. The snag is that Steam OS 3 uses Btrfs: Btrfs identifies filesystems by their UUID, and it really doesn't like it if it finds two partitions with the same UUID. Igalia engineer Guilherme Piccoli wrote a [24]patch to make Btrfs able to handle this, as well as another to improve the performance of [25]split lock detector handling .

[26]Long-term support for Linux kernels is about to get a lot shorter

[27]GNU turns 40: Stallman's baby still not ready for prime time, but hey, there's cake

[28]These days you can teach old tech a bunch of new tricks

[29]Intel seems to think Wi-Fi 7 is too cool for old-school Windows 10

Some of this illustrates the general thrust of the development being done: taking features that do already work, and making them work much faster to improve games performance on a relatively modestly specified device. The Steam Deck is based on an AMD Zen2-based [30]"Van Gogh" SoC, codenamed Aerith after a [31]character from Final Fantasy 7 . This uses a custom AMD GPU driver called [32]RADV , as well as a custom shader compiler, [33]ACO . Igalia engineer Melissa Wen is [34]working with Valve and AMD to improve the Linux [35]Direct Rendering Manager [PDF] and its handling of high dynamic range (HDR) displays.

Steam OS is also an immutable distro, like [36]Fedora Silverblue and [37]Endless OS . So, both its root partitions are normally read-only, and apps can only be installed via Flatpak. As former Elementary OS developer Cassidy Blaede, now with Endless, [38]points out , in this way, the very end-user focused Steam Deck is acting as a Trojan horse, persuading desktop users to adopt Flatpak. That too is driving improvements: for instance, while it uses [39]XDG portals to associate Flatpaks with file types, this is complicated by having two UIs, the Steam one and KDE. The result is additional [40]improvements in portal handling. It's good that people are [41]thinking about this stuff.

[42]

There is much too much work going on to fit into a 40 minute session, and García talks quite fast as it is. His 49-page [43]presentation [PDF] is dense and full of links. He skimmed over improvements to removable drive formatting, KDE's apps, icons, and drives handling, [44]SDL , the [45]Pipewire audio server , and more.

Valve is a highly atypical company; its uniquely flat [46]management structure is even the subject of [47]academic study . Igalia, too, is a flat, worker-owned [48]cooperative . Although [49]Valve's original plan for the Steam Box wasn't a big hit, the Steam Deck is proving far more popular, and is literally putting Linux in the hands of one of the most Windows-centric audiences: what's sometimes called the [50]AAA games marketplace. Although its firmly aimed at gamers, this is important work. Most of the commercial R&D effort in Linux goes into server-focused work, neglecting the desktop.

[51]

This vulture maintains that [52]ChromeOS is a Linux distro . They've been [53]selling strongly for a decade . When Linux laptops [54]outsold Macs in 2016, that meant that was the first Year of Linux on the desktop.

But although [55]it's getting there , ChromeOS is admittedly not a general-purpose distro. Even though it has a similarly narrow primary focus, Steam OS definitely can be, and Valve is working hard to ensure that all the improvements and refinements it makes are pushed back upstream, so that any distro on any hardware can make use of them – and the performance and functionality improvements from Steam OS helps all Linux users. ®

Get our [56]Tech Resources



[1] https://www.theregister.com/2021/07/16/steam_deck_portable_gaming_pc/

[2] https://www.theregister.com/2013/09/23/valve_gets_the_linux_feeling_with_steamos_for_gamers/

[3] https://store.steampowered.com/steamos/buildyourown

[4] https://www.igalia.com/team/berto

[5] https://osseu2023.sched.com/event/1Qv8y/how-steamos-is-contributing-to-the-linux-ecosystem-alberto-garcia-igalia

[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2ZRRRpiMJvmoYNn7ODZeL0QAAAA0&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[7] https://github.com/ValveSoftware/Proton

[8] https://www.winehq.org/

[9] https://github.com/doitsujin/dxvk

[10] https://www.vulkan.org/

[11] https://github.com/HansKristian-Work/vkd3d-proton

[12] https://gstreamer.freedesktop.org/

[13] https://www.protondb.com/

[14] https://www.theregister.com/2000/12/15/corel_linux_selloff_nearly/

[15] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZRRRpiMJvmoYNn7ODZeL0QAAAA0&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[16] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZRRRpiMJvmoYNn7ODZeL0QAAAA0&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[17] https://docs.kernel.org/userspace-api/futex2.html

[18] https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitformultipleobjects

[19] https://www.collabora.com/news-and-blog/blog/2023/02/17/the-futex-waitv-syscall-gaming-on-linux/

[20] https://lore.kernel.org/all/20190719000322.106163-3-drosen@google.com/

[21] https://lwn.net/Articles/784041/

[22] https://docs.kernel.org/filesystems/f2fs.html

[23] https://lwn.net/Articles/931789/

[24] https://lore.kernel.org/linux-btrfs/20230504170708.787361-1-gpiccoli@igalia.com/

[25] https://lwn.net/Articles/911219/

[26] https://www.theregister.com/2023/09/26/linux_kernel_report_2023/

[27] https://www.theregister.com/2023/09/20/gnu_turns_40/

[28] https://www.theregister.com/2023/09/14/pc_xt_with_hdmi/

[29] https://www.theregister.com/2023/08/24/no_wifi7_on_win10/

[30] https://videocardz.com/newz/amd-van-gogh-apu-for-steam-pictured-up-close

[31] https://finalfantasy.fandom.com/wiki/Aerith_Gainsborough

[32] https://docs.mesa3d.org/drivers/radv.html

[33] https://steamcommunity.com/games/221410/announcements/detail/1602634609636894200

[34] https://melissawen.github.io/blog/2023/08/21/amd-steamdeck-colors

[35] https://bootlin.com/pub/conferences/2017/kr/ripard-drm/ripard-drm.pdf

[36] https://www.theregister.com/2022/05/12/fedora_36_released/

[37] https://www.theregister.com/2023/01/12/endless_os_5/

[38] https://mastodon.blaede.family/@cassidy/111031129234702967

[39] https://wiki.archlinux.org/title/XDG_Desktop_Portal

[40] https://github.com/flatpak/xdg-desktop-portal/issues/906

[41] https://knowyourmeme.com/memes/thinking-with-portals

[42] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZRRRpiMJvmoYNn7ODZeL0QAAAA0&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[43] https://static.sched.com/hosted_files/osseu2023/83/steamos-and-linux-oss-eu-2023.pdf

[44] https://www.libsdl.org/

[45] https://www.theregister.com/2022/05/24/new_audio_server_pipewire_coming/

[46] https://blog.inf.ed.ac.uk/sapm/2014/03/14/management-at-valve-an-analysis-of-management-practices-at-valve-software/

[47] https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3884844

[48] https://www.igalia.com/about/values

[49] https://www.theregister.com/2012/12/10/valve_chief_confirms_steam_pc/

[50] https://www.arm.com/glossary/aaa-games

[51] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZRRRpiMJvmoYNn7ODZeL0QAAAA0&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[52] https://www.theregister.com/2023/07/18/linux_desktop_debate/

[53] https://www.theregister.com/2013/07/11/chromebooks_fastest_growing_pc_market/

[54] https://www.theguardian.com/technology/2016/may/23/chromebook-mac-google-pc-sales

[55] https://www.theregister.com/2021/04/22/chromeos_update/

[56] https://whitepapers.theregister.com/



"Solution: new Linux features to fill in the missing gaps"

Pascal Monett

Yes. Let's fill in all the gaps, then let's replace the rest.

I'm a firm believer in GROW, aka Get Rid Of Windows.

Re: "Solution: new Linux features to fill in the missing gaps"

Liam Proven

[Author here]

> Let's fill in all the gaps, then let's replace the rest.

Yes and no.

Noted cryptocurrency sceptic David Gerard enjoys ruffling Linux fanboys' feathers by referring to Win32 as the standard, stable ABI for desktop Linux. They hate it because he has a point.

He also had a personal side-project to improve Windows %CURRENT's compatibility with old versions _by running WINE on Windows_. Sadly for him, WSL makes that easy and removes the fun of the challenge.

But while I think it's a great and very useful thing that modern Linux can run modern Windows apps really rather well these days, and Codeweavers CrossOver means that you can do that on ChromeOS or macOS as well, without any VM and without any need for a Windows licence, I do not see this as a route to extirpating Windows.

Windows, under all the marketing BS, is a very good OS. It's just that the Microsoft saleslizards bury it in layers of their fœtid guano, more and more in each version.

It would be a bad thing if we all ran Chrome, and a bad thing if we had nothing but Unix. Unix is stale and lacks innovation, and it's a good thing that Windows provides strong competition and forces macOS and Linux to keep on doing new stuff to make them more robust and more stable.

Re: "Solution: new Linux features to fill in the missing gaps"

John Robson

"Windows, under all the marketing BS, is a very good OS."

Hmm - it would have to have improved a *long way* from when I last used it for that to be the case.

I'll be fair and point out that that's probably 15 years now - but I'll also point out that my daughter has a surface go for school (MS have almost always done good hardware) and the software is flakey when compared with the macs in the house (a bit unfair comparing it with the linux servers).

It's less flakey than I remember windows being, so there has been some improvement.

interesting Until....

AnAnonymousCanuck

Only installation method is Flatpack.

Next ....

AAC

Re: interesting Until....

Liam Proven

[Author here]

> Only installation method is Flatpack.

NB: "Flatpak". No C. Makes it much easier to Google.

> Next ....

If you care about packaging systems then this is not the distro for you.

This is a distro that is getting Windows gamers to try Linux. That's a _good thing_ IMHO.

Also, it's an appliance type distro that you can use as a general purpose computer. That's a good thing. It has something approaching ChromeOS' resilience to damage, but you can install your own FOSS apps, unlike ChromeOS, where all you get is the Android app store -- *if* you're on an approved official device. I am not: I only use ChromeOS Flex, so I don't even get Android apps.

This is a £420 handheld Linux games console, that you can also plug into a screen and keyboard and mouse and use as a full-fledged desktop computer, without rooting it or anything. That's pretty amazing IMHO. No, I don't really want one. I'm not a gamer. But if it were my only option, I would take it.

I think you are throwing the good out by obsessing over the bad here.

If you want the underlying tech, you can get it, or in time you will be able to, which is the point of the article.

But if you want to get your teenaged relative who is only interested in games to try Linux, this makes it easy. That is a big win. Allowing apps to be installed on an immutable distro is a good thing.

Kvetching about the packaging format of those apps? Not so much.

Re: interesting Until....

mostly average

Anything is better than snap.

Re: interesting Until....

Anonymous Coward

There are ways to enable writing to the initially read-only system partition, but as mentioned in the article, with two root partitions alternately performing offline updates on each other, your changes will be lost on a system update. There are other distros which aim to run on the Steam Deck (as well as some of the other new Deck clones) where you can install as much as you like. All of this is "unsupported" on the Steam Deck insofar as they can't help you with problems which arise specifically from messing with the system.

And all that extra work they contribute will help those other distros just as much.

Kvetching

Lis

@Liam

Kvetching? Sounds like some sort of sex thing. Up there with pegging and tribbing!

If it wasn't, it is now! Just signalled my partner and told him to hurry home. We need to vetch soonest. (Sod the "k").

Many thanks...

Re: Kvetching

Liam Proven

[Author here]

[Should I only bother putting this in top-level comments and omit it downthread? Answers on a postcard!]

> Kvetching

It's a fairly common word in American English and I rather like it. It came from Yiddish and I think it has a rather nice flavour to it that many Yiddish words do: plotz, klutz, mensch, and so on.

The OED and Cambridge say it's mainly US...

https://dictionary.cambridge.org/dictionary/english/kvetch

Webster doesn't but MRDA.

https://www.merriam-webster.com/dictionary/kvetch

But it's English now.

https://en.wiktionary.org/wiki/kvetch

Just vetch is something totally different. It's a flowering herb. Quite pretty.

https://en.wiktionary.org/wiki/vetch

Re: Kvetching

Doctor Syntax

Sodding the "k" sounds like some sort of sex thing.

If little else, the brain is an educational toy.
-- Tom Robbins