Proton
Proton — программный слой совместимости, разработанный компанией Valve Corporation на базе Wine, позволяющий запускать компьютерные игры, созданные для Microsoft Windows, в операционных системах семейства Linux. Proton интегрирован непосредственно в клиент Steam для Linux (функция «Steam Play») и обеспечивает автоматическую трансляцию системных вызовов Windows, графических API (DirectX) и сервисов Steamworks в среду Linux без потери производительности [citation:1][citation:2]. Релиз состоялся 21 августа 2018 года [citation:2][citation:6].
Благодаря Proton платформа Steam Deck (работающая на SteamOS — производной от Arch Linux) может запускать подавляющее большинство игр из каталога Steam, предназначенных для Windows [citation:6].
История
Proton был анонсирован и выпущен 21 августа 2018 года одновременно с обновлённой версией Steam Play для Linux. Первоначально компания Valve сертифицировала 27 игр, которые работали без каких-либо настроек, включая Doom (2016), Quake и S.T.A.L.K.E.R.: Тень Чернобыля [citation:2].
Разработка Proton велась с целью преодоления главного барьера для Linux-гейминга — отсутствия нативных версий популярных игр. В отличие от стандартной сборки Wine, требующей ручной настройки, Proton был задуман как полностью автоматизированное решение для конечного пользователя: достаточно нажать «Установить» в Steam [citation:1].
На 2026 год Proton является основным компонентом игровой экосистемы Linux. Его развитие тесно связано с ростом популярности Steam Deck, который использует Proton для запуска игр [citation:6].
Техническое описание
Proton представляет собой форк Wine с набором специализированных патчей и дополнительных библиотек [citation:2]. Основные возможности включают [citation:2][citation:7]:
- Полноценная поддержка Steamworks и OpenVR в среде Linux.
- Трансляция DirectX 9, 10, 11 в Vulkan с помощью DXVK.
- Трансляция DirectX 12 в Vulkan с помощью vkd3d-proton.
- Улучшенная поддержка полноэкранного режима и игровых контроллеров.
- Повышение производительности многопоточных игр за счёт патчей (esync/fsync).
- Поддержка систем защиты EasyAntiCheat и BattlEye через специальные рантаймы.
- Запуск игр в изолированных контейнерах Steam Linux Runtime для обеспечения стабильности.
Архитектура
Proton имеет многослойную архитектуру, управляемую скриптом-оркестратором на Python [citation:7].
Уровни совместимости
- Базовый уровень (Wine): модифицированная версия Wine, обеспечивающая выполнение PE-кода (Portable Executable) Windows и трансляцию системных вызовов (Win32 API → POSIX) [citation:7].
- Графический уровень: подсистемы DXVK и vkd3d-proton, транслирующие Direct3D в Vulkan [citation:1][citation:7].
- Мост Steam API (lsteamclient): генерируемый компонент, который перехватывает вызовы Windows-версии Steam API и перенаправляет их в нативный Linux-клиент Steam. Генерация кода происходит на основе заголовочных файлов SDK с помощью LibClang [citation:7].
- Мост OpenVR (vrclient_x64): аналогичный компонент для работы с устройствами виртуальной реальности [citation:7].
Управление префиксами
Каждая игра запускается в отдельном, изолированном Wine-префиксе (виртуальном диске C:\). За управление жизненным циклом префиксов отвечает класс `CompatData`. Структура каталога префикса включает:
- `drive_c/` — виртуальный диск C.
- `dosdevices/` — символьные ссылки на ресурсы (c:\, z:\, s:\ для библиотеки игр).
- Файлы версий (`version`) и блокировки (`pfx.lock`) для предотвращения конфликтов при обновлениях [citation:7].
При обновлении версии Proton скрипт анализирует старую версию префикса и применяет необходимые исправления (например, удаляет устаревшие библиотеки или чинит реестр для .NET Framework) [citation:7].
IPC-механизм
Для связи между Windows-кодом игры и Unix-окружением Linux используется механизм `__wine_unix_call()`. Для каждого метода Steam API генерируется структура параметров и функция-диспетчер, выполняющая маршалинг данных между 32-битным (Wow64) и 64-битным адресными пространствами [citation:7].
Компоненты
| Компонент | Назначение | Лицензия / Разработчик |
|---|---|---|
| Wine | Базовая прослойка для запуска Windows-приложений. | LGPL |
| DXVK | Трансляция DirectX 9/10/11 в Vulkan. | MIT / Филипп Ребиш |
| vkd3d-proton | Трансляция DirectX 12 в Vulkan (форк vkd3d от Wine с оптимизациями от Valve). | LGPL / Wine, Valve |
| lsteamclient | Мост для Steam API. | Проприетарная? / Valve |
| vrclient_x64 | Мост для OpenVR. | Проприетарная? / Valve |
| wineopenxr | Мост для OpenXR (виртуальная реальность). | XML-генератор / Valve |
ProtonDB
ProtonDB — неофициальный веб-сайт и база данных сообщества, агрегирующая отчёты пользователей о качестве работы игр под Proton. Сайт предоставляет информацию о совместимости на основе краудсорсинга и позволяет геймерам оценить, будет ли конкретная Windows-игра работать на Linux [citation:2].
Шкала оценок ProtonDB [citation:2]:
- Native — игра имеет нативную Linux-версию (либо официально поддерживается Proton).
- Platinum — работает идеально «из коробки».
- Gold — работает после незначительных настроек.
- Silver — работают, но есть мелкие проблемы, не влияющие на прохождение.
- Bronze — работают, но есть серьёзные ошибки или вылеты.
- Borked — не запускаются или непроходимы.
По состоянию на январь 2022 года 78% из 1000 самых популярных в Steam игр имели рейтинг Gold или выше [citation:2]. Существуют браузерные расширения (например, protONsteam), интегрирующие рейтинги ProtonDB непосредственно в страницы магазина Steam [citation:8].
Производные версии
Proton GE
Proton GE (Glorious Eggroll) — неофициальная сборка Proton, поддерживаемая энтузиастом под псевдонимом Glorious Eggroll. Эта версия включает экспериментальные патчи из последних версий Wine (часто ещё не включённые в официальный Proton), дополнительные мультимедийные кодеки (исправляющие воспроизведение видео в играх), патчи AMD FidelityFX Super Resolution (FSR) и систему protonfixes для автоматического применения специфических для игры настроек [citation:10].
В большинстве случаев рекомендуется использовать официальный Proton как более стабильный. Proton GE применяется, когда официальная версия не запускает игру или наблюдаются проблемы с видео [citation:10].
PortProton
В сообществе существуют также скрипты-обёртки, такие как PortProton, которые упрощают установку и настройку Proton (или его форков) для игр вне Steam. Они обеспечивают интеграцию игровых манипуляторов и дополнительные оптимизации [citation:5].
Производительность и восприятие
Proton значительно повысил привлекательность Linux как игровой платформы. Благодаря активной разработке Valve и вкладу сообщества, многие игры под Proton работают с производительностью, сопоставимой с нативной Windows, а иногда и превосходят её из-за меньших накладных расходов драйверов Vulkan [citation:6].
Основные проблемы Proton связаны с играми, использующими сложные системы защиты (Denuvo), а также некоторыми онлайн-играми с драйвер-уровневыми античитами. Хотя Valve создала специальные рантаймы для EasyAntiCheat и BattlEye, не все разработчики игр активируют поддержку Linux в настройках своих античитов [citation:6].
К 2026 году Proton достиг высокой степени зрелости, что подтверждается успехом Steam Deck, который использует его как основу для своей работы [citation:6].
Сравнение с альтернативами
| Продукт | Тип | Особенности |
|---|---|---|
| Proton | Слой совместимости (в Steam) | Глубокая интеграция с Steam, автоматическая настройка, поддержка Steamworks. |
| Wine | Слой совместимости (общий) | Ручная настройка, поддержка широкого спектра Windows-приложений (офис, софт), не оптимизирован для игр [citation:1]. |
| Bottles | Графический интерфейс для Wine | Управление изолированными окружениями (бутылками) с графическим интерфейсом, удобно для приложений вне Steam [citation:1]. |
| CrossOver | Коммерческая версия Wine | Готовая к использованию сборка Wine от CodeWeavers с техподдержкой [citation:1]. |
| Lutris | Менеджер игр | Позволяет управлять версиями Wine/Proton, эмуляторами и нативными играми в едином интерфейсе [citation:5]. |
Ссылки
- Официальный репозиторий на GitHub
- ProtonDB — база совместимости игр
- Репозиторий Proton GE
- Steam Store