17 мая 2017

Microsoft "достойно отметил" 10 лет борьбы со свободной 3D графикой на Windows


Компания Microsoft считает стандартные графические драйвера Vulkan вирусом и удаляет их с ОС Windows, уничтожая таким образом возможность запуска новых графических приложений и игр, не из магазина приложений Microsoft.

Открытая война Microsoft против развития общих стандартов 3D графики с целью защиты своей ОС Windows от приложений конкурентов вышла на новый уровень. Если ранее, Microsoft просто всячески препятствовал принятию и распространению свободных продвинутых графических стандартов, то теперь просто удаляет неугодные графические библиотеки со своей дырявой операционной системы (https://goo.gl/pknk8W).

При этом, Microsoft ещё и цинично пытается использовать свой эпический провал в области безопасности, который позволил распространиться вирусу-вымогателю на ОС Windows по всему миру, как пугало, для обоснования удаления файлов на компьютерах, не слишком продвинутых пользователей.

Краткая предистория вопроса

После того, как Microsoft всеми правдами и неправдами фактически выдавил с рынка Linux в начале 2000-х годов, сторонние разработчики графических приложений практически прекратили писать под открытый стандарт OpenGL и сосредоточились на поддержке DirectX, сделав платформу Windows практически обязательной для самых требовательных игр.

Тем не менее, в 2007 году компании Mozilla и Opera предложили на рассмотрение реализацию нового графического стандарта WebGL, который позволяет создавать графические приложения для любой платформы, без изменения кода прямо в браузере.

Однако, поскольку Microsoft также успешно саботировал деятельность групп W3C, занимавшихся новыми Web стандартами, он в 2007 году буквально смог задавить своим весом Mozilla и  Opera, в результате чего работа над сертификацией предложенного графического стандарта была отложена на неопределённое время и фактически похоронена.

В 2008 году на рынок браузеров вышла компания Google, со своим революционным браузером Google Chrome, который изначально был расчитан на новейшие стандарты, которые ещё не были приняты W3C.

В итоге, Google, Mozilla, Opera и множество других заинтересованных лидеров ИТ индустрии, за исключением Apple и Microsoft, организовали новую организацию по стандартизации Khronos Group, которой делегировали полномочия по разработке и принятию общих стандартов 3D графики, как для десктопных приложений, так и для Web.

В результате, Khronos Group смогла разработать и принять стандарт WebGL 1.0, чем заслужила признание со стороны W3C и ярую критику со стороны Microsoft, который объявил стандарт WebGL 1.0 "небезопасным" и даже начал продвигать эти ложные страхи публично в подконтрольных СМИ и на технических семинарах.

Важно отметить, что "теоретической уязвимостью" стандарта WebGL 1.0 с момента его первой реализации в 2007 году (то есть за все 10 лет) так никто и не воспользовался, по причине практической нецелесообразности (проникнуть на компьютер с помощью WebGL нельзя, а читать данные из буфера GPU и распознавать текст по точкам на лету гораздо сложнее, чем просто прочитать готовые файлы, через одну из множества дыр в ОС Windows).

Важно отметить, что стандарт WebGL 1.0 предназначен только для Web приложений, поэтому по просьбам разработчиков мобильных и десктопных приложений, было решено разработать новый стандарт WebGL 2.0, который бы представлял собой стек графических протоколов, позволяющий реализовать любую 3D графику, как в браузере, так и в обычном приложении для десктопа или смартфона, независимо от операционной системы.


В результате, была разработана и принята группа стандартов, включая стандарт WebGL 2.0 (на рис. выше в центре), которая аналогично сетевой модели OSI, имеет вертикальный стек протоколов, из нескольких уровней:
1) Vulkan 1.0 - представляет собой универсальную абстракцию драйвера GPU, а также графический интерфейс для мобильных и десктопных приложений
2) SPIR-V 1.2 - универсальная шина обмена, позволяющая на лету распределять нагрузку на бесконечное количество GPU, даже за пределами самого устройства
3) WebGL 2.0 - графический интерфейс для Web приложений
4) WebVR 1.0 - универсальный интерфейс для средств виртуальной реальности, начиная от очков и перчаток и далее, вплоть до авиационных, автомобильных и пеших тренажёров.

Важно отметить, что протоколы WebGL 2.0 и WebVR 1.0 встроены непосредственно в браузер и не требуют отдельной установки, в то время, как SPIR-V 1.2 и Vulkan 1.0, устанавливаются отдельно, т.к. предназначены для использования не только браузером, но и системами виртуализации, искуственного интеллекта и т.п. и, соответственно, могут быть запущены на сервере в облаке, вообще без локального графического интерфейса пользователя.

В дальнейшем, предполагается, что протокол SPIR-V 1.2 будет штатно встроен во все ОС, что позволит им на лету перекладывать графическую нагрузку друг на друга, экономя заряд батарей мобильных устройств и используя мощные графические чипы десктопов или серверов по близости, но пока это случилось только на Chrome OS.

Поскольку каждая реализация протокола Vulkan 1.0 привязана к конкретному графическому адаптеру, то она устанавливается в общем цикле обновления, при установке конкретного адаптера GPU.

В связи с вышеизложенным, компания Google решила подстраховаться и реализовала в своём браузере Google Chrome под Linux, macOS и Windows, обходные варианты, на случай, если библиотеки протоколов SPIR-V 1.2 и/или Vulkan 1.0 пока не установлены. Таким образом, при отсутствии данных библиотек, Google Chrome переключается на DirectX на ОС Windows и на OpenGL на Linux и macOS.

Вернёмся к сути очередной проблемы, которую создал Microsoft

С начала 2017 года вышло уже немало новых приложений для виртуальной реальности в стандарте WebVR, а также десктопных игр на Vulkan 1.0. Но самое главное в том, что во всех играх, которые имеют две реализации (под DirectX и Vulkan) производительность под Vulkan настолько заметно выше, что лелеемая Microsoft много лет проприетарныя библиотека DirectX, выглядит полностью морально устаревшей и в принципе никому не нужной.

Конечно, Microsoft сделает всё, чтобы заставить людей пользоваться его проприетарной платформой, даже если она дырявая и медленная. Microsoft даже пошёл на то, чтобы вообще запретить установку и запуск сторонних приложений на новой ОС Microsoft Windows 10 S. В том числе, фактически запретил использование на Windows 10 S браузера Google Chrome (т.к. его нельзя установить по умолчанию), поисковика Google Search (т.к. его нельзя установить по умолчанию в браузере Edge), а также запретил использование всех новых игр не из магазина Windows Store, так как драйвера Vulkan 1.0 туда также установить невозможно.

Однако, большинство любителей Windows пока не перешло на Windows 10 S, поэтому "закручивание гаек" на ней не решает для Microsoft в целом проблему оттока пользователей в другие магазины приложений , например в Steam, который уже анонсировал, что Vulkan 1.0 станет его основной платформой для игр.

В общем, меня лично ни сколько не удивило, что несколько дней назад, встроенный антивирус Microsoft на ОС Windows начал удалять библиотеки Vulkan 1.0 под тем предлогом, что в них якобы "обнаружен вирус". В результате все новые игры из магазина Steam перестали работать на Windows 7/8/10, а Web приложения виртуализации и 3D графики хоть и не перестали работать совсем, но могут частично где-то глючить, ведь DirectX никак не полная замена Vulkan, особенно по производительности.

Что делать?

Если вы пользователь Windows 7/8/10, то как минимум не переходить на Windows 10 S. Хотя антивирус на Windows - это скорее симпоматическое средство, т.к. оно принципиально не может защитить от быстро распростряняющихся сетевых атак через новые уязвимости, но иногда, он бывает полезен, поэтому просто настройте его расписание, чтобы он запускал проверки только, когда вам не нужны игры. Удалённые библиотеки Vulkan, необходимые для работы современных игр, можно установить вручную с сайта производителей графических карт.

Если  не хотите на своей шкуре выяснить, как ещё Microsoft собирается "защищать" вас от свободного ПО, то можете перейти на Chrome OS или Linux и тем самым решить проблему раз и навсегда.
Отправить комментарий