Wine е софтуер, който позволява на операционните системи, подобни на Unix, на архитектури x86 и x86-64 да изпълняват програми, написани за Microsoft Windows. Wine не е емулатор в традиционния смисъл — вместо да симулира хардуер, той предоставя слой за съвместимост, който превежда повикванията към Windows API в повиквания към POSIX-съвместимите функции на хост операционната система. Това често позволява на приложенията да работят с почти нативна скорост. Wine също така предоставя софтуерна библиотека, известна като Winelib, с която разработчиците могат да компилират приложения за Windows, за да ги пренесат на Unix-подобни системи. Част от кода на Wine се използва в ReactOS - безплатна операционна система, която е съвместима с Windows и не е базирана на Unix.
Как работи
Wine имплементира множество от Windows API (библиотеки, услуги и интерфейси) върху основата на POSIX системи като Linux, BSD и macOS. Когато Windows приложение прави повикване към система или библиотека, Wine превежда тези извиквания и имитира нужните поведения (регистър, файлови пътища, графичен изход и т.н.). Това прави възможно стартирането на много настолни програми и игри без необходимост от инсталиране на самия Windows.
Компоненти
- wine — основният изпълним файл, който стартира Windows приложения.
- wineserver — централен процес за управление на споделените ресурси и синхронизация между процесите Wine.
- Winelib — библиотека, позволяваща на разработчиците да компилират код за Windows така, че да работи под Unix-подобна система.
- Конфигурационни инструменти (например winecfg) и виртуален регистър, които имитират настройките на Windows среда.
Използване и настройка
Потребителите създават т.нар. "Wine префикси" (WINEPREFIX) — отделни директории, които съдържат виртуална Windows инсталация, регистрационни настройки и инсталирани програми. Това позволява едновременно управление на различни конфигурации и версии на библиотеки. За лесна инсталация на често срещани зависимости (като .NET Framework или Visual C++ Redistributables) се използват помощни скриптове и инструменти като winetricks или графични фронтове като PlayOnLinux и Lutris.
Съвместимост и общност
Съвместимостта на отделните програми с Wine варира; за целта общността поддържа база данни (AppDB), където потребителите оценяват и описват работата на конкретни приложения и игри. Много комерсиални игри и приложения работят добре, а някои случаи изискват допълнителни компоненти или настройки. Проектът се развива активно, като включва и интеграции с други технологии — например Valve използва Wine като основа за своята съвместимостна слой Proton, предназначен за стартиране на Windows игри в Steam под Linux (с добавки като DXVK и vkd3d за превод на Direct3D към Vulkan).
История и лиценз
На 17 юни 2008 г., след 15 години разработка, разработчиците на Wine пуснаха версия 1.0 на Wine. Проектът е започнат в началото на 1990-те и през годините е поддържан от голяма общност от разработчици и потребители; за дълъг период ключова фигура и координатор на проекта е Alexandre Julliard. Wine е свободен софтуер, издаден при условията на GNU Lesser General Public License (LGPL), което позволява неговото използване и интеграция в други проекти при спазване на лицензионните условия.
Практически съвети
- Проверете AppDB преди да инсталирате програма, за да видите опита на други потребители и препоръчителните настройки.
- Използвайте отделни WINEPREFIX-и за различни приложения, за да избегнете конфликти между библиотеки и настройки.
- Актуализирайте Wine и допълнителните компоненти (напр. DXVK, winetricks) — често подобрения в новите версии разрешават проблеми със съвместимостта и производителността.