[Ведьмак 2: Убийцы королей] Очередные проблемы Linux-версии

Ведьмак 2: Убийцы королей на Linux

Если вы следили за ситуацией вокруг «Ведьмак 2: Убийцы королей» для Linux, то наверняка знаете о многочисленных проблемах, которые преследуют её с момента выхода. «Ведьмак 2: Убийцы королей» для Linux оказалась Windows-версией игры, запущенной через подобную Wine оболочку, приводящую к существенному падению производительности, а на некоторых видеокартах производства AMD не запускалась вообще. На днях пользователи Linux с удивлением обнаружили, что игра отказывается работать в системах с ядром 3.17.7 или более новым.

Пользователи компьютерных игр столкнулись с невозможностью запуска игры Witcher 2 на системах с новыми ядрами Linux. В частности, наблюдается крах при запуске игры в окружении ядра 3.17.7 и более новых выпусков. После анализа ситуации разработчики выяснили, что причиной являются добавленные в недавних выпусках ядра дополнительные проверки параметров системного вызова "set_thread_area".

Линус Торвальдс присоединился к дискуссии и подтвердил свою приверженность принципу сохранения полной совместимости с приложениями, заключающемуся в том, что программные интерфейсы должны обеспечивать обратную совместимость, и никакие изменения в ядре не должны нарушать корректную работу пользовательских приложений. Чтобы не допустить подобные инциденты с играми в будущем, Линус посоветовал ответственным за тестирование ядра разработчикам включить игровые приложения в число проверяемых программ, а разработчикам проприетарных игр более активно сотрудничать с разработчиками ядра и сразу сообщать о всех возникших проблемах. В качестве решения проблемы с Witcher 2 Линус указал на необходимость смягчить добавленные в системный вызов ограничения "set_thread_area" или организовать жесткие проверки только для серверных систем.

Неоднозначность ситуации заключается в том, что добавление дополнительных проверок параметров системного вызова "set_thread_area" было осуществлено в рамках устранения выявленных в декабре критических уязвимостей (CVE-2014-9322, CVE-2014-9090) и данные проверки необходимы для предотвращения атак, которые могут привести к повышению привилегий в системе. При этом старое недокументированное поведение системного вызова использовалось в игре Witcher 2. Для поиска свободных слотов TLS в системный вызов "set_thread_area" передавалась полностью обнулённая структура и такой метод работал в Witcher 2, хотя формально требовалась установка флагов read_exec_only и seg_not_present. Поведение системного вызова при передаче нулевых данных не было явно определено в документации, но воспринималось некоторыми разработчиками приложений как выполнение вызова без выделения сегментов, при том, что фактически подобные вызовы без установленного флага seg_not_present приводили к созданию доступного на чтение и запись 16-битного сегмента с нулевыми границами. В новых выпусках ядра передача в "set_thread_area" структур, содержащих 16-разрядные сегменты TLS была запрещена, так как подобные манипуляции с LDT используются в эксплоите.

Таким образом возникла дилемма: сохранить совместимость, но оставить потенциальную уязвимость, или устранить вектор атаки, но нарушить совместимость программных интерфейсов. В случае с игрой Witcher удалось найти компромиссное обходное решение и подготовить патчи, воспринимающие передачу структуры user_desc со всеми нулевыми значениями как операцию поиска свободного слота, и не проводить в этом случае заполнение сегмента TLS.

Комментировать »

CC0
Вы можете копировать, изменять, распространять и исполнять данное произведение, даже в коммерческих целях, не спрашивая разрешения.

Поиск по сайту

Сообщения на форуме | новые

Анализ сюжета Neverwinter Nights 2: Mask of the Betrayer на форуме Обсуждение статей.
Последнее сообщение оставил Bellerogrim (2025-08-07 в 20:50). Ответов: 14.
Бордель услаждения интеллектуальных страстей — 2 на форуме Оффтопик — Разное.
Последнее сообщение оставил Bellerogrim (2025-08-07 в 20:22). Ответов: 1348.
Neverwinter Nights 2 на форуме Neverwinter Nights 2.
Последнее сообщение оставил katarn (2025-08-07 в 00:52). Ответов: 477.
Какие знаете RTS RPG? на форуме Общеролевые вопросы — Разное.
Последнее сообщение оставил QweSteR (2025-08-06 в 22:37). Ответов: 40.
Браузеры на форуме Hard-n-Soft.
Последнее сообщение оставил Хоттабыч (2025-08-06 в 09:46). Ответов: 678.
Надеюсь, эту боевую систему перестанут использовать в RPG на форуме Обсуждение статей.
Последнее сообщение оставил Архивариус (2025-08-06 в 01:09). Ответов: 139.
Интервью Винса Веллера с Кейси Хадсоном на форуме Mass Effect.
Последнее сообщение оставил Guardians (2025-08-05 в 13:35). Ответов: 2.
Neverwinter Nights 2: Mask of the Betrayer на форуме Neverwinter Nights 2.
Последнее сообщение оставил katarn (2025-08-05 в 12:56). Ответов: 66.
[В разработке] Stoneshard на форуме Всё остальное | Инди.
Последнее сообщение оставил S1pr7eKy3xPE7Oz (2025-08-05 в 12:44). Ответов: 113.
[В разработке] Quasimorph на форуме Тактические и стратегические.
Последнее сообщение оставил S1pr7eKy3xPE7Oz (2025-08-05 в 11:36). Ответов: 38.

Ожидаемое | таблица

Новости C.O.R.E.

Статьи C.O.R.E.

Новости RPG Codex

Новости RPG Watch

Новости RPG Nuke

Случайная цитата

Ahh… The beauty of the naked form. These Dunmer are rather prudish, are they not? Of course, there is an island you can reach filled with wonderful, naked, glistening bodies. It only appears when the moons are full, the rain falls, the seas run red, and it's M'aiq's birthday.

M'aiq the Liar, The Elder Scrolls III: Morrowind

Оставьте свой отзыв: QR-код для отзывов в «Яндексе».