Проблема: Как известно, не все программы под windows имеют свои аналоги в Linux, и часто эти программы бывают очень нужны. Требуется запуск прог 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 не требует патча, позволяет запускать Windows 2000/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
VmWare in Ubuntu
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, накладные расходы обычно составляют единицы процентов.
Ссылки: Краткий доклад одного из авторов OpenVZ.