CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Не-эмулятор

DJ ZX dj_ZX@bk.ru

Окончание, начало см. в МК №47 (270).

...и настроим

Я бы слукавил, если бы сказал, что настройка Wine — очень сложный и ответственный процесс. В 99% случаев некорректно настроенный Wine может всего лишь подвесить терминал, из которого он запущен. Правда, есть еще некоторые тонкости работы с установкой программ под Wine'ом, но об этом я расскажу немного позже.

А сейчас настроим Wine с помощью его конфига. Для этого сначала скопируем файл config из папки samples (см. первую часть статьи) в папку %HOME%/.wine. Да, я забыл сказать: первую настройку мы производим под root'ом, то есть вышеуказанная директория для нас в данный момент эквивалентна /root/.wine.

Теперь откройте скопированный файл в простом редакторе, желательно иксовом, для удобства копирования. Первая строка немного удивит вас: WINE REGISTRY Version 2. Не удивляйтеь — в Wine'е все записи хранятся (между прочим, как и в Окнах) в едином реестре, но в разных файлах: настройки Wine, естественно, в config, а также в system.reg, остальные настройки — в userdef.reg и user.reg. Соответственно, все записи в конфиге делятся на секции. Название каждой секции заключено в квадратные скобки (например, [wine]). В начале файла записаны параметры определения дисков и путей к системным файлам «Окон» на вашем компьютере. В реестре Wine за них отвечает раздел \Machine\Software\Wine\Wine\Config. Для того чтобы корректно определить эти параметры для вашей машины, запустите утилиту wineconf. Результатом ее запуска будут приблизительно такие строки в окне консоли:

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

Если вы посмотрите на пример конфига Wine'а, то увидите там полное описание структуры секции дисков. Выглядит оно (полностью) приблизительно так:

Сначала идет название секции = имя соответсвующего диска для Win-программ. Далее объявляются:

а) путь для диска (может быть любой) — переменная Path;

б) тип устройства —Type; может быть hd, floppy, cdrom или network — соответственно жесткий диск, флоппи, привод КД или сетевой жесткий диск;

в) устройство (dev) —Device;

г) файловая система —Filesystem; может быть msdos = dos = fat, win95 = vfat и unix. Создатели рекомендуют использовать win95 для extХfs, VFAT и FAT32, а msdos для FAT16. Unix используйте только в том случае, если вы портируете программы с использованием Winelib;

д) серийный номер устройства —Serial (максимум 8 цифр);

е) параметры инициализации устройства (по действию аналогичны объявлению устройства в fstab, но с оговоркой — для Wine’а параметры описания типа устройства могут отличатся от системных) — см. пример;

Следующая секция называется [wine], и в ней определяются основные системные переменные (аналогично autoexec.bat):

Windows — путь к основной системе (если стоит две, как на примере, то рекомендую ставить путь к WinXP/2000, вопреки рекомендациям разработчиков);

System — путь к папке System (для пользователей NT-образных систем — к папке System32);

Temp — путь к месту хранения временных файлов (по умолчанию — темп от 9х-образной системы (см. пример));

Path — точный аналог такой же переменной в Окнах;

Profile — путь к профилю пользователя по умолчанию (если пользователь один, то оставьте папку, предлагаемую по умолчанию, или введите какой-то короткий путь, так как эта папка будет использоваться крайне редко);

GraphicsDriver — иксовый графический драйвер (стандартно —x11drv, возможен еще ttydrv, но он используется крайне редко, так как не имеет возможности настройки);

ShowDirSymlinks — определяет, нужно ли показывать симлинки к директориям (для приложений они будут отображаться ярлыками в проводнике);

ShowDotFiles — определяет, нужно ли предоставлять виндовым приложениям доступ к дот-файлам (по умолчанию они скрыты);

ShellLinker — параметр, определяющий линкер оболочки (эксплорера и диалогов); стандартно —wineshelllink.

А теперь мы подошли к основному разделу конфигурационного файла — своеобразной сверхсеркции wineconf, заключенной между объявлениями # [wineconf] … # [/wineconf]. Здесь объявлены настройки собственно эмулируемого пространства. Я постараюсь уделить внимание максимально возможному количеству параметров, исключая общепонятные и дублирующиеся. Любым параметрам можно присваивать произвольные значения (хотя желательно сначала посмотреть список стандартных значений переменной и выбирать уже из него :-)).

Секция [Version] описывает тип эмулируемых сред: параметр Windows указывает на тип предоставляемого WinAPI (на выбор: win95, win98, winme, nt351, nt40, win2k, winxp, win20, win30, win31), параметр "DOS" — на версию имитируемого ДОСа. Рекомендуемые мной значения: для первой переменной — указывайте значение, соответствующее системе, путь которой вы указали в аналогичной переменной секции [wine] (разработчики рекомендуют указывать либо Win98, либо Win2k); второй параметр вообще оставляйте закомментированным, если только вы не собираетесь запускать под Линуксом досовские приложения.

Секция [DllOverrides] описывает приоритет загрузки системных библиотек и приложений. Например, "oleaut32" = "builtin, native". Здесь указывается, какая из библиотек будет загружена первой: «родная» (native) виндовская или встроенная (builtin), поставляемая в комплекте с Wine. То есть, в приведенном примере Wine сначала попытается загрузить библиотеку oleaut32.dll, найденную в папке System, а если библиотека по каким то причинам не загрузится или не заработает, загрузит поставляемый в комплекте ее аналог. Аналогично устанавливаются приоритеты загрузки приложений; единственное отличие — нужно указать расширение .ехе после имени файла.

Секция [x11drv] отвечает за настройку графического интерфейса. Так как многие пункты в ней интуитивно понятны, я рассмотрю только те, которые могут серьезно повлиять на работу с эмулятором.

Итак, пункт PerfectGraphics отвечает за качество графики в общем. Если у вас система не очень тормознутая и с более-менее нормальной видеокартой, то рекомендую установить значение Y. Пункт ScreenDepth устанавливает глубину цвета по умолчанию для всех запускаемых приложений (в битах). Рекомендуется устанавливать 16 или 24 бита, либо вообще оставлять закомментированным. Параметры Managed, UseDGA, UseXShm, UseXVidMode и UseTakeFocus должны всегда быть включены, иначе вы рискуете, например, не получить фокус приложения или не иметь возможности изменить размеры окна. Параметр DXGrab устанавливает, будет ли DirectX-приложение единолично использовать мышку или поделится с другими приложениями (актуально для играх в оконном режиме). Параметр Synchronous не трогайте ни в коем случае. Он запускает Debug-режим для видеосистемы; буквально это означает, что в этом режиме вы игр не запустите точно, зато узнаете много интересного про работу этого самого дебаггера. Параметр DesktopDoubleBuffered включит двойную буферизацию — очень полезная штука, если вы хотите играть в OpenGL-игры.

Остальные четыре параметра, начинающиеся с ClientSide, отвечают за настройки рендеринга и сглаживания шрифтов — устанавливайте по своему усмотрению.

Кроме того, вы можете отдавать под Win-приложения не всю площадь рабочего стола, а только определенную область. Размер этой области задается параметром "Desktop" = “HORIZxVERT” (например, 640x480, как в стандартном конфиге).

Секция [fonts] отвечает за шрифты в диалоговых окнах, меню и т.п. Стандартный конфиг содержит пример описания шрифтов для кириллицы, то есть от вас требуется только проверить наличие описанных шрифтов в системе (или подставить свои) и установить вместо koi8-r кодировку koi8-u (иначе украинские символы превратятся в знаки вопроса).

Секция [FontDirs] указывает папки, где нужно искать шрифты, описанные в предыдущей секции. По умолчанию все пути закомментированы, и вы можете их такими и оставить — Wine находит папки со шрифтами еще в процессе установки. Исключение — если у вас шрифты хранятся не в стандартных папках.

Секции [serialports], [parallelports], [ppdev], [spooler] и [ports] отвечают за настройку портов ввода-вывода на вашем ПК. В 90% случаев вы можете оставить секции в нетронутом виде, так как это никак не повлияет на стабильность работы. Но если вам нужно настроить порты под себя, то почитайте соответствующие статьи из Wine-User и WineFAQ — я не смогу в пределах статьи описать правила настройки портов и использующиеся при настройке параметры.

Аналогично не советую трогать секцию [Debug] — она предназначена для установки параметров отслеживания ошибок и нужна в основном разработчикам или тестерам.

Секция [registry] определяет настройки встроенного редактора реестра. Здесь устанавливаются параметры загрузки/сохранения реестра (LoadGlobalRegistryFiles, WritetoHomeRegistryFiles, LoadHomeRegistryFiles), нужно ли загружать файлы реестра установленной Windows (LoadWindowsRegistryFiles), также можно включить автосохранение реестра —“PeriodicSave” = “время, мсек”, причем с возможностью автосохранения только измененных ключей (SaveOnlyUpdatedKeys).

Секция [Tweak.Layout] устанавливает внешний вид диалогов параметром "WineLook". На выбор предоставляется внешний вид диалогов из операционок Windows 3.1 (по умолчанию), Windows 95 и Windows 98. Естественно, самый приятный вид у диалогов Win98, его-то и желательно поставить.

Есть еще секция [Tweak.Fonts], но она предназначена для отладки, а потому даже в примере конфигурационного файла она отсутствует за ненадобностью.

В секции [WinMM] снимите комментарий со строки "Drivers" = "wineoss.drv", для вывода звука через OSS. Вы можете поэкспериментировать и с другими звуковыми системами (поддерживаются ALSA, JackSS, ARTS, Solaris AudioIO и NasSS), но шансы получить звук через драйвера к этим системам у вас, сразу скажу, не очень велики. Причем, если у вас стоит в системе драйвер ALSA, то через winearts.drv вы еще можете услышать звук (при включенном звуковом сервере KDE), но через winealsa.drv — только гробовое молчание динамиков. По-видимому, разработчики написали драйвер для OSS, отладили его, в общем, довели до ума, а остальные драйверы будут дописываться в процессе разработки.

Секция [dsound] устанавливает параметры эмуляции соответствующей звуковой системы. Несмотря на то, что параметров тут около десяти, на самом деле нам нужны всего два: "HardwareAcceleration" = "Emulation" — включает эмуляцию аппаратного ускорения и здорово ускоряет работу, и "DefaultPlayback" — устанавливает устройство вывода по умолчанию (стандартно — первое в системе). Есть еще параметр "DefaultCapture", устанавливающий устройство записи аналогично устройству вывода и параметры буферизации (лучше не трогать и оставить их закомментированными).

В конце файла устанавливаются параметры сети и персональных настроек приложений. Последние устанавливаются в процессе работы и, надо сказать, малополезны — ну нет там тех настроек, каких бы мне лично хотелось! Впрочем, сетевые проги Винды под Линуксом юзать — думаю, глупость;

Теперь займемся реестром. Для начала заходим в папку с исходником и редактируем в ней файл winedefault.reg соответственно вашим настройкам. Теперь в командной строке напишем regedit winedefault.reg, на вопрос отвечаем «Да» — все, стандартный реестр Wine’а у нас установлен. Предупреждение — утилита regedit, хоть и похожа на виндовый редактор реестра даже внешним видом, не сможет изменить записи в большей части системных веток Wine’а. Кроме того, добавлять записи из внешних файлов с помощью меню у вас вряд ли получится, так что пока юзаем командную строку (в общем-то такой редактор реестра — явный прогресс, раньше это было просто консольной приложение).

Вы можете импортировать записи из виндового реестра, предварительно сохранив его в .reg-файлы (каждый HKEY — в отдельный файл). Но перед этим посмотрите, как называются ветки в реестре — возможно, вам придется подправлять имена пользователей (я, например, экспортировал ветку из HKCU (аналогично HKEY_USERS\{имя_пользователя_Win9x/уникальный_номер_пользователя_Win2kXP}), а потом заменил в ней HKEY_CURRENT_USER на HKEY_USERS\root).

Пора бы уже и запустить Winamp

Да, пора. И поверьте мне — это желание актуально и под Линуксом. Когда-то Рокстон и Виктор Пушкар пытались убедить всех, что mpg123 (XMMS) идеально проигрывает mp3’шки. Но на самом деле все не так красиво. Под Виндой этот плейер (плагин к Винампу) дает не более качественный звук, чем франхуверовский (Fraunhofer IIS) плагин. Да, поедает ресурсов меньше, но это еще не повод, чтобы спускать Винамп в разряд низкосортных плейеров (даже на 700-м Целероне такого «тормоза» не заметно).

Моей целью было сравнить Винамп с XMMS под Линуксом на предмет качества, и результаты сравнения подкрепили уверенность в идентичности декодеров in_mp3 и in_mpg123 (XMMS). На скриншоте (winamp.png) вы видите главное окно Винампа, работающего в Линуксе. Если вы не верите, что это скрин из Линукса, то посмотрите на бегущую строку: где, кроме Линукса можно установить такое сглаживание шрифтов — в Винде даже при включенном сглаживании видна ступенчатость шрифта, а здесь в некоторых местах шрифт как бы размыт. Так вот — по качеству звука Винамп под Линуксом ничем не уступает стандартному плейеру, просто, как уже говорилось в обзоре «Пингвин — птичка певчая», звуковая система Линукса превосходит виндовую по качеству, но уступает по простоте и удобству как для пользователей, так и для разработчиков. Зато у Winamp’а под Линуксом есть одно небольшое преимущество — нет задержки между обработкой файла и выводом звука (у XMMS задержка достаточно большая, заметна невооруженным глазом — видно, что звук уже обработан спектроанализатором, но при этом он еще не воспроизвелся). Причем это не глюк моей карточки — у меня Genius Sound Maker Live 5.1 с поддержкой хардварного микширования, на других картах уровнем чуть ниже SB Live! этот тормоз присутствует аналогично.

Но вы не думайте, что запускал я только Winamp. На скриншотах вы видите процесс инсталляции Steinberg MyMP3 Player 3.0, а также запущенный CDex 1.51. Правда, без глюков не обошлось. CDex не увидел сидюка, зато отлично кодировал файлы из одного формата в любой другой (в меру возможностей, естественно). Но это говорит не о том, что библиотека ASPI плохо реализована, а о том, что под root’ом в 9.1-Мандрейке глючит супермаунт. Сидюка, кстати, не было видно в самой системе. А под обычным пользователем все ОК.

Вывод: настраивать Wine нужно под root’м, а юзать — под простым юзером, предварительно скопировав папку /root/.wine в /home/.wine и выставив всем содержащимся в ней файлам доступ «для всех».

Теперь об игрушках — под Wine’ом идут практически все OpenGL’ные: Alice, Quake 3, Boarder Zone Demo, Serios Sam — The First Encounter и другие. Правда, и здесь без глюков не обошлось: в Алисе не работала клава, хотя все остальное шло просто на ура. А вот с Direct3D’шными играми проблема — они почему-то вовсе не запускаются. Даже упомянутый Boarder Zone Demo при загрузке в режиме работы с DX7 не запускался. Причина пока мне неясна — если найду, сразу же напишу. Скриншоты не привожу — и без того статья очень раздулась.

Еще я установил и запустил такие программы: XnView 1.61, ACDSee 5, Jasc Paint Shop Pro 6—8, CoolPlayer 2.14, SoundForge 6.0 и еще десятка два разных программ. Кстати, скорость работы всех этих программ практически не отличается от скорости работы их же в Винде.

Так что, как вы видите, Wine — это очень неплохой и правильно развивающийся… наверное, все-таки эмулятор. И я думаю, что если разработчики не сойдут с правильного пути, то как минимум нужные нам программы из мира Windows мы сможем запустить под Линуксом, что будет, конечно же, Большой победой Линуксоидов.

Let It Be Linux & Windows Together!

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov