Как запускать приложения Windows в среде Linux. Как мы сделали Linux из Windows: новые способы запуска никсовых приложений под виндой

Аббревиатура "Wine" - это рекурсивный акроним "Wine Is Not an Emulator" .Из названия следует, что он не является эмулятором в широком смысле этого слова: он не эмулирует работу , не требует установки windows. Не является родственником VMware и ей подобных .

В тоже время wine представляет собой набор библиотек, подменяющих стандартные виндусовые с winAPI функциями. Это позволяет запускать приложения windows под юниксподобными системами.

Для работы wine установленный windows не требуется, но могут понадобиться отдельные его библиотеки.

Установка :
1. Может, wine уже установлен?
Проверить это можно так:

cd /usr/ports/emulators/wine/
make install clean

2.Устанавливаем, если до этого не стоял.


cd /usr/ports/x11-fonts/webfonts/
make install clean
./configure
make depend
make
make install

Скачать новую версию всегда можно с http://www.winehq.com/

Сразу хочу оговориться, перед установкой должны быть установлены драйвера для видео(с поддержкой OpenGL), и присутствовать шрифты с поддержкой русского.
Если шрифты и локаль верно настроены, то с выводом русских символов проблем быть не должно.

Настройка.
Итак, приступим.
1.Сначала просто сделаем

после запуска последнего в окне выберем вкладку звук и нажмем autodetect(***).
Теперь должен появиться в катологе %HOME%/.wine фаил настроек config.
Его мы и будем редактировать.

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

;; default TrueType fonts with russian koi8-r encoding
"Default" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultFixed" = "-monotype-courier new-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultSerif" = "-monotype-times new roman-*-*-*--*-*-*-*-*-*-koi8-r"
"DefaultSansSerif" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"

Если у Вас установлены русские шрифты, то нужно просто заменть в приведенном примере monotype на webfonts или cyrillic, или свои другие. После этого соответственным образом раскомментировал строку и установить нужный путь для шрифта.


;"dir1" = "/usr/X11R6/lib/X11/fonts/TrueType"
(и,например, вместо TrueType написать webfonts)

Если ttf-шрифты не установлены, то скорее всего у вас есть шрифты cronix, тогда русификация будет выглядеть так:

;"Default" = "-cronyx-helvetica-"
;"DefaultFixed" = "fixed"
;"DefaultSerif" = "-cronyx-times-"
;"DefaultSansSerif" = "-cronyx-helvetica-"
.....................
"Path" = "%HOME%/.wine/c"
"Type" = "hd"
"Label" = "MS-DOS"
"Filesystem" = "win95"
........................

Видно, где находится директория с виртуальным диском.
Находим секцию со звуком.


...
"Drivers" = "wineoss.drv" ; default for most common configurations
;"Drivers" = "winearts.drv" ; for KDE
;"Drivers" = "winealsa.drv" ; for ALSA users
.............

Обычно, все работает с первым, но если после (***) определилось по-другому, то здесь можно изменить. Могут возникнуть проблемы если не настроена многопоточность, и другое звуковое приложение блокирует wine.


; Windows version to imitate (win95,win98,winme,nt351,nt40,win2k,winxp,win20,win30,win31)
"Windows" = "winxp"

Указываем значение переменной Temp:


...
"Temp" = "C:\\Temp"
...

Еще одна важная сеция:


"commdlg" = "builtin, native"
"comdlg32" = "builtin, native"
"ver" = "builtin, native"

В ней вписаны библиотеки которые и будет использовать wine при эмуляции. Большая их часть это переделаные под *nux, но можно, с осторожностью, воизбежании конфликта, добавлять свои.
Делается так:
добавляем строчку

"C:\\windows\\system32\\mfc42.dll" = "native, builtin"

и в %HOME%/.wine/windows/system32/ копируем mfc42.dll

Как же запустить что-нибудь?

Для этого достаточно перейти в папку с win приложением и выполнить $wine prog.exe и все.
Вся установка и настойка делалась для версии 20050310(ports freeBsd 5.4). Настройки последних версий могут несколько отличаться.

Оставьте свой комментарий!

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

Как правило, для любого пользовательского приложения Microsoft Windows можно найти замену в виде «родного» приложения под Ubuntu, в прошлой статье (см. выпуск «Open Source» №035, опубликованный 21.11.2008) я попытался упомянуть разнообразные приложения для полноценной работы. И такой подход (использование «родных» Linux-аналогов) в большинстве случаев будет предпочтительней, так как он создает меньше проблем, они быстрее решаются, да и вообще более приятно, когда все приложения выглядят и работают примерно одинаково.

Если же по тем или иным причинам найти замену приложению для Windows сложно или не представляется возможным (например, для игр), либо имеющиеся аналоги не устраивают, можно воспользоваться возможностями запуска Windows-приложений в среде GNU/Linux. Этого можно добиться несколькими путями.


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

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

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

Существует несколько программ, для создания и запуска виртуальных машин - в том числе и с графическим интерфейсом, о которых и пойдет речь. Рассмотрим два приложения: VMware Server и VirtualBox. Выбор пал на них не случайно - они во многом схожи: примерно одинаково выполнен интерфейс пользователя, оба распространяются бесплатно и имеют набор инструментов для гостевых ОС. Поиграть в этом случае шансы невелики, так как поддержка 3D ускорения в гостевых ОС на начальном уровне.

VirtualBox

Поставляется в двух вариантах: с открытым исходным кодом (Open Source Edition, OSE) и содержащий закрытые компоненты. В последней функциональные возможности несколько расширены (например, возможность подключить USB-устройство в гостевой ОС доступна только в этой версии). Ее можно установить, скачав deb-пакет для вашей версии дистрибутива с сайта проекта (http://download.virtualbox.org/virtualbox/vboxdownload.html#linux). Вариант с открытым исходным кодом (OSE) устанавливается из репозиториев следующим образом (для Ubuntu Linux):

Sudo apt-get install virtualbox-ose

Приложение позволяет виртуализировать большинство версий Windows, проблем несовместимости быть не должно.

VMware Server

Закрытая, но бесплатная разработка известной компании VMware, которая специализируется на ПО для виртуализации. Помимо Server есть и другие продукты, в том числе и платные (http://www.vmware.com/products/product_index.html). Все подробности о них и ссылки для скачивания доступны на сайте компании.

Несмотря на схожесть принципов работы и предоставляемых возможностей, между VirtualBox и Vmware Server есть различия, заметные и обычному пользователю: если окно виртуальной машины в VirtualBox отдельно от основного окна программы, в VMware Server это реализовано с помощью табов; мастера настроек (работа с дисками и приводами) для VirtualBox также выполняются в отдельных окнах; бинарные пакеты для Server, как правило, имеют вдвое больший размер и прочее. Советую попробовать оба варианта, сравнить и выбрать понравившийся.

WINE

В отличии от виртуальных машин WINE ничего не виртуализирует, он лишь частично реализует функционал WinAPI, позволяя выполнять приложения Microsoft Windows в GNU/Linux. И у этого программного решения есть свои плюсы и минусы. Минусы достаточно весомые: гарантия запуска и работы приложения ниже, чем при использовании виртуальных машин, при переходе WINE от версии к версии приложение может и перестать работать, в основном это касается приложений, использующих сторонние dll файлы, отсутствует поддержки 64-битных приложений. Среди плюсов стоит сказать о меньшей потере в производительности, системные требования, по сравнению с виртуальными машинами ниже, а интеграция с основной ОС выше.

Полгода назад, после пятнадцати лет разработки, состоялся релиз WINE под номером 1.0.0, критерием выхода которого являлась стабильная работа Photoshop CS2 и программ чтения файлов Mircosoft . За минувшее время программа выросла еще больше и на данный момент является единственным (кроме виртуальных машин) связующим звеном между Microsoft Windows и другими операционными системами.

Установка WINE в Ubuntu:

Sudo apt-get install wine

После выполнения этой команды будут скачаны, установлены и настроены все необходимые пакеты, однако стоит учитывать, что в официальных репозиториях Ubuntu, как правило, находится старая версия WINE. Чтобы получить доступ к последним релизам, необходимо подключить сторонний репозиторий WINE. Как это сделать, описано на http://www.winehq.org/download/deb . Затем следует выполнить команду «sudo apt-get update» и установить WINE, воспользовавшись приведенной выше командой. Настроить WINE вы можете, выполнив команду winecfg (либо из меню «Wine» в «Приложениях» запустите «Configure Wine»).

Есть два способа запуска приложений Microsoft Windows: из консоли, что является более гибким способом, так как в строке можно будет указать дополнительные параметры для запуска; через графический интерфейс пользователя. В первом случае в командной строке необходимо выполнить что-то вроде этого:

Wine -keys /home/user/program.exe

  • wine - команда выполнения WINE,
  • -keys - ключи, которые вы хотите передать на выполнение программе,
  • /home/user/ - каталог в котором расположена программа,
  • program.exe - исполняемый файл Windows.

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

На официальном сайте WINE есть специальная база данных, отображающая работоспособность того или иного популярного Windows-приложения, благодаря которой можно заранее узнать, будет ли работать любимая или необходимая программа. Web-интерфейс к базе данных расположен на сайте http://appdb.winehq.org/

Другие разработки на основе WINE

WINE, как и многие открытые проекты, подвергся переработке и дополнениям на стороне. В частности, на его основе были разработаны приложения, которые специализируются в той или иной области.

WINE@Etersoft

Платная российская разработка, нацеленная, в первую очередь, на предприятия. Особенность заключается в возможности запуска в Linux-системах отечественных программ вроде «1C: Предприятие», которые широко используются в российском корпоративном секторе. Кроме того, есть возможность запуска систем клиент-банк и правовых систем, а также некоторых привычных обычному пользователю 2GIS, FineReader, ABBYY Lingvo.

CrossOver

Приложение, созданное с целью предоставить пользователям возможность беспрепятственной работы с Microsoft Office. Помимо этого, обеспечивается запуск некоторых специализированных программ: Adobe Dreamweaver MX, Quicken и других. В состав CrossOver входит дружественная утилита конфигурации, патчи для приложений. Кроме того, к нему предлагается платная техническая поддержка. У его производителя, компании CodeWeavers, есть и специализированный продукт CrossOver Linux Games, ориентированный на запуск некоторых популярных игр (их список можно найти на http://www.codeweavers.com/compatibility/browse/group/?app_parent=4100). Эта программа также является закрытой и платной, однако большая часть наработок возвращается обратно в WINE в соответствии с условиями лицензии GPL.

PlayOnLinux

PlayOnLinux (POL) - достаточно молодой свободный проект, нацеленный на запуск игр Microsoft Windows в среде Linux. Любой желающий может поучаствовать в его развитии, написав плагин или модуль установки игры. Суть проекта - в создании базы данных по параметрам, необходимым для установки и запуска игр. Установить программу в Ubuntu можно так:

Sudo wget http://playonlinux.botux.net/playonlinux.list -O /etc/apt/sources.list.d/playonlinux.list
sudo apt-get update
sudo apt-get install playonlinux

Cedega

Cedega - изначально коммерческий, но более «зрелый» проект, ориентированный на игры. Он разрабатывается уже довольно давно, а в середине минувшего декабря состоялся релиз 7.0. Чтобы его получить, необходима подписка стоимостью в 25 USD за полгода. Для привлечения сторонних разработчиков Cedega выкладывает часть исходных текстов в SVN, что позволяет получить базовый функционал бесплатно.

Заключение

Это последняя статья цикла «Ubuntu для новичков», которая ставит точку во введении в мир GNU/Linux. В ней рассмотрен последний важный на мой взгляд аспект работы в Ubuntu – запуск приложений Microsoft Windows. Хочу еще раз повториться, что в большинстве случаев бывает достаточно функционала «родных» приложений для GNU/Linux и этот вариант является предпочтительным. Используйте 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 через разные места. Удачи!

Рано или поздно может понадобиться запустить программы Windows на Linux. Для операционной системы Linux написано огромное количество программ, для решения одной определенной задачи, может быть даже несколько десятков программ. Но такая тенденция наблюдается только для широко распространенных задач, что же касается специализированных программ и игр, то тут ситуация совсем иная. Программ, для решения узкоспециализированных задач, например, в той же сфере СЕО для Linux попросту нет, а игры начали появляться только последние несколько лет.

Были и раньше простенькие игры с открытым исходным кодом, но популярные игры, класса ААА начали появляться только тогда, когда этой платформой заинтересовалась Valve. Но до сих пор ситуация с играми обстоит не так, как хотелось бы. Поэтому и возникает необходимость установки Windows программ в Linux.

Windows программы не могут запускаться просто двойным щелчком по исполняемому файлу. Формат исполняемых файлов Linux очень сильно отличается от Windows. Поэтому для их запуска необходимо использовать специальное программное обеспечение - wine. Название Wine образовано с помощью, почему-то популярного в мире свободного программного обеспечения способа - рекурсивный акроним, и расшифровывается как Wine is not emultor. И это правда, wine не является эмулятором.

Это программная оболочка, которая преобразует системные вызовы Windows программ в вызовы функций операционной системы Linux. Таким образом, wine представляет из себя прослойку между Windows программой и операционной системой Linux вместе с ее ядром и библиотеками.

Чтобы понять как работает Wine, нужно сначала сказать несколько слов о ядре Windows. У Windows, так же как и у Linux есть ядро. Как вы знаете ядро Linux состоит из одного файла и находится в папке boot. Ядро Windows совсем другое, по сути это набор dll библиотек, которые расположены в папке C:\windows\system32. Поэтому нам, чтобы заставить Windows программы работать в Linux достаточно реализовать dll библиотеки, которые нужны программе, так чтобы они вызывали необходимые нам функции из системы linux, что собственно и делает Wine. Но проект развивается очень медленно и разработчики не успевают реализовать все функции из системных библиотек Windows, поэтому работают далеко не все программы, особенно новые.

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

Основы использования Wine

Все файлы программ wine, установленные программы, библиотеки, файлы реестра, конфигурационные файлы находятся в домашнем каталоге, а точнее, в ~/.wine.

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

Папка ~/.wine это префикс, но мы можем создавать для каждой новой программы свой префикс и она будет работать только с ним. Чтобы задать префикс, с которым нужно работать wine используется переменная окружения WINEPREFIX, например:

export WINEPREFIX=~/program

Для разных программ может потребоваться различная архитектура системы, wine может запускать и 64 битные программы, но многим для правильной работы нужна архитектура х86.

Чтобы задать архитектуру используйте переменную WINEARCH. Например, для х86:

export WINEARCH=win32

Также не создавайте папку для нового префикса с помощью mkdir или файлового менеджера, пусть программа сама создаст эту папку при своем первом запуске.

Установка Windows программ в Wine

Если вам нужно запустить программу, полностью поддерживаемую Wine, например, проводник или notepad, достаточно выполнить:

wine адрес/файла/программы.exe

Но как я уже говорил, нам придется запускать мало таких программ, большинство из них будут требовать функционала, который еще не реализован в wine. Тогда нам придется заменить библиотеки Wine, на оригинальные библиотеки Windows. Конечно, есть оболочки для Wine, которые автоматизируют этот процесс, например, Crossover, PlayOnLinux, WineWizard и тд. Но мы рассмотрим ручной вариант.

Для установки компонентов Windows в wine существует специальный инструмент - winetricks. Устанавливать его лучше из сайта программы, так версия будет новее:

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
$ chmod +x winetricks

Чтобы установить нужный компонент достаточно передать имя этого компонента:

winetricks vcrun2008

С установкой компонентов более-менее понятно, но как узнать какие компоненты нужны? Скорее всего, вашу программу уже пытались устанавливать и другие пользователи нашли решение проблемы. Поэтому воспользуйтесь поиском Google для того, чтобы найти способы установки программы. Также очень полезным будет сайт appdb.winehq.org. На нем собрана база данных всех поддерживаемых в Wine приложений, там есть инструкции по установке, описываются возможные проблемы и дается общая оценка работы программы, правда все на английском.

Давайте рассмотрим пример. Наберите в поиске по appdb Advego Plagiatus, напомню, что это программа для проверки уникальности текстов, часто используемая копирайтерами:

Она сразу же была найдена в базе данных:

На странице программы, мы видим кроме скниншота и оценки работы, желтый значит золото, очень хорошо, и инструкции по ее установке, в нашем случае нужен набор библиотек riched30, который можно установить командой:

winetriks riched30

После установки этого пакета программа запуститься и будет работать.

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

Рассмотрим на примере той же Advego Plagiatus. Сначала создадим новый префикс, чтобы не испортить то что уже было установлено:

export WINEPREFIX=~/advego

Архитектуру нам менять не нужно, но если хотите, можете явно указать, что нужно использовать win64:

fixme:richedit:ITextRange_fnEndOf (0xa04410)->(6 0 (nil)): stub
fixme:richedit:ITextRange_fnEndOf (0xa04410)->(6 0 (nil)): stub
fixme:richedit:ITextRange_fnEndOf (0xa04410)->(6 0 (nil)): stub

Осталось понять, что такое richedit, и Microsoft TechNet нам любезно сообщает что это их API и состоит оно из Riched32.dll, это последняя версия, но раньше это была riched20.dll, уже понимаете какие библиотеки нужны?

Мы знаем как их установить с помощью winetricks, но это делать необязательно, можно и вручную. Скачайте библиотеки, найти их не составит труда с помощью Google. Только ищите версию для Windows XP.

Копируем библиотеку в наш префикс, в папку syswow64:

cp ~/Загрузки/riched32.dll ~/advego/drive_c/windows/syswow64/

cp ~/Загрузки/riched20.dll ~/advego/drive_c/windows/syswow64/

Для 32 битных библиотек используется папка system32, а поскольку мы указали архитектуру 64 бит нужно и библиотеки использовать соответствующие. Затем запустите winecfg и на вкладке библиотеки, в поле новое замещение для библиотеки наберите *riched32, затем добавить и *riched20 и опять добавить:

Все, теперь можете пробовать запускать программу:

wine ~/advego/drive_c/Program\ Files\ \(x86\)/Advego\ Plagiatus/plagiatus.exe

Теперь программа работает и больше не падает с ошибкой. Таким образом, вы можете заменить много библиотек Wine. Можно запустить практически любую программу, написанную несколько лет назад и не требующую сверх новых технологий. Достаточно только заменить нужные библиотеки. Вы можете не только использовать winetricks или копировать библиотеки из интернета, но и брать их прямо из Windows. Точно не стоит заменять gdi32.dll, kernel32.dll, и user32.dll - эти библиотеки реализуют функции ядра Windows на самом низком уровне, и если их заменить, это только нарушит работу Wine. Наверное, есть и другие библиотеки, которые нельзя заменять, но это вычисляется только путем экспериментов. Экспериментируйте и пусть ваши программы работают без ошибок!



Просмотров