WINE@Etersoft/Среда для запуска приложений Windows

Материал из Русский WINE
Перейти к: навигация, поиск

Среда для запуска приложений Windows

Почему вообще существует необходимость в WINE? Различные программы созданы для различных операционных систем, и большинство из них не будут работать на системах, для которых они не предназначены. Программы, предназначенные для Windows, не смогут работать в Линуксе, потому что не обнаружат привычного окружения (диска C:, системных библиотек (DLL)).

Для того, кто желает пользоваться Windows и Линукс программами вместе, такая ситуация представляет собой фундаментальную проблему. Обычно проблема решается установкой и Windows и Линукс на один и тот же компьютер, что получило название двойная загрузка. Когда нужна Windows программа, пользователь загружает компьютер в Windows и запускает программу; Когда нужна Линукс программа, пользователь перезагружает компьютер в Линукс. Эта практика весьма неудобна: пользователь вынужден терпеть неудобство частой перезагрузки машины, при этом программы с разных платформ не могут работать одновременно. Кроме того, наличие Windows в числе операционных систем на компьютере создает дополнительные трудности: программное обеспечение дорого, системе требует наблюдения (например, установки антивируса), требуется отдельный раздел жесткого диска, в том числе и для обмена данными между системами.

Тут нам и приходит на помощь WINE, позволяющий исполнять Windows-программы в Unix-системах.

Терминология

Поскольку речь идёт об использовании технологии, предоставляющей прослойку совместимости для запуска программ, разработанных для ОС Windows, на платформе GNU/Linux или другой Unix-подобной системе, возможна путаница в терминологии. Чтобы не путаться в том, какая именно система имеется в виду, мы будем придерживаться строго последовательного употребления терминов.


'host-система'

 OC GNU/Linux или другая Unix-подобная система, в которой установлен и выполняется WINE.

'win-окружение'

 Cреда, сформированная WINE, и фактически расположенная в host-системе.

'win-приложение'

 Программа, разработанная для ОС Windows, которая выполняется в win-окружении.

'Windows'

 Какая-либо операционная система семейства Windows. Упоминается только для сравнения.

Надеемся, что теперь читатель никогда не засомневается, о какой среде идёт речь, а если всё-таки это произойдёт, то он ещё раз заглянет в это краткое предисловие. Более полный глоссарий терминов приведён в последнем разделе.

Технология

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

WINE (Wine Is Not Emulator) не является эмулятором операционной системы: то есть он не создаёт изолированной среды для выполнения и не обеспечивает доступ к низкоуровневым системным ресурсам, таким как непосредственный доступ к оборудованию. Задача WINE состоит в том, чтобы, с одной стороны, предоставить win-приложению Win API -- стандартный системный интерфейс операционных систем Windows, а с другой стороны, транслировать запросы win-приложения в соответствующие системные вызовы (Unix API). WINE работает на различных Unix-системах, в том числе на GNU/Linux, FreeBSD, Sun Solaris, MacOS. Таким образом, WINE -- это своеобразная "прослойка" совместимости между win-приложениями и host-системой.

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

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

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

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

Инструментарий, предоставляемый WINE, позволяет вести полный цикл разработки win-приложений в среде Linux, обучать программированию. Для создания исполняемых EXE-файлов, запускаемых как в WINE, так и в Windows, используется проект mingw.

WINE состоит из нескольких компонент:

libwine

 Библиотека, предоставляющая все функции Win API для win-приложений. По количеству предоставляемых функций её можно сравнить с Qt -- столь широк спектр предлагаемых вызовов: от операций с файлами до построения графического интерфейса и обращения к базам данных.

wine

 Среда для исполнения двоичных win-приложений, предоставляет программам окружение, неотличимое от Windows. Это окружение помимо Win API включает реестр, стандартные каталоги и файлы. Реестр является единственной изменяемой информацией, необходимой для работы WINE и win-приложений в нём.

стандартные программы

 Некоторые типичные win-приложения: текстовый редактор (блокнот), файловый браузер и т. п.

средства разработки

 Средства компиляции и отладки: имеются заголовочные файлы, которые описывают доступное API, компилятор winegcc, представляющий собой обёртку над gcc, отладчик winedbg и прочие вспомогательные утилиты.
Wine
Search.png
Программы работающие в WineСкачатьШкольный Wine
WINE@Etersoft Общие сведенияУстановка на 64-битные ОСОсобенности разработкиПатчи для WINE@EtersoftАдминистративная установкаДополнительные компонентыКак получить WINE@Etersoft?Лицензия на документациюГлоссарийИспользование аппаратных ключей защиты в LinuxДополнительная информация • [ Совместная работа | по CIFSпо NFS ] • Изменение системных ограниченийРегистрация продуктаПошаговая инструкция по установке rpm-пакетовОбращение в службу поддержкиТерминальные решенияУстановка WINE@EtersoftПодписка на обновленияНастройка WINE@EtersoftРазработчикуEnterpriseЧто такое WINE@Etersoft SQLВозможностиСреда для запуска приложений WindowsИспользование WINE@EtersoftFAQ по использованию WINE@EtersoftОсновные командыWINE@Etersoft/LocalЧто такое WINE@Etersoft Local
Программы Запуск БЭСТ 4+Запуск Консультант+ (сетевой версии)ГарантF1Инфо-Бухгалтер 8.xНалогоплательщик ЮЛ
1C Отличия от обычного WineМестоположение базы 1С1C: Предприятие 7.7 в WINEНастройка 1С 7.7 для работы с SQL-серверомУстановка 1С: Предприятия 8.1Установка 1С: Предприятия 8.1 в трёхзвенном режиме
Пользователю
Помощь Использование WinecfgИспользование RegeditПубличный префиксНесколько версийКлючи regedit
Легальность DCOM95IE5DCOMMSXML
Утилиты для работы с Wine WinetricksWineToolsQ4WinePlayOnLinuxIEs4LinuxWine-DoorsSwineWine LauncherLutris
Разработчику
Компоненты WindowsЗапрет отключения защиты программыУправление обработчиком исключенийStraceNTИзмерение скорости функций WinAPIGLУстройство чтения смарт-картПрофилированиеТесты для проверки интерфейсовНаписание тестов в системе WineАутентификация в домене ADРепозиторииПрименение Git-патчей
Помощь Создание патчейНаписание приложения под wineОтправка патчейСборка eterhackСборка wine-public
Отладка Способы отладкиWINEDEBUGWinedbg
Разработка WINE
1CODBCWinHelpКомпасМетодикаТестирование доступаЦветаФайловый диалогТестированиеЛитератураИзображенияWin32ШрифтыФайловые блокировкиСсылкиКлючи защитыRPMWineGeckoListViewУпаковка Wine
Производителю
Родственные проекты
LUKReactOSARWINSSCrossOverKernelEx
Прочее
PageSetupDlgFreeBSDWwr