Wine для alt linux

WINE: среда для запуска win-приложений на платформе Unix

Технология

Благодаря распространённости ОС Windows на сегодняшнем рынке очень многочисленны приложения, разработанные для этой платформы 1 . Однако зависимость коммерческого приложения от определённой платформы (ОС) может быть не всегда удобной или выгодной. На этот случай существуют средства, позволяющие программам, разработанным для ОС Windows, работать в другой операционной системе. Одним из наиболее развитых среди подобных средств является WINE.

WINE (Wine Is Not Emulator) не является эмулятором операционной системы: то есть он не создаёт изолированной среды для выполнения и не обеспечивает доступ к низкоуровневым системным ресурсам, таким как непосредственный доступ к оборудованию. Функция WINE состоит в том, чтобы, с одной стороны, предоставить win-приложению Win API — стандартный системный интерфейс операционных систем Windows, а с другой стороны, транслировать запросы win-приложения в соответствующие системные вызовы (Unix API). WINE работает на различных Unix-системах, в том числе на Linux. Таким образом, WINE — это своеобразная «прослойка» совместимости между win-приложениями и host-системой 2 .

Хотелось бы отметить, что процесс WINE всегда выполняется в непривилегированном режиме и не требует никакой модификации ядра операционной системы (в том числе динамически загружаемых модулей). Отсюда следует простой вывод относительно безопасности: любые проблемы, которые могут быть вызваны запуском win-приложений, будут ограничены правами доступа того пользователя, который запустил WINE. В результате win-приложения будут подчиняться политике доступа UNIX-системы и не смогут её нарушать.

У данного ограничения есть и другая практическая сторона: в WINE нет поддержки низкоуровневого обращения к оборудованию (драйверов оборудования, прямой работы с USB-устройствами). Всё периферийное оборудование следует подключать и настраивать в host-системе: для win-приложений эти устройства могут быть доступны стандартным способом через файловую систему или другие стандартные интерфейсы (например, TWAIN для сканеров, который реализован в WINE как обёртка над библиотекой SANE).

Наиболее распространённый способ применения WINE — запуск двоичных win-приложений в Unix-среде. Удобство заключается в том, что при этом не требуется никак изменять приложение — один и тот же вариант годится и для Windows, и для WINE.

Другое, на сегодняшний день пользующееся незаслуженно меньшей популярностью применение — с помощью WINE разработчики ПО могут компилировать свои win-приложения из исходных текстов непосредственно в двоичные исполняемые файлы для Unix. Опять-таки, это те же самые исходные тексты, из которых компилируются двоичные файлы для Windows.

Третий способ использования — WINE позволяет скомпилировать win-приложение из исходных текстов в исполняемый exe-файл, который будет работать на любой Windows-системе.

WINE состоит из нескольких компонент, которые условно можно поделить на три части: libwine Библиотека, предоставляющая Win API для win-приложений. По количеству предоставляемых функций её можно сравнить с Qt — столь широк спектр предлагаемых вызовов: от операций с файлами до построения графического интерфейса и обращения к базам данных. wine Среда для исполнения двоичных win-приложений, предоставляет программам окружение, неотличимое от Windows. Это окружение помимо Win API включает реестр, стандартные каталоги и файлы. Реестр является единственной изменяемой информацией, необходимой для работы WINE и win-приложений в нём. утилиты Утилиты, имитирующие некоторые стандартные win-приложения: текстовый редактор (блокнот), файловый браузер и т. п. Средства компиляции и отладки: имеются заголовочные файлы, которые описывают доступное API, компилятор winegcc, представляющий собой обёртку над gcc, отладчик winedbg и прочие вспомогательные утилиты.

Читайте также:  Windows 10 celeron processor

Разработка

WINE — это свободный проект, который был начат в 1993 году. На тот момент распространённой платформой была Win16 (Windows 3.1), на неё и был ориентирован WINE, на сегодняшний день основным русло разработки — Win32. Исходные тексты WINE выпускаются под лицензией LGPL (Lesser GPL), никаких ограничений по доступу к исходным текстам и их модификации не имеется. WINE снабжён достаточно вразумительной документацией, имеется ряд списков рассылки (англоязычных), как для пользователей, так и для разработчиков, где оперативно решаются любые вопросы.

Процесс разработки WINE во многом похож на метод, применяемый при разработке ядра Linux. Все присылаемые (в специальную рассылку) патчи подвергаются рассмотрению разработчиков, которые могут высказывать свои соображения и добавления. Имеется один человек, Александр Джулиард, который принимает решение о том, включать ли патч в CVS, и при необходимости совершает в нём какие-то улучшающие изменения (например, исправляет ошибки в оформлении кода). Ведётся контроль и учёт всех отправляемых патчей и их авторства. Прежде чем патч будет принят, он проходит автоматическое тестирование — WINE компилируется с новым патчем, и выполняется регресс-тестирование: запускается тестовый код, написанный практически для каждого API, с помощью которого можно удостовериться, что добавление патча не нарушает совместимость.

Реализация

Успешность и корректность работы win-приложений в WINE естественно определяется тем, насколько среда WINE неотличима от Windows с точки зрения win-приложения. Иначе говоря, вопрос в том, насколько полно Win API и другие стандартные компоненты и процедуры Windows реализованы в WINE. Текущая оценка полноты реализации конкретных функций публикуется на сайте разработчиков WINE. В WINE реализованы функции практически всех динамических библиотек (DLL), входящих в Windows: начиная от 16-разрядных и заканчивая появляющейся поддержкой 64-битного режима. На хорошем уровне находится поддержка OLE, MSI и DirectX.

Если говорить об общей оценке полноты реализации, то на сегодняшний день разработчики называют цифру 90%. Однако относиться к этой цифре нужно не совсем так, как к обычному процентному соотношению. Дело в том, что с точки зрения успешной разработки WINE Win API должно быть таким, каким его хотят видеть программы. Полных и безошибочных спецификаций Win API в публичном доступе нет (и никогда не было), и это во многом определило характер разработки на платформе Win. Большинство разработчиков win-приложений используют только незначительную часть стандартных функций API, а остальные необходимые функции реализуют самостоятельно и поставляют вместе с программой. В последние годы подмножество широко используемых функций API в широкой массе win-приложений уже стабилизировалось и практически не меняется. Для WINE это означает, что цифра 90% означает стабильную работу большинства win-приложений в WINE даже больше, чем в 90% случаев.

По этой же причине не так существенна опасность отставания от изменений, вносимых в Win API в рамках операционной системы Windows. Единственная особенность — развивающаяся поддержка 64bit, при разработке архитектуры WINE принималась в расчёт возможность расширения в этом направлении. Поэтому как только функции Win64 API получат более широкое распространение, добавление их поддержки в WINE не заставит себя долго ждать.

Настройка локального win-окружения

Прежде чем начинать работать с WINE, каждому пользователю, от имени которого будут запускаться win-приложения, необходимо настроить локальное win-окружение. Настройка окружения выполняется автоматически при первом запуске WINE (достаточно ввести команду wine в командной строке и дождаться завершения её работы).

При первом запуске WINE создаёт необходимую инфраструктуру в домашнем каталоге данного пользователя, для чего выполняет следующие действия:

  • создаёт начальную версию реестра;
  • выстраивает соответствия каталогов host-системы и логических дисков WINE;
  • создаёт каталог с программами, который будет служить основным диском ( C: ) для win-приложений, для удобства этот каталог доступен как wine_c в домашнем каталоге пользователя.
Читайте также:  Windows failed to start insert your windows installation disc

По умолчанию логические диски WINE будут расположены следующим образом:

Если какого-то из нужных каталогов не окажется, то соответствующие ссылки просто не будут созданы. Как минимум один диск — C: будет создан в любом случае. Остальные диски необязательны, даже одного C: будет достаточно для работы в WINE. Правила создания ссылок по умолчанию описаны в файле /etc/wine/map_devices.sh , при необходимости их можно изменить. Изменения в этом файле затронут всех пользователей, которые будут затем выполнять первый запуск WINE.

Каждый пользователь может вручную изменить соответствия логических дисков WINE каталогам host-системы или создать любое количество допольнительных дисков. Все логические диски для WINE представлены обыкновенными символьными сылками на каталоги в каталоге $HOME/.wine/dosdevices :

Чтобы создать новый логический диск или изменить имеющийся, достаточно создать новую символьную ссылку с нужным именем.

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

Общее правило для запуска всех win-приложений в WINE — запускаемые файлы должны находиться в области видимости WINE, то есть на одном из логических дисков WINE или в его подкаталогах. Если программа поставляется на компакт-диске, то не забудьте должным образом смонтировать диск 3 , прежде чем обращаться к нему из WINE. Обратите внимание, что в этом случае у вас должен быть разрешён запуск приложений с компакт-диска. Если приложение распространяется не на диске — не забудьте сначала скопировать его в область видимости WINE.

Для запуска win-приложений проще всего воспользоваться файловым браузером winefile : его можно запустить из командной строки. Здесь достаточно перейти в необходимый каталог и запустить программу двойным щелчком мыши.

Можно запускать win-приложения как обыкновенные исполняемые файлы host-системы (например, из Midnight Commander или из командной строки), для этого должна быть запущена системная служба (service) wine.

Установка и удаление win-приложений

Как и в Windows, перед использованием большую часть приложений сначала потребуется установить. Установка производится обычным для Windows способом — с помощью поставляемой вместе с win-приложением программы установки. Разница в том, что в случае WINE программа будет установлена в локальном win-окружении пользователя.

Для установки win-приложения следует любым удобным способом запустить программу установки (чаще всего setup.exe ). Дальше можно действовать по инструкции, предлагаемой поставщиком win-приложения.

Многие win-приложения запрашивают перезагрузку для завершения установки. Естественно, перезагружать host-систему при этом не следует. В локальном win-окружении процедуре загрузки Windows соответствует команда wineboot — её можно вызвать из любой командной строки. Если в этот момент в WINE выполняются другие приложения, то рекомендуется их завершать до перезагрузки.

Для удаления win-приложения, установленного в win-окружении, следует воспользоваться утилитой uninstaller . Эта утилита выводит список установленных в win-окружении приложений (если они зарегистрированы в реестре). Чтобы удалить приложение, выберите его из списка и нажмите кнопку «Uninstall». Если приложения, которое вы хотите удалить, нет в списке, то достаточно просто удалить каталог с приложением (можно воспользоваться для этого программой winefile , а можно — стандартными средствами host-системы).

Безопасность

Советы по соблюдению должного уровня безопасности в WINE могут быть сведены к двум простым соображениям:

  • жертвой ошибки в программе или злонамеренных действий со стороны win-приложения (вируса) может стать только та часть файловой системы, которая входит в область видимости WINE;
  • права доступа к данным определяются правами пользователя, запустившего WINE.

Поэтому следует максимально ограничить область видимости WINE, включив туда только те данные, доступ к которым необходим win-приложениям для работы. Можно сформулировать и несколько более конкретных рекомендаций:

  • Никогда не запускайте WINE от имени пользователя root ! Запущенное от имени root win-приложение получит привилегии этого пользователя. Для работы они ему никогда не потребуются, а во вред могут быть употреблены запросто.
  • Не следует давать доступ win-приложениям к важным системным каталогам, и в особенности к корневому каталогу файловой системы (“ / ”). Даже целиком включать домашний каталог пользователя в зону видимости WINE почти наверняка не требуется.
Читайте также:  Windows 10 professional 64 bit 2021

Шрифты

Системе WINE доступны те же шрифты, что и другим приложениям в host-системе 4 . Соответственно, к этим шрифтам получают доступ и win-приложения.

Сделать определённые шрифты доступными win-приложению можно несколькими способами:

  • Для всех пользователей — поместить шрифты в host-системе штатным для системы способом;
  • Для конкретного пользователя — поместить эти шрифты в каталог шрифтов пользователя (

/.fonts );
Только для win-приложений данного пользователя — поместить шрифты непосредственно в каталог шрифтов на логическом диске WINE (обычно

Существует базовый набор шрифтов (Corefonts) для систем Windows — многие приложения рассчитывают на наличие в системе шрифтов со стандартными именами из данного набора. Для корректной работы таких приложений, возможно, потребуется установить этот набор шрифтов. Его можно скачать с сайта http://corefonts.sourceforge.net .

Дополнительная информация

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

На официальном сайте проекта WINE доступна самая свежая информация по WINE, сведения о разработке, включая дальнейшние планы, списки рассылки, исходные тексты WINE, списки работающих win-приложений, поддерживаемых фукнций WinAPI и множество другой информации. Из русскоязычных ресурсов можно обратиться к проекту «Русский WINE», который позиционируется как ресурс, объединяющий русскоязычных пользователей WINE. Здесь большое внимание уделяется проблемам локализации WINE и запуска специфических приложений, актуальных для русскоязычных пользователей. Многие пользователи могут найти для себя полезным русскоязычный форум, посвящённый WINE.

1Здесь и далее мы будем называть такие приложения win-приложениями.

2ОС Unix/Linux, в которой установлен и выполняется WINE.

3Нужно делать это вручную, или монтирование выполняется автоматически — зависит от вашего дистрибутива и стиля работы.

4Для получения списка доступных шрифтов WINE использует пакет fontconfig, а для отрисовки символов — библиотеку freetype2.

Источник

WINE/howto

Содержание

Установка и использование Wine для запуска Windows-программ [ править ]

Установка [ править ]

Для установки Wine необходимо установить из репозитория следующие пакеты:

Также для работы с 3D может понадобиться установка 32-битных драйверов для вашей видеокарты, например, i586-xorg-dri-intel.

Далее для инициализации окружения пользователя достаточно запустить любую windows-программу c помощью команды wine или просто запустить программу настройки и дождаться её появления на экране:

Установка дополнительных компонентов [ править ]

Часто программам для своей работы требуются дополнительные компоненты, например, .NET Framework или Visual Studio Redistributable. Для их установки предназначена утилита winetricks из состава Wine. Она позволяет установить различные приложения и компоненты, а также совершать операции по тонкой настройке Wine.

Существуют компоненты и приложения, установка которых накладывает дополнительные лицензионные требования. Например, установка браузера Internet Explorer возможна через winetricks, но требует наличия лицензии на MS Windows.

Установка и запуск программ [ править ]

Для запуска любой программы Wine нужно, чтобы эта программа была видна на «диске Wine», то есть к ней должен быть доступ через

/.wine/dosdevices/. В самом простом случае программа копируется на диск C: (

Запуск произвольной программы осуществляется командой:

Процесс работы с запущенным в Wine приложением не должен существенно отличаться от процесса работы с этим приложением в Windows.

Источник

Оцените статью