Todo o trabalho da Valve no Steam OS 3 para o Steam Deck tem trazido muita coisa boa para usuários sejam corporativos ou comuns de sistemas operacionais Linux. É que a interoperabilidade do Linux está amadurecendo rapidamente graças ao console de jogos. O Steam OS é a distribuição baseada em Arch para um console portátil de jogos Linux, e a Valve está promovendo agressivamente a usabilidade do Linux e a interoperabilidade do Windows para o dispositivo.
Duas empresas incomuns, Valve Software e Igalia, estão trabalhando juntas para melhorar o sistema operacional baseado em Linux do console de jogos portátil Steam Deck. O dispositivo roda uma distribuição Linux chamada Steam OS 3.0, mas esta é uma distro totalmente diferente do Steam OS original anunciado há uma década. O Steam OS 1 e 2 foram baseados no Debian, mas o Steam OS 3 é baseado no Arch Linux, como o desenvolvedor da Igalia, Alberto García, descreveu em uma palestra intitulada Como o SteamOS está contribuindo para o ecossistema Linux.
Ele explicou que embora o Steam OS seja construído a partir de alguns componentes bastante padrão – a hierarquia normal do sistema de arquivos, o espaço do usuário GNU systemd e dbus– o Steam OS tem alguns recursos exclusivos. Possui duas interfaces de usuário distintas: por padrão, ele começa com o inicializador de jogos Steam, mas os usuários também podem escolher uma opção chamada Switch to Desktop , que resulta em um desktop KDE Plasma normal, com a capacidade de instalar qualquer coisa: um navegador da web, ferramentas normais do Linux e jogos não Steam.
Interoperabilidade do Linux está amadurecendo rapidamente graças a um console de jogos
Obviamente, porém, a razão de ser do Steam OS é rodar jogos Steam, e a maioria deles são jogos para Windows que nunca terão versões nativas do Linux. A solução da Valve é o Proton, uma ferramenta de código aberto para rodar jogos do Windows no Linux. É formado a partir de uma coleção de diferentes pacotes FOSS, nomeadamente:
- Wine, a camada de compatibilidade para APIs do Windows.
- DXVK, que traduz chamadas DirectX versão 9 a 11 em chamadas Vulkan.
- VKD3D-Proton, que traduz chamadas DirectX 12 para Vulkan.
- E também a estrutura multimídia de código aberto GStreamer e outras bibliotecas.
O resultado é um notável grau de compatibilidade para alguns dos aplicativos Windows mais exigentes do mercado – o banco de dados de compatibilidade do Proton, ProtonDB, oferece estas estatísticas impressionantes:
Jogos verificados no deck
? verificado: 3.886
? verificado ou jogável: 11.503
Jogos no ProtonDB
? recomendado por três ou mais: 8.106
? recomendado por dois ou mais: 11.275
? recomendado por pelo menos um: 18.760
Proton foi lançado pela Valve em 2018 e ainda está em desenvolvimento muito ativo. Agora também está ativamente envolvido no desenvolvimento do Wine, trabalhando ao lado da Codeweavers.
Sempre que possível, o Wine converte chamadas de API do Windows em chamadas de Linux, mas às vezes não há API Linux correspondente. Se não houver, disse García, “o Wine precisa implementar as partes que faltam. Isso pode resultar em sobrecarga e nem sempre é facilmente solucionável no espaço do usuário. Solução: novos recursos do Linux para preencher as lacunas que faltam”.
Um exemplo recente é a nova futex_waitv()chamada no kernel 5.16, que traz uma nova API para Linux que é como a WaitForMultipleObjects()chamada do Win32, como esta postagem no blog do Collabora explica em detalhes. Outro patch traz insensibilidade opcional a maiúsculas e minúsculas para o F2FS, o sistema de arquivos compatível com Flash. Como outro exemplo, a Valve e seus parceiros também estão trabalhando em spinlocks de espaço de usuário mais confiáveis.
Uma maneira significativa pela qual o Steam OS difere de sua distribuição pai Arch é que, como o Chrome OS, ele usa partições raiz duplas com failover: a instância ativa do sistema operacional atualiza a outra instância, de modo que, se a atualização falhar por algum motivo, ela pode failover automático de volta para a instância original e não modificada. O problema é que o Steam OS 3 usa Btrfs: o Btrfs identifica os sistemas de arquivos por seu UUID e realmente não gosta se encontrar duas partições com o mesmo UUID. O engenheiro da Igalia, Guilherme Piccoli, escreveu um patch para tornar o Btrfs capaz de lidar com isso, bem como outro para melhorar o desempenho do manuseio do detector de bloqueio dividido.
Recursos funcionam melhor
Parte disso ilustra o impulso geral do desenvolvimento que está sendo feito: pegar recursos que já funcionam e fazê-los funcionar muito mais rápido para melhorar o desempenho dos jogos em um dispositivo especificado de forma relativamente modesta. O Steam Deck é baseado em um SoC “Van Gogh” baseado em AMD Zen2 , codinome Aerith em homenagem a um personagem de Final Fantasy 7 . Isso usa um driver de GPU AMD personalizado chamado RADV, bem como um compilador de shader personalizado, ACO. A engenheira da Igalia, Melissa Wen, está trabalhando com a Valve e a AMD para melhorar o Linux Direct Rendering Manager [PDF] e seu manuseio de telas de alta faixa dinâmica (HDR).
Steam OS também é uma distro imutável, como Fedora Silverblue e Endless OS . Portanto, ambas as partições raiz são normalmente somente leitura e os aplicativos só podem ser instalados via Flatpak. Como aponta Cassidy Blaede, ex-desenvolvedor do Elementary OS, agora com Endless, desta forma, o Steam Deck focado no usuário final está agindo como um cavalo de Tróia, persuadindo os usuários de desktop a adotarem o Flatpak . Isso também está gerando melhorias: por exemplo, embora use portais XDG para associar Flatpaks a tipos de arquivo, isso é complicado por ter duas UIs, a Steam e a KDE. O resultado são melhorias adicionais no manuseio do portal. É bom que as pessoas estejam pensando nessas coisas.
Há muito trabalho sendo feito para caber em uma sessão de 40 minutos, e García fala bastante rápido. Sua apresentação de 49 páginas [PDF] é densa e cheia de links. Ele examinou melhorias na formatação de unidades removíveis, aplicativos, ícones e manuseio de unidades do KDE, SDL , o servidor de áudio Pipewire e muito mais.
A Valve
A Valve é uma empresa altamente atípica; a sua estrutura de gestão excepcionalmente plana é até objecto de estudo acadêmico. Igalia também é uma cooperativa plana de propriedade dos trabalhadores . Embora o plano original da Valve para o Steam Box não tenha sido um grande sucesso, o Steam Deck está se mostrando muito mais popular e está literalmente colocando o Linux nas mãos de um dos públicos mais centrados no Windows: o que às vezes é chamado de mercado de jogos AAA . Embora seja firmemente direcionado aos jogadores, este é um trabalho importante. A maior parte do esforço comercial de P&D em Linux vai para o trabalho focado no servidor, negligenciando o desktop.
Este abutre afirma que o ChromeOS é uma distribuição Linux. Eles vendem fortemente há uma década. Quando os laptops Linux superaram as vendas dos Macs em 2016, isso significou que esse foi o primeiro ano do Linux no desktop.
Mas embora esteja chegando lá , o ChromeOS não é uma distro de uso geral. Mesmo que tenha um foco primário igualmente estreito, o Steam OS definitivamente pode ter, e a Valve está trabalhando duro para garantir que todas as melhorias e refinamentos que ela faz sejam empurrados de volta para o upstream, para que qualquer distro em qualquer hardware possa fazer uso deles – e as melhorias de desempenho e funcionalidade do Steam OS ajudam todos os usuários Linux.