WINE – Запускаем Windows-приложения на Linux. Основы работы с Wine для начинающих

Wine - специальное ПО, которое позволяет запускать приложения, созданные для Windows, в UNIX-подобных системах, в том числе Linux. Слышали про Wine, думаю, если не все, то многие. Хочу и я пографоманствовать на эту тему. Множество статей о Wine гласят, что надо жать на пимпу, дергать загогулину, и тогда программа (вписать название) заработает. Я бы хотел оставить это в стороне, и рассказать о Wine в целом, о том, какие существуют тонкости, и как вообще его использовать. По крайней мере, именно этого мне не хватало по началу.

Во многих дистрибутивах Wine установлен «из коробки» — достаточно выполнить двойной щелчок на файле с расширением.exe, и, вполне вероятно, все заработает. Если же этого оказалось мало, то давайте погружаться в детали.

Как узнать, какая версия Wine установлена?

Открываем консоль, выполняем команду:

winecfg

В открывшемся окне выбираем вкладку «О программе», где и находится искомое.

Где взять Wine и какую выбрать версию?

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

Чтобы запустить Winetricks для префикса по умолчанию, достаточно выполнить команду:

winetricks --gui

Если же вы успели создать различные префиксы, то используйте команду:

WINEPREFIX=~/.wine_example/ winericks --gui

А есть какая-нибудь программа, которая вообще все вышеописанное сделает за меня?

Есть, причем целых две. Начнем с PlayOnLinux - https://www.playonlinux.com/ru/ . Эта программа содержит большое количество сценариев для установки тех или иных приложений под Wine. Иногда нужен дистрибутив, в некоторых случаях PlayOnLinux скачает его сам, а также создаст отдельный префикс с нужными настройками Wine, скачает и установит все необходимые компоненты и т. п. В списке программ, в «общеобразовательных целях» имеются и те, которые не работают. Они подсвечены красным. Интерфейс у PlayOnLinux простой да еще и на русском языке.

Второй вариант - платное и достаточно известное решение CrossoOver (https://www.codeweavers.com/). Позиционируется как коммерческая версия Wine. Продукт, с одной стороны, нацелен на запуск офисных приложений. С другой - так же, как и в PlayOnLinux имеются сценарии для установки большого количества других приложений, в том числе игры. Лично я как-то не очень просек «фишку» этой программы. Стоит она не дешево, к тому же речь идет не о покупке «однажды и навсегда», а о подписке: 12 месяцев - 40 долларов. При этом, воспользовавшись тестовой версией (при желании сделать это можете и Вы), я увидел, что интересующие меня программы (в частности Microsoft Office, а также еще кое-что по-мелочи) работают ничуть не лучше, чем под «простым»Wine, и покупать CrossOver не стал. Не могу не заметить, что на подходе новая, 15-я, версия CrossOver, в которой нам обещают много нового — например, работающий Office 2013. Как он будет работать — конечно, большой вопрос. Но между тем.

Что в итоге?

А в итоге все просто:
— имейте свежую версию Wine;
— в случае возникновения сложностей с какой-то программой, не поленитесь посетить AppDB и просто почитать форумы. Например, на форумах многих MMO существуют специальные темы о запуске их под Wine;
— дополнительные компоненты, коль скоро такие нужны, устанавливайте при помощи Winetricks;
— особо «тяжелый» софт устанавливайте, используя специальный префикс.

Кстати, о дополнительных компонентах. Многие пытаются установить DirectX под Wine, в большинстве случаев это совершенно не обязательно. Если же игра жалуется на отсутствие какой-то конкретной библиотеки, просто установите ее через Winetricks.

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

Во-первых в Linux много хорошего нативного софта, просто поищите получше, и обязательно найдете искомое. Я, например, уже , которые подобрал взамен тем, которыми пользовался в «окошках».

Во-вторых, «Wine» тянет за собой не только приложения для Windows, но и различные проблемы, присущие этой платформе. Например вирусы. А учитывая тот факт, что приложения, запущенные под Wine, имеют доступ к Вашему домашнему каталогу… Некоторые, насколько я знаю, даже устанавливают под Wine антивирусы. Но это, как мне кажется, совсем перебор.

Достаточно просто соблюдать осторожность и не устанавливать все подряд. Я под Wine запускаю две игры, да еще, время от времени, архиватор 7-zip — никак не подберу полностью устраивающий меня аналог под Linux.

В противовес предостережениям, хочется сказать, что само по себе наличие такого ПО как Wine открывает много возможностей, особенно если взять во внимание тот факт, что в последнее время Wine совершенствуется буквально на глазах.

Как объединить возможности Linux и Windows? Чтобы для перехода из
одной в другую не приходилось перегружать компьютер и не использовать
виртуальную машину, которая обязательно скушает половину всех ресурсов! Чтобы
было удобно, наконец! Мечта? Уже реальность!

Идея иметь полноценное (или почти полноценное) Linux-окружение в Windows
многим не дает покоя. Конечно, ничто не мешает нам запустить виртуальную машину,
используя, к примеру, бесплатное решение VMware Server, и установить в качестве
гостевой ОС все, что душе угодно. Но разве ж захочется каждый раз запускать
требовательную к ресурсам виртуальную машину только для того, чтобы
воспользоваться несколькими приложениями? С тем, что это работает медленно и
неудобно, мириться еще можно, но вот жертвовать сотнями Мб оперативной памяти и
процессорным временем зачастую просто нереально. Но если не так, – то тогда как
же?

Старый добрый Cygwin

Возможность объединить Windows и Unix без использования виртуализации
появилась давно. Кто из нас не пробовал использовать небезызвестный Cygwin
специальную среду, предназначенную для переноса программ из POSIX-совместимых
операционных систем в Windows. Многие никсовые утилиты, портированные с помощью
Cygwin, отлично чувствуют себя под виндой и до сих пор развиваются. Я и сам
отлично помню, как радовался, впервые скомпилив какую-то линуксовую программу
(кажется, это был эксплоит) прямо под виндой. По сути, Cygwin представляет собой
библиотеку, которая реализует интерфейс прикладного программирования unix-систем
на основе системных вызовов Win32 (стандартных для винды). Продукт по-прежнему
отлично справляется со своими задачами, а в случае использования сборок
(Cygwin +
GNOME) и
(Cygwin + KDE) даже позволяет запускать кое-какие оконные приложения. Сказка?
Ну, не совсем. Даже несмотря на эмуляцию никсов, складывается ощущение
недоделанности и отсутствия интеграции в саму систему. Окно с консолью в Cygwin,
претендующее на звание тукса в винде, – не совсем то, чего мы хотели. Командная
оболочка в системе остается прежней: тот же пресловутый cmd.exe и никак иначе. А
ведь люди, привыкшие к bash или другой удобной никсовой оболочке, едва ли пойдут
на компромисс с ограниченностью решения от Microsoft. Да, можно установить
сборник GNU utilities for Win32, в который входит 26 портированных никсовых
утилит (например, любимый многими grep), отчасти компенсировав отсутствие
привычных инструментов, но опять же – об интеграции в систему речи не идет.
Расширенная оболочка от Microsoft – PowerShell – хоть и предоставляет огромный
простор для деятельности (о чем ты можешь прочитать в отдельной статье, которую
мы выложили на диске) и основательно встраивается в систему, но ничего общего с
никсовым bash не имеет. Так как же быть?

Решение от Microsoft

Выход нашелся там, где его не ищешь - на сайте Microsoft, в виде специального
пакета Windows Services for UNIX (SFU) , который свободно доступен для закачки.
Сами разработки позиционируют его как специальную подсистему для
IT-профессионалов, желающих безболезненно переползти на винду с никсовых систем.
Подсистему назвали Interix и это, я тебе скажу, что-то! Последний релиз SFU
включает более 350 любимых юниксоидами утилит (среди них vi, ksh, csh, ls, cat,
awk, grep, kill), которые полностью интегрируются в систему. Помимо этого в SFU
входит GCC 3.3, отладчик GDB, сервер и клиент NFS и еще множество полезных в
хозяйстве вещей. К сожалению, упомянутую командную оболочку bash, файловый
менеджер Midnight Commander, демон OpenSSH, редактор emacs или http-демон Apache
придется ставить вручную, но готовые к установке пакеты легко скачать с сайта
www.interopsystems.com/tools/warehouse.htm . Тем более, перечисленные программы –
лишь малая часть того, что там есть.

В результате установки SFU ты получаешь полное ощущение, что находишься в
*NIX окружении. Чего стоит один bash, исполняемый подсистемой ядра и поэтому
работающий с той же скоростью, что и Win32-приложения. Установив ssh-демон, ты
превращаешь обычную Windows XP в многопользовательский сервер, на котором
одновременно могут работать несколько активных аккаунтов. И не надо использовать
каких-либо дополнительных средств, вроде Terminal Services – вот тебе готовое
решение да еще со многими возможностями никсов. Ну, а ежели работать в консоли
не нравится, то ничто не мешает установить бесплатный X-Window сервер,
специально оптимизированный для SFU –


X-Win32 LX
. Напомню, что X Window System представляет собой протокол, с
помощью которого видеовыход может быть послан с одного компьютера на другой. В
итоге получаем полноценный Remote Desktop. В завершение стоит отметить, что все
перечисленное устанавливается на раз-два, как и любое обычное приложений для
Windows. Огорчает одно: последний релиз SFU вышел еще в 2006 году, а новых
версий, по всей видимости, не предвидится.

Linux под Windows: реально?

Если даже специалисты из Microsoft занимаются вопросом создания
Linux-окружения в Windows, то разумно предположить, что аналогичные решения есть
и с другой стороны баррикад. Большая проблема в запуске никсовых приложений под
виндой заключается в отсутствии соответствующего ядра операционной системы, и
это отлично понимала команда программистов из Японии. Озадачившись этой
загвоздкой, они представили сначала концепцию, а потом и реализацию Linux ядра,
целиком портированного в Windows! Проект получил название Cooperative Linux или,
сокращенно, coLinux . Он
стал первой свободной разработкой, позволяющей запустить Linux под виндой без
всякой виртуализации и необходимости перекомпилировать приложения! Достигается
это за счет специального драйвера, отображающего системные вызовы Linux в вызовы
Windows. Когда приложение пытается вызвать привычную для себя функцию Linux, ее
работа не обламывается с ошибкой – вызов транслируется в набор системных вызовов
самой винды и успешно выполняется. Все это работает значительно быстрее, чем в
любых виртуальных машинах, поскольку используется родное для Windows ядро и не
тратятся ресурсы на виртуализацию.

Несмотря на то, что с помощью coLinux можно запустить не только линуксовые
приложения, но и вообще сам тукс, подробно рассматривать мы его не будем. Зато
остановимся на двух других проектах, которые используют coLinux в качестве
основы, но более дружественны к пользователю, избавляя от необходимости тратить
время на настройку, которую в случае с «голым» пришлось бы выполнять вручную.
Первым из этих проектов является
andLinux .

Как сделать из Windows Ubuntu?

Если тебя кто-то спросит «Что такое andLinux ?», то лучше всего ответить так:
«Это практически полный дистрибутив Ubuntu Linux, который работает прямо в
Windows-системе!» Да-да, именно так! В качестве ядра используется coLinux,
однако по возможностям andLinux намного превосходит его. Для скачки с
официального сайта доступен уже готовый к использованию дистрибутив. В общем-то,
обычная программа, если не считать вес: 131 Мб для версии с графической
оболочкой XFCE и минимальным набором утилит – и аж 653 Мб для полной версии с
KDE. Если ты не знаешь, что это такое, выбирай второй вариант – не ошибешься.

Установка пакета в систему ничем особенным не выделяется, но придется
ответить на несколько вопросов мастера, указав некоторые параметры работы
andLinux:

1. Количество оперативной памяти, которое смогут использовать
Linux-приложения, лучше выбирать «не менее 256 Мб», хотя все будет работать,
даже если выделить лишь 128.

2. Что касается вопроса, как запускать andLinux, советую выбрать вариант с
автоматическим запуском в виде сервиса Windows.

3. Чтобы надстройка имела доступ к основной файловой системе, придется
настроить Samba (специальный сервис в nix-системах, позволяющий подключаться к
расшаренным ресурсам сетей Microsoft). Для этого необходимо создать папку в
Винде и сделать ее доступной из сети (расшарить), а во время установки andLinux
– указать ее имя и, если требуется, логин и пароль для доступа.

После установки в системе появляется панель (в случае дистрибутива с XFCE)
или иконка в трее (в случае KDE), с помощью которой и запускаются
предустановленные Linux-приложения. Для обычного пользователя это выглядит как
набор самых обычных программ! Ничуть не удивительно, ведь все они имеют
привычное для Windows обрамление (в отличие от уродливого Cygwin’а). Поэтому
перепутать «чужеземца» с обычной программой очень просто!

Можно запустить абсолютно все, что и в Ubuntu Linux . По крайней мере, никаких
ограничений мы не нашли и без проблем наставили кучу софта из репозиториев
Ubuntu, воспользовавшись пакетными менеджерами apt-get и Synaptic. Если ты с ним
еще не знаком, это твой реальный шанс оценить их мощь и удобство. Открыл окошко,
нашел название нужной программы, нажал «Установить» – вот и вся установка.
Менеджер сам закачает нужные файлы дистрибутива, а также все необходимые
библиотеки и предоставит пользователю готовое для запуска приложение. Это даже
проще, чем поставить программу в Windows! Естественно, ничто не мешает собирать
программы из исходников. В общем, andLinux работает потрясающе, и единственным
неудобным моментом можно счесть разве что обмен файлами между Windows и Linux
посредством расшаренных папок и Samba.

Решение напоследок

Возможно, наш опыт превращения винды в тукс на этом бы и закончился, если бы
19 мая этого года компания Ulteo не объявила о запуске бета-тестирования своего
нового приложения –
Ulteo
Virtual Desktop
. По сути, почти то же самое, что и andLinux. Новинка
также основана на сoLinux и позволяет запускать самые разные никсовые приложения
без необходимости перекомпиляции. В связи с тем, что это еще ранняя бета,
разработчики рекомендуют использовать только предустановленный набор программ
(Kopete, Konqueror, KPdf, GIMP и т.д.), которые запускаются из специального меню
сразу после установки пакета и не требуют какой-либо дополнительной настройки.
Но если не брать в расчет это ограничение (тем более, приложения устанавливать
на самом деле можно, правда, на свой страх и риск), то уже сейчас можно выделить
несколько серьезных преимуществ разработки перед andLinux (справедливости ради
замечу, что окончательного релиза у этой разработки также не было).

Разработчики Ulteo Virtual Desktop намного удобнее реализовали систему обмена
файлами с Windows. Папка учетной записи пользователя в Windows автоматически
монтируется в домашнюю папку Linux, что несравнимо комфортнее, нежели
обмениваться через расшаренные ресурсы. Отличная поддержка звуковой системы и
принтеров прямо «из коробки» – еще один конек системы. Остается только добавить
автоматическое обновление программы и синхронизацию данных через интернет.
Искренне надеюсь, что Virtual Desktop будет быстро развиваться и через несколько
месяцев порадует нас релизом.

WARNING

Virtual Desktop , coLinux , andLinux будут работать только на 32-битных версиях
Windows 2000 , XP , 2003 , Vista . Поддержка 64-битной платформы пока существует
лишь в планах.

Использование 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. Мне было очень тяжело писать о набросках мыслей в моей голове. Этот текст - всего лишь маленькая часть большой задумки. Тут много непродуманных моментов, и моментов, которые я не знаю как реализовать. Так или иначе базовый функционал моей идеи вполне реализуем. Не судите строго.

Wine – приложение, являющееся слоем совместимости с Windows API , использующее библиотеки Windows для обеспечения работоспособности приложений, разработанных для ОС семейства Microsoft Windows в иной среде, например, в Ubuntu . Используя Wine, вы можете устанавливать и запускать различные программы так, как будто вы используете Windows .
Wine активно развивается. Ещё не все приложения достаточно стабильно работают в Wine , однако Wine уже используется несколькими миллионами пользователей по всему миру.
Название программы Wine (waɪn - между «уа́йн » и «ва́йн », рус. Вино) - рекурсивный акроним фразы «W ine I s N ot an E mulator» - рус. «Wine - не эмулятор».

Установка Wine

Установка из PPA

В связи с тем, что Wine активно развивается, в репозиториях Ubuntu обычно содержится очень старая версия. Поэтому рекомендуется ставить последнюю версию из официального репозитория Wine.

Для последних версий wine и ubuntu 64 бита

Sudo dpkg --add-architecture i386 sudo add-apt-repository ppa:wine/ wine-builds && sudo apt-get update sudo apt-get install --install-recommends winehq-devel

И вообще не рекомендуется заполнять и настраивать wine самому. Работать с wine не совсем удобно. Чтобы установить ту или иную программу придется облазить кучу форумов и блогов, чтобы понять какие пакеты нужно установить и какие библиотеки добавить. Затем следует длинный процесс решения проблем, установки пакетов через winetricks и ручной настройки реестра и так далее. Это все очень сложно даже для опытных пользователей, не говоря уже про новичков. Поэтому рекомендуется скачать настроенный префикс wine отсюда: http://forum.ubuntu.ru/index.php?topic=199897.0

Настройка

Перед использованием Wine для запуска приложений нужно запустить программу настройки, которая создаст в вашей домашней директории каталог ~/.wine с необходимыми для работы файлами. Для этого либо выберите пункт главного меню Приложения→Wine→Configure Wine , либо выполните в терминале команду:

winecfg

Ассоциирование файлов с программами wine

Чтобы прозрачно запускать файлы с помощью wine-программ, напишем небольшой скрипт. Допустим, нам надо открывать CAD-файлы Компасом и zwcad"ом.

#!/bin/bash # Определяем расширение файла dd =$1 ; razr =` echo ${dd:(-3)} ;` ff =` echo ${dd/\"/\"Z:} ` ; ff =` echo "\" Z:" $ff \" ` ; # В зависимости от расширение запускаем нужную программу case $razr in frw) env WINEPREFIX ="/home/" $USER "/.wine" wine start ` echo $ff ` & ;; cdw) env WINEPREFIX ="/home/" $USER "/.wine" wine start "C:\\Program Files\\ASCON\\KOMPAS-3D Viewer V9\\Bin\\kViewer.Exe" ` echo $ff ` & ;; dwg) env WINEPREFIX ="/home/" $USER "/.wine" wine start ` echo $ff ` & ;; dxf) env WINEPREFIX ="/home/" $USER "/.wine" wine start "C:\\Program Files\\ZWCAD 2009 Eng\\ZWCAD.exe" ` echo $ff ` & ;; # Тут можно добавить ещё расширений и программ esac

Не забудем сделать наш скрипт исполняемым

chmod +x wine_cad.sh

и ассоциируем в файловом менеджере чертежи со скриптом.

Запуск Windows приложений

Для того, что бы запустить приложение вам нужно открыть терминал и прописать в нем:

wine путь/ к приложению/ program.exe

Если у вас не запускается приложение или работает неправильно На сайте wine есть список приложений с описанием, для начала рекомендую свериться с ним. http://appdb.winehq.org/ - На сайте есть поле поиска. Если у вас плохо с английским, то используйте переводчик http://translate.google.com/ .

Также можно открыть папку с приложением, которое вам необходимо запустить при помощи файлового менеджера, затем щелкнуть правой кнопкой мыши по приложению и выбрать программу для запуска - Wine.

Приложениям, запущенным через Wine, которые работают с Веб-страницами необходим Gecko

Gecko – это свободный движок вывода веб-страниц для браузера при работе в интернете wine. Если wine не работает с интернетом и вы не запускаете windows exe браузер, то вам Gecko не нужен. Обычно при запуске приложения для работы с веб-страницами Wine автоматически ищет Gecko сперва в /usr/share/wine/gecko. Если Wine не находит архив с Gecko там, то оно автоматически загружает его из интернета, но некоторые приложения не любят ждать, пока загрузиться Gecko и зависают или вылетают. Gecko можно установить выполнив команду:

sudo apt-get install wine-gecko< версия>

где <версия> надо заменить на версию установленного Wine.

Запуск через дискретную видеокарту

Для запуска через дискретную видеокарту надо прописать в терминале на свободных драйверах(или написать скрипт)

Vblank_mode=0 DRI_PRIME=1 wine имя_файла.exe

vblank_mode=0 означает вертикальная синхронизация(Vsync). Если в настройках игры нет VSync, то необходимо стереть vblank_mode=0

Сохранить. Поместить в папку с игрой. Сделать исполняемым в свойствах. Поместить ссылку на скрипт на рабочий стол. Запускать ссылку вместо файла игры. Для ещё большей производительности необходимо поставить закрытый поприетарный драйвер.

Winetricks

Winetricks – это скрипт для установки различных компонентов от Microsoft®, и некоторых других. Для получения Winetricks в терминале введите:

sudo apt-get install winetricks

Winetricks содержит несколько десятков пакетов различных библиотек для wine. Например, чтобы установить DirectX™, введите:

Winetricks d3dx9

Для просмотра списка всех пакетов, введите:

Winetricks ?

Также, Winetricks имеет простой GUI . Для его запуска введите.



В продолжение темы:
Android

Популярная социальная сеть ВКонтакте позволяет находить новых друзей и держать контакт со всеми близкими. Помимо этого, каждый пользователь может делиться собственными...