Запуск Windows программ под Linux. Запуск Windows-программ как X Window приложений

Возможности Linux сейчас широки как никогда. В условиях, когда сервис Steam предлагает более тысячи игр для Linux, а общая тенденция направлена на переход к веб-приложениям, потребность в Windows ощущается все меньше и меньше. В итоге вы сможете без каких-либо дополнительных ухищрений смотреть в среде Linux видео из онлайн-кинотеатров и даже запускать здесь приложения Microsoft Office - по крайней мере, их интернет-версии.

Но рано или поздно наступает момент, когда возникает необходимость запустить на ПК, работающем под управлением Linux, какую-нибудь программу для Windows. Проделать такое можно несколькими способами. И вот что для этого нужно знать.

Wine позволяет запускать программное обеспечение Windows в среде Linux, не требуя установки самой операционной системы Microsoft. Wine представляет собой «совместимый с Windows программный слой» с открытым исходным кодом, предназначенный для запуска приложений Windows непосредственно на ПК с Linux. По сути, участники этого проекта с открытым кодом предприняли попытку воссоздать с нуля некое подмножество среды Windows, которого было бы достаточно для запуска приложений Windows без присутствия самой этой ОС.

Это единственный метод, не требующий наличия копии Windows. Недостаток его заключается в том, что при этом не все приложения работают правильно. Возможно возникновение ошибок или падение производительности, особенно если вы используете Wine для запуска видеоигр. Но если речь идет о какой-нибудь популярной игре, выпущенной несколько лет назад, никаких осложнений обычно не возникает. Например, многие используют Wine, чтобы играть в World of Warcraft под управлением Linux. Получить информацию о работе конкретных приложений и настройках, которые необходимо сделать для их нормального функционирования, можно на сайте Wine Application Database (appdb.winehq.org).

Версия PlayOnLinux для Wine, работающая под управлением Ubuntu

Первым делом загрузите Wine из репозитария своего дистрибутива Linux. Затем следует загрузить файлы. exe приложений Windows и запустить их двойным щелчком в среде Wine. Потом можно опробовать очень удобный интерфейс PlayOnLinux (playonlinux.com), устанавливаемый поверх Wine и помогающий инсталлировать популярные программы и игры для Windows.

Компания Codeweavers предлагает коммерческую версию Wine - CrossOver Linux. За нее придется заплатить, зато Codeweavers обещает официальную поддержку распространенных приложений (Microsoft Office, Adobe Photoshop и наиболее популярных игр для ПК) и гарантирует их правильную работу. Codeweavers вносит свой вклад и в развитие основного проекта Wine.

Виртуальные машины

Виртуальные машины представляют собой очень удобный способ запускать программное обеспечение Windows на ПК с Linux. После того как повысилась производительность ПК, виртуальные машины отнимают у них все меньше ресурсов.

В этом случае копия Windows устанавливается в программе «виртуальной машины» VirtualBox (virtualbox.org), VMware или специально созданной для Linux KVM (Kernel-based Virtual Machine, linux-kvm.org). Копия Windows полагает, что работает на реальном оборудовании, а на самом деле она выполняется в окне Рабочего стола. Современные виртуальные машины позволяют даже вывести программы Windows за пределы этого окна, представляя их в виде обычных окон на Рабочем столе Linux.

VirtualBox в среде Ubuntu Linux

Такое решение более надежно, чем Wine. Запуская приложения Windows на реальной копии Windows, вы исключаете возникновение ошибок.

Однако использование виртуальной машины требует наличия полноценной копии Windows и приводит к дополнительной нагрузке на оборудование, поскольку копия Windows функционирует наряду с основной операционной системой. Особенно страдают от этого требовательные к ресурсам игры, которым нужен прямой доступ к видеоплате, и в этом случае лучше использовать Wine. Что же касается офисных приложений Microsoft Office и Adobe Photoshop, для них виртуальная машина станет отличным решением.

Системы с двойной загрузкой

По сути, создание системы с двойной загрузкой нельзя считать способом запуска программного обеспечения Windows в среде Linux, но многие пользователи Linux запускают программы для Windows именно так. Вместо того чтобы обращаться к ним в среде Linux, они перезагружают компьютер, выбирают в меню Windows и загружают операционную систему Microsoft. Таким образом, программное обеспечение Windows функционирует в своей родной среде. Благодаря современным твердотельным накопителям, процесс перезагрузки выполняется как никогда быстро.

Особенно хорош такой вариант для тех любителей игр, которые не могут полностью отойти от Windows. Не желая отказываться от игр для Windows, они просто перезагружают компьютер тогда, когда им хочется вернуться к своей любимой игре. А поскольку Windows обращается к оборудованию напрямую, никаких проблем с производительностью или совместимостью не возникает.

Лучший способ создания системы с двойной загрузкой состоит в том, чтобы установить Windows первой. Если ваш компьютер поставлялся с уже предустановленной на нем операционной системой Microsoft, этого вполне достаточно. Далее устанавливаем дистрибутив Linux по своему выбору. Затем можно выбирать нужную операционную систему непосредственно при начальной загрузке ПК.

На практике наилучший выбор зависит от того, что вы хотите сделать. Если вам нужно запускать какое-нибудь одно хорошо взаимодействующее с Wine приложение или игру, Wine становится идеальным вариантом. Если же требуется применять множество различных приложений (например, самые последние версии Office или Photoshop), лучше отдать предпочтение виртуальной машине. А любителям игр, желающим насладиться новейшими продуктами для Windows, системы с двойной загрузкой обеспечат производительность, которой вряд ли удастся добиться с помощью Wine.

Использование может быть продиктовано массой причин - от банальной привычки к некоторым программам до невозможности запуска отдельной машины с Linux. Кто-то хочет использовать нативные версии ПО для отладки, а кто-то надеется, что таким способом можно заставить пользователей плавно смигрировать на полноценный дистрибутив.

Программы под Linux - есть всё

Прежде чем городить огород с эмуляторами, лучше поищите портированные версии или аналоги ваших любимых программ. Те же , и множество других утилит имеют родные сборки не только для Windows, но и для Для получения какой-то конкретной функциональности зачастую не требуется полноценный аналог софта из Linux. Например, к автодополнению по Tab в оболочке привыкаешь очень быстро, а в командной строке Windows этого нет и в помине. Исправить это и другие досадные упущения поможет утилита clink.

Стандартные консольные утилиты, например из пакета GNU Coreutils, давно спортированы на Windows. Есть как довольно старые наборы GNUWin II и UnxUtils, так и постоянно обновляющиеся UWIN и Gnuwin32. Для последнего по завершении установки базового инсталлятора надо последовательно запустить файлы download.bat и install.bat, а затем скопировать по желанию папку gnuwin32 в любое удобное место и запустить из неё файл update-links.bat. После отработки последнего скрипта в подкаталоге StartMenu будут ссылки на запуск командной строки с окружением GNU и документацию к утилитам.

Microsoft Windows для UNIX

Обладатели в максимальной и корпоративной версиях, а также серверных версий ОС Microsoft могут вообще не заморачиваться. Для них доступна подсистема для приложений на базе UNIX или сервисы Microsoft Windows для UNIX. Этот набор базовых утилит наличествует прямо в компонентах системы. Наконец, последнее в списке и первое по популярности решение для запуска UNIX-программ - это . Этот пакет прост в установке и содержит далеко не маленький набор приложений, портированных под Windows. Рекомендуется использовать именно его.

KDE on Windows

Теперь можно поговорить о странном - запуске неродной для Windows системы . Вообще-то проект KDE on Windows существует не первый год, и поначалу пользоваться им было просто невозможно из-за регулярных падений, которые разве что не загоняли несчастную систему в BSOD. Однако разработчики не сидели сложа руки, и в нынешней реинкарнации проекта его можно смело инсталлировать - ошибки довольно редки, да и те - некритичные. Всё сразу ставить смысла, наверное, нет, а вот некоторые приложения могут приглянуться.

Linux в виртуальной машине

К сожалению, портированные приложения далеко не всегда ведут себя так, как в родном окружении, или могут конфликтовать с другими программами. Поэтому единственным выходом, помимо установки пингвиньей ОС на голое железо, является эмулирование Linux. Для разового использования можно применить оболочку для QEMU под названием MobaLiveCD, которая без лишних телодвижений поможет запустить LiveCD/USB с различными дистрибутивами. Для постоянного использования лучше инсталлировать Linux в виртуальную машину: в или VMWare Player. Только не забудьте установить гостевые дополнения для более комфортной работы. Альтернативный вариант - применение VDI-решений с возможностью бесшовной интеграции в Windows Linux-приложений, запущенных на отдельном хосте, который также может быть виртуализирован.

Эмулятор coLinux

Оптимальным вариантом для запуска Linux-приложений является использование . Она, условно говоря, запускает ядро Linux на уровне ядра Windows и имеет доступ ко всем аппаратным ресурсам машины, за счёт чего потерь производительности практически нет. При этом она сохраняет полную совместимость с Linux-приложениями, позволяя напрямую запускать их. На базе coLinux имеются готовые системы для быстрого запуска Portable Ubuntu Remix, Topologilinux, SpeedLinux и andLinux. Единственным неприятным ограничением coLinux и всех пакетов на его основе является необходимость использования 32-битной версии Windows 2k/XP/2k3/Vista/7. В качестве примера разберём минимальную настройку . Первым делом установим свежую версию coLinux, отказавшись от загрузки готовых образов и попутно инсталлировав WinPcap.

Установка coLinux в Windows

Теперь необходимо скачать архив образа диска с Debian и распаковать его в ту папку, в которую был установлен coLinux. Размер диска rootfs_2gb.img при желании можно увеличить. Файл squeeze.conf придётся немного отредактировать. Изменений минимум - увеличить объём выделяемой RAM, разрешить доступ к диску C: посредством COFS и добавить сетевой интерфейс TAP. Обратите внимание, что при использовании COFS лучше не обращаться одновременно к одним и тем же файлам с папками из Linux и Windows.

Kernel=vmlinux cobd0="rootfs_2gb.img" cobd1="swap_128mb.img" root=/dev/cobd0 ro cofs0="C:\" initrd=initrd.gz mem=512 eth0=slirp eth1=tuntap

После запуска squeeze.bat вы попадёте в консоль Debian. Логин по умолчанию root, а пароля нет. С помощью nano отредактируем параметры сетевых интерфейсов в файле /etc/network/interfaces. Добавим секцию для eth1. В качестве IP-адреса используем любой, лишь бы не было пересечения с другими локальными подсетями. В Windows в настройках IPv4 сетевого адаптера TAP-Win32 Adapter V8 надо указать адрес из той же подсети.

Auto eth1 iface eth1 inet static address 192.168.100.2 netmask 255.255.255.0

Выходим из nano с сохранением изменений - F2, Y, Enter. Теперь создадим папку, куда будет монтироваться диск C:…

Mkdir / mnt/ windrvc

…добавим одну строчку в конец файла /etc/fstab и сохраним его:

/dev/cofs0 /mnt/windrvc cofs defaults 0 0

Сейчас мы займёмся установкой X-сервера, а пока для простоты пропишем экспорт переменной DISPLAY в файл ~/.profile. В качестве IP-адреса используйте тот, что указан для TAP-адаптера в Windows. После этого можно перезагрузиться командой reboot.

Export DISPLAY=192.168.100.1:0

Нелишней будет установка , в том числе и кириллических. Опционально можно пройтись по каталогам со шрифтами, включая C:\Windows\Fonts, утилитами mkfontdir и mkfontscale из состава Cygwin. Теперь всё готово для установки X-сервера Xming. Сразу же после этой процедуры добавляем в файл X0.hosts IP-адрес TAP-интерфейса в Debian.

Поблагодарим Windows за бдительность и в стандартном брандмауэре поменяем все правила, касающиеся Xming, с запрещающих на разрешающие, а иначе программы просто не достучатся до X-сервера. Теперь запускаем утилиту XLaunch, в которой можно выбрать режим отображения X-окон и задать дополнительные параметры. Для нас важно настроить поддержку русской и английской раскладок с переключением по Alt+Shift и опционально задать DPI. В конце файл настроек надо сохранить как имя.xlaunch. В дальнейшем по двойному клику по этому файлу X-сервер будет запускаться с заданными нами параметрами.

Xkblayout us,ru -xkbvariant basic,winkeys -xkboptions grp:alt_shift_toggle –dpi 96

Чтобы не было так скучно, установим графический менеджер пакетов synaptic для более удобной инсталляции софта и какую-нибудь легковесную панель с меню приложений, например lxpanel. Последнюю для простоты пропишем в автозапуск при входе, добавив в конец ~/.profile команду lxpanel&.

Apt-get update apt-get upgrade apt-get install synaptic lxpanel

Для полноты картины добавим поддержку звука. Скачиваем отсюда архив с Pulseadio и распаковываем его в какой-нибудь каталог, в котором создаём текстовый файл default.pa. Наполняем этот файл нижеследующими строками. Здесь 192.168.100.0/24 - это наша TAP-подсеть.

Load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24 load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24 load-module module-detect add-autoload-sink output module-waveout sink_name=output set-default-sink output

Запускаем pulseaudio.exe и в очередной раз идём править разрешения в брандмауэре Windows. В консоли Debian устанавливаем необходимые утилиты и библиотеки.

Apt-get install libpulse0 libasound2-plugins alsa-utils

В файле /etc/pulse/client.conf добавляем IP-адрес хост-машины с запущенным сервером Pulseaudio - default-server = 192.168.100.1, а в /etc/asound.conf следующие параметры:

Pcm.!default {type pulse} ctl.!default {type pulse} pcm.pulse {type pulse} ctl.pulse {type pulse}

Для проверки работоспособности можно попробовать проиграть один из тестовых файлов.

Aplay /usr/share/sounds/alsa/Front_Center.wav

Автоматический запуск Pulseaudio при старте Debian осуществляется добавлением в конец файла конфигурации squeeze.conf такой команды.

Exec0="X:\путь\до\папки\pulseaudio\pulseaudio.exe"

Xorg в Windows

Для X-сервера такой трюк не подходит. В принципе, того, что уже сделано, достаточно для работы. Однако неплохо было бы добавить в Linux нового не-root пользователя, настроить для него автологин с mingetty, установить coLinux в качестве службы Windows и прописать Xming в автозапуск. Для удобства можно поставить утилиту Desktops, которая создаёт несколько виртуальных рабочих столов в Windows, и запускать X-сервер в полноэкранном режиме на втором рабочем столе.

В итоге мы получили быструю среду для почти что нативного запуска Linux-приложений в Windows. Её можно использовать для написания и отладки веб-приложений, кросскомпиляции драйверов и прочих задач. Вот только вменяемого ускорения графики для работы тяжёлых приложений пока ещё нет, да 64-битная версия начала разрабатываться всего несколько месяцев назад. Тем не менее coLinux вполне пригоден для повседневного использования. Для дальнейшего изучения возможностей и настроек этой системы обратитесь к вики проекта. Ну а мы на этом пока что закроем тему симбиотических отношений Windows с Linux через разные места. Удачи!

Использование Linux- или UNIX-приложений в Windows может быть продиктовано массой причин — от банальной привычки к некоторым программам до невозможности запуска отдельной машины с Linux. Кто-то хочет использовать нативные версии ПО для отладки, а кто-то надеется, что таким способом можно заставить пользователей плавно смигрировать на полноценный дистрибутив.

Прежде чем городить огород с эмуляторами, лучше поищите портированные версии или аналоги ваших любимых программ. Те же GIMP, Audacity, Pidgin и множество других утилит имеют родные сборки не только для Windows, но и для Mac OS X. Для получения какой-то конкретной функциональности зачастую не требуется полноценный аналог софта из Linux. Например, к автодополнению по Tab в оболочке bash привыкаешь очень быстро, а в командной строке Windows этого нет и в помине. Исправить это и другие досадные упущения поможет утилита clink .

Стандартные консольные утилиты, например из пакета GNU Coreutils, давно спортированы на Windows. Есть как довольно старые наборы GNUWin II и , так и постоянно обновляющиеся UWIN (не рекомендуется к использованию) и . Для последнего по завершении установки базового инсталлятора надо последовательно запустить файлы download.bat и install.bat, а затем скопировать по желанию папку gnuwin32 в любое удобное место и запустить из неё файл update-links.bat. После отработки последнего скрипта в подкаталоге StartMenu будут ссылки на запуск командной строки с окружением GNU и документацию к утилитам.


Обладатели Windows Vista/7 в максимальной и корпоративной версиях, а также серверных версий ОС Microsoft могут вообще не заморачиваться. Для них доступна подсистема для приложений на базе UNIX (Subsystem for UNIX-based Applications, SUA) или сервисы Microsoft Windows для UNIX (Microsoft Windows Services for UNIX, SFU). Этот набор базовых утилит наличествует прямо в компонентах системы. Дополнительные наборы программ можно скачать . Наконец, последнее в списке и первое по популярности решение для запуска UNIX-программ — это Cygwin . Этот пакет прост в установке и содержит далеко не маленький набор приложений, портированных под Windows. Рекомендуется использовать именно его.




Теперь можно поговорить о странном — запуске неродной для Windows системы KDE. Вообще-то проект KDE on Windows существует не первый год, и поначалу пользоваться им было просто невозможно из-за регулярных падений, которые разве что не загоняли несчастную систему в BSOD. Однако разработчики не сидели сложа руки, и в нынешней реинкарнации проекта его можно смело инсталлировать — ошибки довольно редки, да и те — некритичные. Всё сразу ставить смысла, наверное, нет, а вот некоторые приложения могут приглянуться.





К сожалению, портированные приложения далеко не всегда ведут себя так, как в родном окружении, или могут конфликтовать с другими программами. Поэтому единственным выходом, помимо установки «пингвиньей» ОС на голое железо, является эмулирование Linux. Для разового использования можно применить оболочку для QEMU под названием MobaLiveCD , которая без лишних телодвижений поможет запустить LiveCD/USB с различными дистрибутивами. Для постоянного использования лучше инсталлировать Linux в виртуальную машину: в VirtualBox или VMWare Player. Только не забудьте установить гостевые дополнения для более комфортной работы. Альтернативный вариант — применение VDI-решений с возможностью бесшовной интеграции в Windows Linux-приложений, запущенных на отдельном хосте, который также может быть виртуализирован.


Оптимальным вариантом для запуска Linux-приложений является использование среды coLinux . Она, условно говоря, запускает ядро Linux на уровне ядра Windows и имеет доступ ко всем аппаратным ресурсам машины, за счёт чего потерь производительности практически нет. При этом она сохраняет полную совместимость с Linux-приложениями, позволяя напрямую запускать их. На базе coLinux имеются готовые системы для быстрого запуска , Topologilinux (Slackware), (различные дистрибутивы) и andLinux (Ubuntu). Единственным неприятным ограничением coLinux и всех пакетов на его основе является необходимость использования 32-битной версии Windows 2k/XP/2k3/Vista/7. В качестве примера разберём минимальную настройку Debian Squeeze. Первым делом установим свежую версию , отказавшись от загрузки готовых образов и попутно инсталлировав WinPcap .


Теперь необходимо архив образа диска с Debian и распаковать его в ту папку, в которую был установлен coLinux. Размер диска rootfs_2gb.img при желании можно увеличить . Файл squeeze.conf придётся немного отредактировать. Изменений минимум — увеличить объём выделяемой RAM (mem), разрешить доступ к диску C: посредством COFS и добавить сетевой интерфейс TAP. Обратите внимание, что при использовании COFS лучше не обращаться одновременно к одним и тем же файлам с папками из Linux и Windows.

Kernel=vmlinux cobd0="rootfs_2gb.img" cobd1="swap_128mb.img" root=/dev/cobd0 ro cofs0="C:\" initrd=initrd.gz mem=512 eth0=slirp eth1=tuntap

После запуска squeeze.bat вы попадёте в консоль Debian. Логин по умолчанию root, а пароля нет. С помощью nano отредактируем параметры сетевых интерфейсов в файле /etc/network/interfaces. Добавим секцию для eth1. В качестве IP-адреса используем любой, лишь бы не было пересечения с другими локальными подсетями. В Windows в настройках IPv4 сетевого адаптера TAP-Win32 Adapter V8 (coLinux) надо указать адрес из той же подсети.

Auto eth1 iface eth1 inet static address 192.168.100.2 netmask 255.255.255.0

Выходим из nano с сохранением изменений — F2, Y, Enter. Теперь создадим папку, куда будет монтироваться диск C:…

Mkdir /mnt/windrvc

…добавим одну строчку в конец файла /etc/fstab и сохраним его:

/dev/cofs0 /mnt/windrvc cofs defaults 0 0

Сейчас мы займёмся установкой X-сервера, а пока для простоты пропишем экспорт переменной DISPLAY в файл ~/.profile (это надо будет сделать и для любых других пользователей). В качестве IP-адреса используйте тот, что указан для TAP-адаптера в Windows. После этого можно перезагрузиться командой reboot.

Export DISPLAY=192.168.100.1:0

Нелишней будет установка набора , в том числе и кириллических. Опционально можно пройтись по каталогам со шрифтами, включая C:\Windows\Fonts, утилитами mkfontdir и mkfontscale из состава Cygwin. Теперь всё готово для установки X-сервера . Сразу же после этой процедуры добавляем в файл X0.hosts IP-адрес TAP-интерфейса в Debian (в нашем примере это 192.168.100.2).


«Поблагодарим» Windows за бдительность и в стандартном брандмауэре поменяем все правила, касающиеся Xming, с запрещающих на разрешающие, а иначе программы просто не достучатся до X-сервера. Теперь запускаем утилиту XLaunch, в которой можно выбрать режим отображения X-окон и задать дополнительные параметры. Для нас важно настроить поддержку русской и английской раскладок с переключением по Alt+Shift и опционально задать DPI. В конце файл настроек надо сохранить как имя.xlaunch. В дальнейшем по двойному клику по этому файлу X-сервер будет запускаться с заданными нами параметрами.

Xkblayout us,ru -xkbvariant basic,winkeys -xkboptions grp:alt_shift_toggle -dpi 96


Чтобы не было так скучно, установим графический менеджер пакетов synaptic для более удобной инсталляции софта и какую-нибудь легковесную панель с меню приложений, например lxpanel. Последнюю для простоты пропишем в автозапуск при входе, добавив в конец ~/.profile команду lxpanel&.

Apt-get update apt-get upgrade apt-get install synaptic lxpanel

Для полноты картины добавим поддержку звука. Скачиваем отсюда архив с Pulseadio и распаковываем его в какой-нибудь каталог, в котором создаём текстовый файл default.pa. Наполняем этот файл нижеследующими строками. Здесь 192.168.100.0/24 — это наша TAP-подсеть.

Load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24 load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24 load-module module-detect add-autoload-sink output module-waveout sink_name=output set-default-sink output

Запускаем pulseaudio.exe и в очередной раз идём править разрешения в брандмауэре Windows. В консоли Debian устанавливаем необходимые утилиты и библиотеки.

Apt-get install libpulse0 libasound2-plugins alsa-utils

В файле /etc/pulse/client.conf добавляем IP-адрес хост-машины с запущенным сервером Pulseaudio — default-server = 192.168.100.1, а в /etc/asound.conf следующие параметры:

Pcm.!default {type pulse} ctl.!default {type pulse} pcm.pulse {type pulse} ctl.pulse {type pulse}


Для проверки работоспособности можно попробовать проиграть один из тестовых файлов.

Aplay /usr/share/sounds/alsa/Front_Center.wav

Автоматический запуск Pulseaudio при старте Debian осуществляется добавлением в конец файла конфигурации squeeze.conf такой команды.

Exec0="X:\путь\до\папки\pulseaudio\pulseaudio.exe"

Для X-сервера такой трюк не подходит. В принципе, того, что уже сделано, достаточно для работы. Однако неплохо было бы добавить в Linux нового не-root пользователя, настроить для него автологин с mingetty, установить coLinux в качестве службы Windows и прописать Xming в автозапуск. Для удобства можно поставить утилиту Desktops , которая создаёт несколько виртуальных рабочих столов в Windows, и запускать X-сервер в полноэкранном режиме на втором рабочем столе.

В итоге мы получили быструю среду для почти что нативного запуска Linux-приложений в Windows. Её можно использовать для написания и отладки веб-приложений, кросскомпиляции драйверов и прочих задач. Вот только вменяемого ускорения графики для работы тяжёлых приложений пока ещё нет, да 64-битная версия начала разрабатываться всего несколько месяцев назад. Тем не менее coLinux вполне пригоден для повседневного использования. Для дальнейшего изучения возможностей и настроек этой системы обратитесь к вики проекта. Ну а мы на этом пока что закроем тему симбиотических отношений Windows с Linux через разные места. Удачи!

Привет, Хабр! Я хочу поделиться с вами идеей о создании Linux-дистрибутива с полной поддержкой Windows приложений. Все началось около 4-х лет назад, когда я в первый раз установил Linux. Тогда меня очень заинтересовала эта ОС, но поначалу все было очень непривычно, так как мне не хватало некоторых приложений из Windows, к которым я сильно привык. В итоге приходилось на другом разделе держать установленную Windows и это сильно раздражало. По мере изучения Linux я узнал о такой программе как Wine, а позже о VirtualBox. Если быть честным, то Wine не особо доставлял, так как некоторые приложения на нем заводились с пол тыка, а другие занимали уйму времени на поиски информации и ковыряния Wine"а. VirtualBox в то время сильно помог, так как дал мне почти полную интеграцию Windows с Linux. Сейчас я полностью перешёл на Linux и почти не пользуюсь Windows на VirtualBox"е, но у меня осталась одна идея, которую хотелось бы реализовать.

Итак, пользуясь Windows через VirtualBox, я подумал о том, чтобы максимально интегрировать ее в Linux и использовать как некую обёртку для запуска Windows-приложений прямо в Linux"е. Дальше я начал продумывать, как организовать мою идею и придумал решение по интеграции.

Как и что будем интегрировать?

Интерфейс
Основой интеграции будет VirtualBox в бесшовном режиме. Так как для Linux"а все Windows-окна будут одним большим окном, то с ним ничего не остаётся сделать, как закрепить его поверх всех окон на отдельном рабочем столе Linux"а и запретить вывод Linux приложений на этот рабочий стол. Таким образом все Windows приложения будут появляться на отдельном рабочем столе Linux, что на мой взгляд очень удобно.
Файловая система
Ее можно просто примонтировать к Linux. Например:

/virtualization
/virtualization/Windows/
/virtualization/Documents & Settings/
/virtualization/Program Files/

Вызов приложений
Запуск приложений планируется делать через меню Linux"а. Огранизовать это будет достаточно сложно, но реалистично. У VirtualBox"а есть консольная утилита, которая может запускать приложения в гостевой ОС из хоста. На этом и планируется основать вызов приложений из меню Linux.
Установка программ
По сути, установка программ не будет проблемой, но у меня есть более интересная идея. Можно использовать пакетную систему Linux для установки Windows приложений. Таким образом мы вся сила пакетного менеджера будет использована в Windows. Если делать репозитории с программами для Windows, то отпадет проблема вирусов и захламления системы.
Меню приложений
Если использовать пакеты в Windows-софтом, то при установке пакета просто копировать ярлык для запуска программы в гостевой системе. Эта проблема отпадает сама по себе.
Остальное
Многое уже реализовано VirtualBox"ом, так что интернет будет работать сразу, usb - тоже и еще много чего. На стадии идеи тяжело все продумать наперед. Так что пока остановлюсь.

Что мы в итоге получим?

Мы получим Linux c полной поддержкой Windows приложений. Почему почти? Потому, что единственное, что не будет работать - это мощные приложения, использующие DirectX, но над этим ведётся работа. Все остальное зависит от мощности компьютера. Так же можно будет завести почти любое USB-устройство, которое не хотело работать с Linux. Тем самым сводя неудобство пользования Linux от нехватки привычного софта к нулю. То есть мы берём безопасность и функциональность Linux и мощь софта от Windows.

И кому это нужно?

Во первых людям, которым нравится Linux, но бесит отсутствие привычного софта. Или тем, кому не хватает 1-го или 2-ух профессиональных приложений, из-за которых они не могут пользоваться только Linux. Или тех, кто хочет изучить Linux, но не переходить резко на нативные приложения. Будет в помощь тем, кто хочет перейти на Linux.

В чем проблема?

Проблем много. Главная - мы по прежнему будем использовать Windows. Так же я не знаю, что будет с лицензиями. Можно ли будет обрезать купленный нами Windows так, как нам хочется? Так же мы теряем кучу ресурсов компьютера. Без процессора с аппаратной виртуализацией это будет один большой тормоз и ещё будет нужно много оперативной памяти. Для комфортной работы 3-4 Гб.

Что дальше?

Мне интересно узнать мнение сообщества. Возможно это бредовая идея, а может неплохая. Организация подобного проекта займет очень много времени и сил и никогда не будет реалиована одним человеком. Если вы посчитаете эту идею интересной, то можно будет собраться вместе и вложить свой вклад в Linux.

P.S. Мне было очень тяжело писать о набросках мыслей в моей голове. Этот текст - всего лишь маленькая часть большой задумки. Тут много непродуманных моментов, и моментов, которые я не знаю как реализовать. Так или иначе базовый функционал моей идеи вполне реализуем. Не судите строго.

Предположим, что у вас есть приложение, которое запускается и работает хорошо только в Windows. Такая программа не имеет эквивалента в Linux, и не работает в или другом эмуляторе Windows API — CrossOver для Linux.

Возможно, ли запустить эту программу не выходя из Linux? Да, возможно: Используя гипервизор для запуска Windows, виртуальную машину (VM).

VM позволяет запускать гостевую операционную систему поверх другой операционной системы. С точки зрения гостя, кажется, что система работает на своем собственном ПК, но на самом деле она работает в ограниченной виртуальной подсистеме ПК, в виртуальной машине. А виртуальная машина, в свою очередь, управляется программой под названием гипервизор. Таким образом, мы получаем идеальный эмулятор Windows в Linux .
Есть много прекрасных настольных гипервизоров для Linux, таких как VMware Player, Kernel Virtual Machine (KVM), и мой любимый, свободный VirtualBox от Oracle. Я предпочитаю VirtualBox, потому-что это самый простой по настройке и запуску виртуальных машин гипервизор.

Ни VirtualBox, ни любой другой гипервизор, не делает Windows безопаснее в использовании, чем она есть на самом деле. Все существующие дыры в безопасности Windows также будут существовать, и выполняться в виртуальной машине.

Эмулятор Windows в Linux? Что VirtualBox может сделать для Вас?

VirtualBox будет безотказным эмулятором Windows для Linux , он сможет запускать Windows только тогда, когда вам это нужно для конкретных задач. Например, для запуска тех или иных приложений.

Windows в VirtualBox можно ограничить. Например, отключить сеть, что может сделать её немного безопаснее. Я обычно в Windows на виртуальной машине выполняю те же самые стандартные меры безопасности, что и выполняют все люди на реальном компьютере, устанавливаю антивирус для того, чтобы мои файлы, которые я буду предоставлять людям, не имели вирусов. К тому же я обычно для Windows открываю одну общую папку из Linux, для простоты обмена файлами.

VirtualBox, как и любой другой гипервизор, любит достойные системные ресурсы, которые он будет использовать. Поэтому, если вы хотите, чтобы у вас был комфортный эмулятор Windows в Linux, другими словами работал Windows в окне Linux, то у вас не должен быть старый ПК, так как такой компьютер будет не в состоянии использовать VirtualBox для запуска Windows.

По моему опыту, вы сможете запустить Windows поверх Linux с помощью VirtualBox на системе с 1 Гб оперативной памяти, но это будет не очень комфортно. По крайней мере, нужно иметь 2Gb оперативной памяти и 1-ГГц (гигарцовый) AMD или Intel процессор.

После настройки виртуализации Вы получите ни чем не отличающуюся работу Windows, не выходя из Linux. Для всех ваших практических целей вы будете использовать реальные операционки Windows.

Вы можете настроить VirtualBox так, чтобы ваша система Linux и ваши Windows гостевые операционные системы, как я уже говорил выше, могли обмениваться файлами. Использовать каталоги (папки): копировать, вставить и редактировать файлы из одной операционной системы в другую. И даже иметь общий буфер обмена. Как только вы освоитесь в управлении двух операционных систем одновременно, поймете, что это может быть очень удобно.

Все это означает то, что при запуске Windows в VirtualBox все ваши приложения будут обращаться к дискам, файлам или к интернету. Поэтому будьте осторожны, любые программы Windows в вашей виртуальной машине, которые требуют доступа к сети, могут подвергаться всем вирусным угрозам, как будто бы вы работаете на обычном ПК.

Стоит ли игра свеч? Конечно, да! Пользуясь Windows-ом на виртуальной машине, вместо того, чтобы запускать его на реальном ПК для выполнения определенных задач, вы будете иметь отличную эмуляцию WIndows в Linux, экономить время, а также сможете быть не зависимыми от имения на своем жестком диске Windows, как полноценной системы. Со временем, изо дня в день вы будете приобретать все больше и больше опыта работы в Linux, и, в конце концов, вы сможете полностью отказаться от Windows, раз и навсегда.

Статьи по теме: