Эмулятор Linux в Windows и Windows в Linux
Есть класс программ, позволяющих запускать программы других операционных систем (не обязательно Windows) в Linux и других UNIX-системах.
Это эмуляторы — такие программы, которые позволяют, грубо говоря, эмулировать Linux в Windows или наоборот. Среди них следует выделить наиболее часто применяемые.
1. WINE
opensource, GPL.
Wine Is Not a (CPU) Emulator это прослойка, которая транслирует Win32API в POSIX API, то есть свободная реализация Windows API, которая позволяет запускать программы Windows, переводя вызовы программы под Windows в вызовы Linux. Это позволяет выполнять программы почти на полной скорости. Однако из-за того, что продукты Microsoft являются закрытыми, невозможно точно воспроизвести структуру их API, что приводит к разного рода сбоям и странностям при выполнении Windows-программ в WINE. Положительным моментом является то, что вам не нужно ставитьWindows — только WINE и программу.
Плюсы: достаточно быстрая работа на реальных ресурсах машины, работа с реальными каталогами и файлами, нет необходимости в установке Windows.
Минусы: не все приложения поддерживаются и работают не всегда стабильно.
Ссылки:
http://www.winehq.org
http://gazette.linux.ru.net/team/a_kuprin.html
http://linuxshop.ru/linuxbegin/print633.html
1.1 CodeWavers CrossOver Office
closedsource.
Основанный на WINE коммерческий продукт, отличающийся лучшим исполнением особенно важных Windows приложений, таких как Adobe Photoshop, Microsoft Office, Autodesk AutoCAD и некоторых других. В общем, более стабильная, хотя и не самая свежая версия WINE, с графическим установщиком, который предоставит вам удобный и простой интерфейс для настройки.
Ссылки: http://www.codeweavers.com
1.2 TransGaming Technologies WineX / Cedega
proprietary, но есть возможность скачать исходники.
Так же основанный на WINE, но имеющий одно очень существенное, особенно для геймеров, усовершенствование — он содержит в себе улучшенную, вдобавок, полную (в плане совместимости) поддержку интерфейса Direct3D.
Ссылки: http://www.transgaming.com
2. DOSEMU
opensource, GPL.
dosemu — эмулятор DOS для запуска старых приложений, часто используется для бухгалтерских и прочих весьма специфичных нужд. Многие программы под DOS использовали его «особенности» и баги для работы, которых в dosemu может не оказаться.
Плюсы: быстрый запуск и работа устаревших, но нужных программ DOS (бухгалтерских, например), не требователен к ресурсам.
Минусы: нетривиальная установка, не все программы будут работать.
Ссылки: www.dosemu.org
3. Win4Lin
closedsource.
В файл, который для Windows будет диском, ставится полноценная копия Windows и потом туда ставятся нужные приложения. Старая версия Win4Lin позволяла запускать Windows 95 с очень приличной скоростью и работать с приложениями для этих систем в виндовс, однако для этого требуются патчи на ядро. Патчи есть далеко не для всех версий ядер, и для определённых версий Win4Lin патчи были свои — нужно было угадывать.
Win4lin PRO не требует патча, позволяет запускать Windows2000/XP, но работает медленно и при этом подгружает служебные программы для «ускорения». Есть подозрения, что в этом эмуляторе используются наработки автора QEMU и особенно его ускоряющего модуля. Особенностью этого эмулятора является то, что есть возможность работать с реальными каталогами Linux.
Плюсы: возможность запуска Windows.
Минусы: проблемы с накладыванием патчей на ядро (закрытых и возможно небезопасных), либо очень низкая скорость запускаWindows, необходимость устанавливать Windows, невозможность эмуляции других ОС.
Ссылки:
http://www.win4lin.com/
http://www.netraverse.com/
http://sys.net.ru/docs/win4lin/Win4Lin6/
http://sys.net.ru/docs/win4lin/win4lin2debian
4. Виртуальные машины
Имитируют весь компьютер целиком вместе с жёстким диском (в виде файла), CD-ROM и USB (всё это связано с железом настоящего компьютера). Установленная туда ОС будет работать с реальным железом только через эмулированное. Виртуальные машины это как раз то, что обычно называют «эмулятор Linux» или «Эмулятор Windows» — с помощью виртуальных машин вы действительно сможете эмулировать Linux или Windows.
4.1 QEMU
opensource, GPL.
QEMU — виртуальная машина. В QEMU можно поставить почти любую ОС — любой Windows (начиная с Windows95 до WindowsXPвключительно), любой дистрибутив Linux или FreeBSD, BeOS/Haiku, ReactOS, Syllable и проч. Для быстрой работы нужен kqemu — ускоряющий модуль (так же под GPL), который имеется на сайте автора. Для этого потребуются заголовки ядра — в основном, чтобы собрать ускоряющий модуль kqemu, с которым замедление работы гостевой ОС составит до 1.5 раза (вместо 5-10 раз без модуля). Этот эмулятор использует наработки другого проекта, BOCHS. Так же позволяет создавать виртуальные машины собственной утилитой qemu-img. Работа с эмулятором (вызов, задание параметров) происходят в консольном режиме, но есть и графические оболочки.
Плюсы: хорошая скорость работы (с kqemu) гостевой ОС, стабильность, широкие возможности (эмуляция нескольких платформ, одновременный запуск множества систем, точность эмуляции), защищённая среда.
Минусы: несколько меньшая скорость эмуляции, чем VMware, консольный интерфейс (хотя есть графические оболочки типа Qemulator).
Ссылки:
форум о QEMU
www.qemu.org
4.2 BOCHS
opensource, GPL.
BOCHS — виртуальная машина, точный эмулятор x86 платформы. Имеет свой BIOS, VGABIOS и прочее, что и используется QEMU. Очень точный, но очень медленный, применяется в основном разработчиками, где нужна уверенность, что это сбой в программе, а не эмулятора.
Плюсы: полная точная эмуляция x86, возможность установки в него практически любой ОС, лёгкая и простая установка в Debian.
Минусы: очень низкая скорость работы гостевой ОС.
Ссылки:
www.bochs.org
4.3 VMWare
closedsource.
VMWare — как и QEMU, виртуальная машина. Обладает более высокой скоростью эмуляции, поддерживает большее число ОС. Кроме того, установка VMWare на Дебиан нетривиальна, хотя имеются deb-пакеты в неофициальных репозиториях; требуется компиляция закрытых ускоряющих модулей с заголовками ядра. Есть сообщения, что у VMWare имеются проблемы с полноэкранным режимом. По требовательности к ресурсам мало отличается отQEMU, потребляя много оперативной памяти и процессорного времени. Возможности те же: безопасная среда для эмуляции гостевых ОС. Плюс графический интерфейс для создания виртуальных машин.
Плюсы: более быстрая эмуляция гостевых ОС, есть графический интерфейс для создания виртуальных машин.
Минусы: закрытые проприетарные модули потенциально могут вывести хост-ОС из стабильного состояния.
Ссылки:
http://www.vmware.com/
http://www.nixp.ru/news/6914
http://software.newsforge.com/print.pl?sid=05/04/27/186203
4.4 VirtualBox
opensource, GPL.
VirtualBox — так же виртуальная машина x86, основана на наработках QEMU. Отличается простым графическим интерфейсом и весьма высокой скоростью эмуляции (часто быстрее QEMU) и поддержкой периферии (USB, сеть, FireWire). Точность эмуляции ниже, чем у QEMU (невозможно запускать многие ОС, например BeOS/Haiku, MenuetOS, Syllable). Есть guest additions, которые позволяют очень нужные вещи, а именно копи-паст с хост-системы в гостевую (clipboard sharing) и незаметный захват мыши.
Плюсы: простая установка и настройка, возможно расширение функционала плагинами, широкая поддержка периферии, в ряде случаев быстрее QEMU.
Минусы: при интенсивном использовании графический интерфейс мешает, точность эмуляции менее распространённых ОС не высока.
Ссылки:
http://www.virtualbox.org/
4.4 KVM — Kernel-based Virtual Machine
opensource, GPL.
KVM — это решение полной виртуализации, хотя сам по себе это модуль ядра Linux. Для работы требуется модифицированная версияQEMU. Для работы требуется поддержка виртуализации процессором.
Плюсы: модуль ускорителя в ядре, простая установка.
Минусы: требуется поддержка виртуализации процессором.
Ссылки:
http://kvm.qumranet.com/kvmwiki
http://inf.by/linux/211/
5. Гипервизоры
opensource, GPL.
XEN — гипервизор, позволяет запускать гостевую ОС как процесс ядра в хост-системе. Отличается очень низкими накладными расходами (от 2 до 8% потери производительности гостевой ОС), защитой хост-ОС, а так же использованием технологий виртуализации современных процессоров. Однако для того, чтобы использовать его возможности, требуется патч на ядро не только хост-ОС, но и гостевой ОС, что делает запуск проприетарных систем внутри очень непростым делом.
Плюсы: потенциально наибольшая достижимая скорость работы гостевой ОС, ниже требования к ресурсам хост-ОС.
Минусы: весьма нетривиальная установка — требуется патч на ядро гостевой ОС.
Ссылки:
http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
http://wiki.xensource.com/xenwiki/XenFaq
http://www.howtoforge.com/book/print/1169
http://xgu.ru/xen/manual/
6. Виртуализация на уровне операционной системы
opensource, GPL.
Open VZ это технология «лёгкой» виртуализации, позволяющая на одной аппаратной системе держать несколько различных версий Linux с одним ядром (поддерживающим ovz и содержащимся, как правило, на небольшом корне с ограниченным доступом по ssh и без других сервисов). В отличие от «тяжёлых» вариантов вроде Xen, Qemu или VMware, накладные расходы обычно составляют единицы процентов.
Запускаем Windows игры в Linux
На мой взгляд, именно Steam и Lutris предлагают максимально современные и легкие решения для запуска игр. В качестве примера, поиграем в World of Tanks и World of Warships на Ubuntu 19.04.
Еще недавно, запускать Windows игры в Линукс было тем ещё квестом, затмевающим интерес к игре из-за тяжелого и не всегда удачного процесса установки игры.
С появлением DXVK (библиотеки основанной на Vulkan, позволяющей транслировать 3D приложения (игры) Direct3D 10/11), и как следствие Steam Play (Proton) – установка многих игр в Линукс стала почти такой же легкой как и в Windows.
Содержание
Запуск Windows игр в Linux с помощью Lutris
Lutris – сервис с игровым приложением, предоставляющий автоматизированные, настроенные скрипты для установки игр.
Интеграция с такими игровыми магазинами, как GOG и Steam, позволяет импортировать существующую библиотеку игр, а поддерживаемые сообществом установочные сценарии обеспечивают полностью автоматизированную настройку.
Установка Lutris в дистрибутивы на основе Ubuntu
Для корректной работы Lutris, разработчики рекомендуют предварительно установить Wine (версию Staging). Установить Wine в Ubuntu можно по нашей инструкции: Установка последней версии WineHQ в Ubuntu 18.04 и 19.04
Для Ubuntu подобных дистрибутивов добавляем репозиторий Lutris:
Для лучшей производительности необходимо установить последнюю версию видеодрайвера и библиотеки Vulkan.
Пользователям видеокарты Nvidia нужно добавить репозиторий с новыми драйверами и затем удобным способом установить последнюю версию драйвара:
Выбрать драйвер можно с помощью встроенной утилиты Программы и обновления – Дополнительные драйверы.
Если видеокарта поддерживает Vulkan API, то устанавливаем необходимые библиотеки (скорее всего они уже установились при установке видеодрайвера. Проверить, если видеокарта поддерживает Vulkan можно по ссылке: Vulkan API):
Пользователям видеокарт AMD / Intel:
Если у вас установлена Ubuntu 18.04, то стоит добавить следующий репозиторий:
Затем обновить предложенные пакеты:
Установка игр в Linux с помощью Lutris
Переходим на официальный сайт программы в раздел Games и выбираем нужную нам игру.
Найдя игру, выбираем (если доступно) редакцию скрипта с нужным нам сервером (например для World of Tanks это будет RU DXVK version). Нажимаем на Install. В качестве примера будет показана установка игры World of Tanks в Ubuntu 19.04.
Ссылка откроется в установленном приложении Lutris, нам предложат установить игру. Нажимаем на Install.
Дальше можно выбрать папку, в которую будет установлена игра. Продолжаем установку. Будет установлена нужная для данной игры версия Wine, соглашаемся на все установки. По окончанию установки онлайн установщика будет предложено создать ярлыки и запустить игру.
Затем откроется полноэкранное окно, в котором будет осуществляться установка игры. Не пугаемся, с помощью клавиш ALT+TAB можно вернуться в рабочее окно.
Запустить установленную игру можно как из программы Lutris, так и из списка установленных приложений.
Аналогично установил игру World of Warships в Ubuntu 19.04.
Именно в Ubuntu столкнулся с проблемой, при которой курсор мыши в игре не позволял делать обороты около 180 градусов. Ранее устанавливал игру в окружениях KDE и Cinnamon (Linux Mint), такой проблемы там нет. Если курсор вывести нажатием на CTRL, то можно захватить другие обороты мыши. Решение: переключение отображения игры в оконный режим.
Устанавливаем Windows игры в Linux с помощью Steam (Proton)
Для совместимости игр с операционными системами GNU/Linux, компания Valve разрабатывает проект Proton (Steam Play), который в свою очередь состоит из различных наработок, таких как Wine, DXVK, esync. Подробнее почитать о Steam Proton можно в нашей статье: Steam Play улучшает поддержку Windows-игр для Linux.
Информация о качестве поддержки Windows игр в Steam Proton доступна по ссылке: ProtonDB.
Для включения опции Proton, нам необходимо открыть Steam – затем Настройки – Steam Play – и включить доступные опции.
Версию Steam Proton стоит выбирать самую актуальную, т.е с большим номером.
Дальнейшая установка игр ничем не отличается от установки в системе Windows. Steam Play автоматически произведет нужные настройки для установки игры.
Сравнение производительности видеокарты Nvidia Geforce 1060 в Ubuntu 19.04 и Windows 10
Сравнение проводилось на ноутбуке с видеокартой Nvidia Geforce 1060 (6 ГБ) и процессором Intel® Core™ i7 8750H. Операционные системы Windows 10 1903 (build 18362.10019), версия видеодрайвера NVIDIA GeForce Game Ready 436.15 и система Ubuntu 19.04 с версией видеодрайвера 430.40 (самый актуальный в репозитории ppa:graphics-drivers).
World of Tanks
Танковые сражения в World of Tanks в Windows 10 показывали от 115-130 fps до 150-165 fps, в зависимости от игровой сцены.
В Ubuntu 19.04 от 100 до 120 fps. Настройки Высокие, sd клиент.
World of Warships
В морских сражениях World of Warships в Windows 10 производительность держалась от 65 до 75 fps.
В Ubuntu 19.04 игра World of Warships показала производительность от 60 до 70 fps, но периодически сильно проседала до 25 fps. Настройки высокие, hight клиент.
Обе игры в Ubuntu были установлены с помощью Lutris.
War Thunder
Также, с интересом проверил производительность видеодрайвера в игре War Thunder. В Windows 10 игра была установлена с помощью нативного клиента, а в Ubuntu 19.04 с помощью Steam (нативная версия).
В морских сражениях в War Thunder в Windows 10 отображался fps от 65 до 85, в воздушных боях около 100 fps.
В Ubuntu 19.04 варьировался fps от 35-55 в морских сражениях и 75 fps в воздушных.
Версия из Lutris, использующая DXVK, в Ubuntu 19.04 показала fps от 50 до 75 в морских сражениях и 60 fps в воздушных.
Знаю, что разработчики War Thunder тестируют версию с использованием библиотек Vulkan. Не тестировал её, но уверен, что производительность будет значительно выше, чем у нативной версии, использующей OpenGL.
Euro Truck Simulator 2
В симуляторе Euro Truck Simulator 2 производительность в Windows 10 отображалась от 85 до 120 fps.
В Ubuntu 19.04 производительность игры ETS 2 варьировалась от 55 fps (в редких случаях) до 110 fps. В обоих случаях были использованы настройки Ультра.
Как видим, производительность игр в Linux уступает Windows 10, но при использовании библиотек DXVK и Vulkan разница гораздо меньше, чем при использовании OpenGL. В любом случае это прорыв для пользователей Linux: доступных игр стало гораздо больше, а их установка стала максимально простой.
На мой взгляд, осталось решить проблему работы античитов. Именно из-за проблемы с работой некоторых античитов, в Linux не доступна еще масса игр.