Саммит открытого исходного кода Steam ОС — это дистрибутив на базе Arch для портативной игровой консоли Linux, и Valve активно продвигает удобство использования Linux и совместимость с Windows для этого устройства.
Две необычные компании, Valve Software и Igalia, работают вместе над улучшением операционной системы на базе Linux. Steam Deck портативная игровая консоль. Устройство работает под управлением дистрибутива Linux под названием Steam OS 3.0, но это совершенно другой дистрибутив, чем оригинал. Steam ОС она анонсировала десять лет назад. Steam ОС 1 и 2 были основаны на Debian, но Steam OS 3 основана на Arch Linux, как описал разработчик Igalia Альберто Гарсиа в докладе под названием Как SteamOS вносит вклад в экосистему Linux.
Он объяснил, что, хотя Steam ОС построена из некоторых довольно стандартных компонентов — обычной иерархии файловой системы, пользовательского пространства GNU, systemd
и dbus
– Steam ОС имеет немало уникальных особенностей. Он имеет два различных пользовательских интерфейса: по умолчанию он начинается с Steam средство запуска игр, но пользователи также могут выбрать опцию под названием Переключиться на рабочий столв результате чего получается обычный рабочий стол KDE Plasma с возможностью установки чего угодно: веб-браузера, обычных инструментов Linux и не-Steam игры.
Очевидно, однако, Steam ОС смысл это бежать Steam игры, и большинство из них — игры для Windows, которые никогда не получат собственные версии для Linux. Решение Valve — Proton, инструмент с открытым исходным кодом для запуска игр для Windows в Linux. Он сформирован из набора различных пакетов FOSS, в частности:
-
WINE, уровень совместимости для API Windows.
-
DXVK, который преобразует вызовы DirectX версий 9–11 в вызовы Vulkan.
-
VKD3D-Proton, который транслирует вызовы DirectX 12 в Vulkan.
-
А также мультимедийная платформа с открытым исходным кодом GStreamer и другие библиотеки.
Результатом является поразительная степень совместимости для некоторых наиболее требовательных приложений Windows — база данных совместимости Proton, ProtonDB, предлагает следующие впечатляющие статистические данные:
Deck Проверенные игры
▸ проверено: 3,886
▸ проверено или играбельно: 11 503
Игры на ProtonDB
▸ рекомендовано тремя и более: 8,106
▸ рекомендовано двумя и более: 11 275
▸ рекомендовал хотя бы один: 18 760
Proton был выпущен Valve в 2018 году и до сих пор находится в очень активной разработке. Сейчас компания также активно участвует в разработке WINE, работая вместе с Codeweavers, чьи усилия Рег впервые сообщалось в 2000 году.
Везде, где это возможно, WINE преобразует вызовы API Windows в вызовы Linux, но иногда соответствующий API Linux отсутствует. Если нет, сказал Гарсия, «Wine необходимо реализовать недостающие части. Это может привести к накладным расходам, и это не всегда легко решить в пользовательском пространстве. Решение: новые функции Linux для заполнения недостающих пробелов».
Одним из недавних примеров является новый futex_waitv()
вызов ядра 5.16, которое добавляет в Linux новый API, похожий на Win32. WaitForMultipleObjects()
позвоните, как подробно объясняется в этом сообщении в блоге Collabora. Еще один патч приносит необязательный нечувствительность к регистру в F2FS, файловой системе, совместимой с Flash. Другой пример: Valve и ее партнеры также работают над более надежными спин-блокировками в пользовательском пространстве.
Важный способ, который Steam ОС отличается от родительского дистрибутива Arch тем, что, как и Chrome OS, она использует двойные корневые разделы с аварийным переключением: активный экземпляр ОС обновляет другой экземпляр, чтобы в случае сбоя обновления по какой-либо причине он мог автоматически вернуться к исходному, неизмененному экземпляру. Загвоздка в том, что Steam OS 3 использует Btrfs: Btrfs идентифицирует файловые системы по их UUID и Действительно ему не нравится, если он находит два раздела с одинаковым UUID. Инженер Igalia Гильерме Пикколи написал патч, позволяющий Btrfs справиться с этой проблемой, а также еще один, чтобы улучшить производительность обработки детектора разделенной блокировки.
Отчасти это иллюстрирует общую направленность проводимой разработки: взять уже работающие функции и заставить их работать намного быстрее, чтобы улучшить производительность игр на относительно скромном устройстве. Steam Deck основан на процессоре «Ван Гог» на базе AMD Zen2 под кодовым названием Аэрис после персонажа из Последняя фантазия 7. При этом используется собственный драйвер графического процессора AMD под названием RADV, а также специальный компилятор шейдеров ACO. Инженер Igalia Мелисса Вен работает с Valve и AMD над улучшением Linux Direct Rendering Manager. [PDF] и его обработка дисплеев с высоким динамическим диапазоном (HDR).
Steam ОС также является неизменяемым дистрибутивом, как Fedora Silverblue и Endless OS. Таким образом, оба его корневых раздела обычно доступны только для чтения, а приложения можно устанавливать только через Flatpak. Как отмечает бывший разработчик Elementary OS Кэссиди Блейд, сейчас работающий в Endless, таким образом, очень ориентированная на конечного пользователя Steam Deck действует как троянский конь, убеждая пользователей настольных компьютеров использовать Flatpak. Это тоже способствует улучшениям: например, хотя он использует порталы XDG для связи Flatpaks с типами файлов, это усложняется наличием двух пользовательских интерфейсов: Steam один и KDE. Результатом являются дополнительные улучшения в работе с порталом. Хорошо, что люди думают об этом.
Работы слишком много, чтобы уместиться в 40-минутное занятие, а Гарсия и так говорит довольно быстро. Его 49-страничная презентация [PDF] плотный и полный ссылок. Он пробежался по улучшениям в форматировании съемных дисков, приложениях KDE, значках и работе с дисками, SDL, аудиосервере Pipewire и многом другом.
Valve — весьма нетипичная компания; ее уникальная плоская структура управления даже является предметом академических исследований. «Игалия» также представляет собой кооператив с квартирами, принадлежащий работникам. Хотя первоначальный план Valve относительно Steam Коробка не имела большого успеха, Steam Deck оказывается гораздо более популярным и буквально передает Linux в руки одной из наиболее ориентированных на Windows аудиторий: того, что иногда называют рынком ААА-игр. Несмотря на то, что она ориентирована на геймеров, это важная работа. Большая часть коммерческих исследований и разработок Linux направлена на серверную работу, игнорируя настольные системы.
Этот стервятник утверждает, что ChromeOS — это дистрибутив Linux. Они хорошо продаются уже десять лет. Когда в 2016 году продажи ноутбуков с Linux превзошли продажи компьютеров Mac, это означало, что это был первый год Linux на настольных компьютерах.
Но хотя ChromeOS и приближается к этому, по общему признанию, он не является дистрибутивом общего назначения. Несмотря на то, что у него столь же узкая основная направленность, Steam OS определенно может быть такой, и Valve усердно работает над тем, чтобы все вносимые ею улучшения и доработки переносились обратно в исходную версию, чтобы любой дистрибутив на любом оборудовании мог использовать их, а также улучшения производительности и функциональности от Steam ОС помогает всем пользователям Linux. ®