Wine, уровень совместимости Windows, достигает версии 5.0 на Android

click fraud protection

Wine — это уровень совместимости Windows, позволяющий пользователям запускать приложения Windows на других ОС. Wine для Android теперь доступен до версии 5.0 — проверьте это!

Экосистема приложений Android неуклонно развивалась на протяжении многих лет существования Android, чему способствовало постоянное внедрение мобильных устройств в качестве основного средства взаимодействия с компьютером для большинства людей. Многие пользователи тяготели к образу жизни, основанному только на мобильных устройствах, и это связано с тем, что приложения и экосистема мобильных приложений смогли удовлетворить их конкретные потребности. Но если вам когда-нибудь понадобится настольное приложение, но у вас нет доступа к рабочему столу, что бы вы сделали? Именно здесь появляется Wine — уровень совместимости Windows, который позволяет пользователям запускать полнофункциональные приложения Windows на разных ОС. Wine для Android имеет теперь достиг версии 5.0, суммируя усилия команды по разработке за год.

Wine — это бесплатный уровень совместимости с открытым исходным кодом для Windows, цель которого — позволить компьютерным программам, разработанным для Windows, работать в других операционных системах.

Wine для Android переносит Wine на Android, очевидно. Wine не является эмулятором (что на самом деле является рекурсивным обратным названием названия), поэтому его можно запускать только версии приложений для конкретной архитектуры — ARM-версия Wine для Android будет запускать только ARM-приложения, и не х86.

Основные моменты стабильной версии Wine 5.0 включают поддержку нескольких мониторов и поддержку Vulkan 1.1. Полный список изменений для обновления приведен ниже:

Список изменений в Wine 5.0:

  • PE-модули:
    • Большинство модулей создаются в формате PE (Portable Executable, двоичный формат Windows) вместо ELF, когда доступен компилятор MinGW. В этом помогают различные схемы защиты от копирования, которые проверяют идентичность содержимого системных модулей на диске и в памяти.
    • Фактические двоичные файлы PE копируются в префикс Wine вместо поддельных файлов DLL. Это делает префикс более похожим на настоящую установку Windows за счет некоторого дополнительного дискового пространства.
    • Модули, преобразованные в PE, могут использовать стандартные функции C с широкими символами, а также константы с широкими символами, такие как L"abc". Это облегчает чтение кода.
    • Еще не все модули переведены в PE; это непрерывный процесс, который будет продолжаться во время разработки Wine 5.x.
    • Среда выполнения Wine C обновлена ​​для поддержки связывания с двоичными файлами, скомпилированными с помощью MinGW; он используется по умолчанию вместо среды выполнения MinGW при создании DLL.
  • Графика:
    • Поддержка нескольких видеоадаптеров и мониторов, включая динамические изменения конфигурации.
    • Драйвер Vulkan поддерживает версию спецификации Vulkan до 1.1.126.
    • Библиотека WindowsCodecs способна конвертировать больше форматов растровых изображений, включая форматы с индексацией палитры.
  • Директ3Д:
    • Полноэкранные приложения Direct3D блокируют заставку.
    • Цепочка обмена DXGI информирует приложение, когда соответствующее окно свернуто. Обычно это позволяет приложениям снизить загрузку ЦП при минимизации, а в некоторых случаях требуется для повторного восстановления окна приложения.
    • Для приложений DXGI реализовано переключение между полноэкранным и оконным режимами с помощью стандартной комбинации Alt+Enter.
    • Для приложений Direct3D 12 реализованы следующие возможности:
      • Переключение между полноэкранным и оконным режимами.
      • Изменение режимов отображения.
      • Масштабные подарки.
      • Интервалы обмена. Эти функции ранее уже были реализованы в более ранних версиях API Direct3D.
    • Улучшена обработка различных крайних случаев. Среди прочего:
      • За пределами допустимых значений для альфа-тестов и тестов по трафарету.
      • Выборка 2D-ресурсов с помощью 3D-сэмплеров и наоборот.
      • Рисование с использованием сопоставленных текстур и буферов.
      • Использование недопустимых объектов клиппера DirectDraw.
      • Создание устройств Direct3D в недействительной Windows, например в окне рабочего стола.
      • Окна просмотра с минимальным Z, большим или равным максимальному Z.
      • Ресурсы, связанные как через представления ресурсов шейдера, так и через представления целей рендеринга или трафаретов глубины одновременно.
      • Блиц между форматами с альфа-компонентами и без них. Поскольку приложения с хорошим поведением не полагаются на эти крайние случаи, они обычно затрагивают только одно или два приложения каждое. Тем не менее их довольно много.
    • Области «грязных» текстур отслеживаются более точно при загрузке текстур Direct3D 8 и 9.
    • Загрузка 3D-текстур, сжатых с помощью S3TC, требует меньше адресного пространства. Поскольку 3D-текстуры могут быть потенциально большими, а исчерпание адресного пространства является проблемой для 32-битных приложений, 3D-текстуры, сжатые с помощью S3TC, загружаются по частям, а не за одну загрузку.
    • Реализован интерфейс ID3D11Multithread.
    • Внесены различные исправления и улучшения в расчет освещения для старых приложений DirectDraw.
    • Реализована ограниченная поддержка блитов в цепочках обмена.
    • Реализовано больше API отражения шейдеров.
    • Блиттер процессора wined3d может обрабатывать сжатые исходные ресурсы. Поддержка сжатых целевых ресурсов уже была реализована в предыдущей версии.
    • База данных видеокарт Direct3D распознает больше видеокарт.
    • Новые ключи реестра HKEY_CURRENT_USER\Software\Wine\Direct3D:
      • «shader_backend» (REG_SZ) Используемый шейдер. Возможные значения: «glsl» (по умолчанию) для GLSL, «arb» для программ вершин/фрагментов ARB и «none» для отключения поддержки шейдеров.
      • «strict_shader_math» (REG_DWORD) Включить (0x1) или отключить (0x0, по умолчанию) более строгую трансляцию шейдеров Direct3D, возможно, за счет снижения производительности. В настоящее время это имеет значение только для стандартного шейдерного механизма GLSL в сочетании с проприетарными драйверами NVIDIA.
    • Устаревший ключ реестра HKEY_CURRENT_USER\Software\Wine\Direct3D:
      • «UseGLSL» заменен настройкой «shader_backend», указанной выше.
  • D3DX:
    • Реализована поддержка сжатия текстур с помощью S3TC-сжатия.
    • Различные операции, например, Заливки текстур на неотображаемых поверхностях реализованы более корректно. Ранее их реализация основывалась на базовой реализации Direct3D, не применяя ограничений сопоставления.
    • В структуру эффектов были внесены различные улучшения и исправления.
  • Ядро:
    • Большинство функций, которые раньше были в Kernel32, перенесены в KernelBase, чтобы следовать архитектуре последних версий Windows.
    • Библиотеки с неправильной 32/64-битностью игнорируются при обнаружении в пути поиска, чтобы обеспечить возможность загрузки правильной, если она будет найдена дальше по пути.
    • Объекты ядра лучше эмулируются для драйверов устройств, которые ожидают манипулирования объектами со стороны ядра.
    • Реализованы объекты синхронизации на уровне ядра, такие как спин-блокировки, быстрые мьютексы, снятие блокировок и переменные ресурсов.
    • Состояние батареи системы правильно сообщается приложениям.
  • Пользовательский интерфейс:
    • Свернутые окна отображаются с использованием строки заголовка вместо старых значков в стиле Windows 3.1.
    • Реализованы новые стили кнопок: «Разделить кнопки» и «Ссылки на команды».
    • Элемент управления Edit также правильно устанавливает поля для шрифтов CJK.
  • Интеграция с рабочим столом:
    • Для папок «Загрузки» и «Шаблоны» создаются символические ссылки на соответствующие каталоги Unix.
  • Устройства ввода:
    • Драйверы устройств Plug & Play могут быть установлены и загружены при запуске.
    • Игровые контроллеры поддерживаются лучше, включая правильную поддержку переключателя, руля, управления газом и тормозом.
    • Старый API джойстика версий Linux ниже 2.2 больше не поддерживается.
  • .СЕТЬ:
    • Движок Mono обновлен до версии 4.9.4, включая части платформы Windows Presentation Foundation (WPF).
    • Дополнения Gecko и Mono поддерживают общую установку, при которой файлы используются непосредственно из глобальной папки /usr/share/wine, а не копируются в каждый новый префикс.
  • Интернет и сети:
    • Движок Gecko обновлен для поддержки последних цепочек инструментов.
    • Реализован ряд новых HTML API.
    • MSHTML поддерживает некоторые элементы SVG.
    • Объект ошибки и распространение исключений поддерживаются в VBScript.
    • Реализован ряд встроенных функций VBScript.
    • JScript Режим совместимости с EcmaScript расширен для поддержки большего количества функций.
    • Объекты сценариев JScript и VBScript предоставляют интерфейсы информации о типе.
    • Конфигурацию HTTP-прокси можно получить через DHCP.
    • Поддерживаются перенаправления HTTP паспорта.
    • Служба HTTP и соответствующая клиентская библиотека (HTTPAPI) реализованы частично.
  • Криптография:
    • Ключи ECC (эллиптическая кривая) поддерживаются при использовании GnuTLS.
    • Реализован импорт ключей и сертификатов из BLOB-объектов PFX.
    • Поддерживается алгоритм создания ключей PBKDF2.
  • Текст и шрифты:
    • Функции позиционирования OpenType поддерживаются в DirectWrite и по умолчанию включены для латинского алфавита, включая кернинг.
    • Доступ к данным шрифтов становится безопаснее за счет проверки различных таблиц данных перед их использованием.
    • Интерфейсы DirectWrite обновлены до последней версии SDK, в которой реализованы некоторые из последних дополнений API.
  • Аудио видео:
    • Библиотеки XAudio2 переопределены для использования внешней библиотеки FAudio для лучшей совместимости.
    • Библиотеки Media Foundation конкретизированы, в том числе:
      • Поддержка встроенных и пользовательских асинхронных рабочих очередей.
      • Возможность отправлять периодические обратные вызовы, ожидающие, запланированные и регулярные рабочие элементы с поддержкой приоритета элемента.
      • Поддержка очередей медиа-событий.
      • Различные базовые API для обработки объектов типа мультимедиа, дескрипторов потоков и представлений, атрибутов объектов, объектов байтовых потоков, образцов и буферов.
      • Первоначальная реализация Source Resolver.
      • Первоначальная реализация API Source Reader.
      • Реализация объекта Sample Grabber.
      • Основная поддержка построения объектов топологии.
      • Встроенная реализация часов презентации, начата реализация функциональности медиа-сеанса.
    • Фильтр захвата видео был перенесен для использования версии 4l2 вместо устаревшего API версии 4l1, что позволяет использовать некоторые камеры, которые не поддерживают версию 4l1.
    • Поддержка преобразования YUV в RGB и чтения с устройств v4l2 с помощью mmap() была удалена; теперь мы зависим от libv4l2 в обоих этих случаях.
    • Встроенные декодеры AVI, MPEG-I и WAVE были удалены; теперь мы зависим от GStreamer или Mac QuickTime Toolkit для декодирования таких медиафайлов.
    • Реализовано еще несколько API конфигурации VMR7.
    • Звуковые драйверы поддерживают регулировку громкости для каждого канала.
  • Интернационализация:
    • Таблицы символов Юникода основаны на версии 12.1.0 стандарта Юникода.
    • Реализована нормализация Unicode.
    • Идентификатор географического региона автоматически устанавливается в реестре на основе текущего языкового стандарта. При необходимости его можно изменить в разделе HKEY_CURRENT_USER\Control Panel\International\Geo.
    • Поддерживаются сингальский и астурийский языки.
    • Поддерживается кодовая страница 28601 (латиница/тайский).
  • РПК/КОМ:
    • Маршаллер typelib поддерживает сложные структуры и массивы.
    • Существует первоначальная реализация библиотеки времени выполнения Windows Script.
    • Существует первоначальная реализация библиотеки объектов данных Microsoft ActiveX (ADO).
  • Установщики:
    • Поддерживаются файлы исправлений Microsoft Installer (MSI).
    • Инструмент WUSA (автономный установщик Центра обновления Windows) поддерживает установку файлов обновления .MSU.
  • ARM-платформы:
    • Обработка исключений реализована для ARM64 с использованием библиотеки libunwind.
    • Прокси-серверы OLE без стабинга поддерживаются на ARM64.
  • Инструменты разработки/Winelib:
    • Удаленный отладчик Visual Studio можно использовать для отладки приложений, работающих под Wine.
    • Библиотека Debug Engine (DBGENG) реализована частично.
    • Двоичные файлы, созданные для Windows, больше не зависят от библиотеки libwine, что позволяет им работать в Windows без каких-либо дополнительных зависимостей. Библиотека libwine больше не предназначена для Windows.
    • Компилятор ресурсов и компилятор IDL поддерживают опцию --sysroot, позволяющую находить файлы заголовков в средах кросс-компиляции.
    • Winegcc поддерживает параметры «--target», «--wine-objdir», «--winebuild» и «-fuse-ld», которые упрощают использование в качестве кросс-компилятора или с настраиваемыми цепочками инструментов.
    • Заголовок Wine/unicode.h больше не доступен приложениям, поскольку функции в конечном итоге будут удалены и заменены стандартными широкосимвольными функциями среды выполнения C.
  • Построить инфраструктуру:
    • Тестовые двоичные файлы создаются в формате PE, если доступен MinGW, поэтому один и тот же тестовый двоичный файл может работать как в Wine, так и в Windows. Цель make «перекрестного тестирования» больше не требуется и не поддерживается.
    • Соглашение о вызовах fastcall поддерживается в файлах спецификаций. Он использует правильное изменение имен для сборок Windows.
    • Флаг точки входа «-import» поддерживается в файлах спецификаций, чтобы отметить функции, которым требуется сгенерировать префикс кода исправления для их модулей импорта.
    • Winebuild поддерживает опцию --builtin, позволяющую добавлять специальную подпись к двоичным файлам PE, чтобы пометить их как встроенные файлы Wine.
  • Встроенные приложения:
    • Инструмент CHCP реализован. Это позволяет установить кодовую страницу консоли.
    • Инструмент MSIDB реализован. Он позволяет манипулировать базами данных MSI.
  • Улучшения производительности:
    • Различные функции времени используют более производительные системные часы, если они доступны, чтобы уменьшить накладные расходы в цикле рендеринга во многих играх.
    • При поиске файлов используется поддержка свертывания регистра файловой системы ext4, если она включена в искомом каталоге.
    • Списки в стиле без данных (LBS_NODATA) имеют лучшую производительность при работе с большим количеством элементов.
    • Блокировки Slim Reader/Writer, ключевые события и условные переменные используют фьютексы в Linux, чтобы избежать двусторонних обходов Wineserver.
  • Новые внешние зависимости:
    • Кросс-компилятор MinGW-w64 используется для сборки модулей в формате PE.
    • Библиотека FAudio используется для реализации XAudio2.
    • Библиотека Inotify используется для уведомлений об изменении файлов на платформах BSD.
    • Библиотека Unwind используется для обработки исключений в ARM64.
    • Вместо версии 1 используется библиотека Video4Linux версии 2.

читать далее


Источник: Винный штаб

История через: AndroidПолиция