LXF94:Windows в Wine
|
|
|
Windows в Wine
Никак не можете расстаться с любимым Windows-приложением? Вам поможет Wine. О нем-то и расскажет Майк Сондерс в первой из двух статей о достижении кросс-платформенной нирваны.
При всех достоинствах Linux и всем многообразии создаваемых для него программ приходится признать, что для разработки ПО платформа Windows остается более предпочтительной. И хотя разработчики Open Source трудятся не покладая рук, чтобы предоставить нам свободную альтернативу популярным программам Windows (в виде Firefox, OpenOffice.org и Scribus), в некоторых случаях полноценного эквивалента просто нет. Linux-версий нет как для крупных программ (Photoshop и Microsoft Office), так и для тысяч мелких.
Впрочем, выход есть. Это Wine. Сегодня речь пойдет не о напитках [Wine (англ.) – «вино», – прим. перев.], хотя после бутылки-другой, принятой за один вечер, тоже может показаться, что вы играете в Quake 8 на Atari ST [популярная в 1985–1990 годах модель настольного ком- пьютера с процессором Motorola, – прим. перев.] в своем домике на Венере. Мы поговорим об одной программе, с помощью которой другие программы, написанные для Windows, можно запускать в Linux.
В традиционном для Unix стиле аббревиатура Wine расшифровывается рекурсивно: «Wine – Это Не Эмулятор» (‘Wine Is Not an Emulator’). Но разве Wine не эмулирует Windows?
Нет. На самом деле, эмуляторы воссоздают работу устройства или программы полностью, а Wine лишь предоставляет «слой совместимости» между Linux и программами Windows. Когда приложение Windows говорит: «Я хочу открыть файл», Wine перехватывает это сообщение и преобразует его в системный вызов, понятный ядру Linux. Это означает, что для запуска программ Windows вам не потребуется ни установленной Windows, ни виртуальной машины типа VMware или Qemu.
Хотя Wine разрабатывается с 1993 года (www.winehq.org), его состояние далеко от совершенства: некоторые программы Windows работают безукоризненно, другие – с небольшими проблемами, а третьи – не запускаются вовсе. Казалось бы, после десяти лет разработки любая программа должна работать идеально, однако в случае с Wine есть два всегда актуальных препятствия: 1. Недокументированные возможности Windows Wine воссоздает в Linux программный интерфейс приложения (API) Windows, но поскольку многие системные вызовы в Windows недостаточно описаны в документации или совсем не документированы, разработчикам Wine приходится воспроизводить их функционал самостоятельно. 2. Новые версии Windows В далеком 1993 году разработчикам нужно было обеспечивать совместимость с Windows 3.1. Через несколько лет им было нужно эмулировать API Windows 95. Каждый раз, когда полная совместимость с текущей версией Windows почти достигнута, выходит новая версия, и все начинается сначала...