Вопрос о работе win-программ при переезде в linux частенько волнует многих особо непросвещенных личностей. Многие, тупо попробовав набрать calc.exe в консоли и получившие хрен с маслом в ответ, делали вывод, что эти операционки, в общем-то, несовместимы. Вот такие стереотипы мы сейчас и будем разбивать.
Linux и Винда архитектурно очень разные системы, поэтому без посторонней помощи программа, написанная исключительно для одной, под другой запускаться категорически откажется, заругается и сдохнет.
Эмуляторы - это и есть та самая помощь, которые простимулирует нашу злополучную программку во все мыслимые и немыслимые отверстия с расчетом на то, что она все- таки заработает. Штуки эти, однозначно, полезные, но с множеством маленьких оговорок и пакостей, которые немного портят картину всеобщего счастья дружбы пингвиненка и форточки.
Эмуляция - вещь технически очень сложная для реализации, но для линукса с его открытыми исходными кодами и бесконечной поддержкой разработчиков написание такой штуки - более простая задача, чем создание его под win, по этой причине эмуляторов линукса для винды на уровне кода в природе не существует, да и сознание такового не предвидится.
Картина для пингвиненка абсолютно противоположная: программки из форточек частенько достаточно мирно сосуществуют с этим крылатым хищником, и эмуляторов для него просто предостаточно. Но из большой кучи всякого хлама не мешало бы выбрать те маленькие съедобные кусочки, более-менее подходящие для повседневного использования, так что давай приступим к разбору завалов и тестированию подворачивающихся под нашу тяжелую горячую руку пациентов.
Хотелось бы рассказать тебе о том, в чем заключалось все тестирование. За шкирку брался клиент, которого потом мы заставляли запускать требуемые приложения. Где- то в пределах статьи как-то неприметно валяется массивная таблица с результатами исследований.
К слову, на чем всё это тестилось: железо достаточно тухлое, но, по крайней мере, для работы под линуксом этого выше крыши: celeron333, разогнанный до 400 МГц, 192 Мб ОЗУ, нонейм видяха i740 8Мб без аппаратной 3D акселерации под линукс. Сам пингвин в детстве до моего вмешательства был RH7.1, сейчас это вообще непонятно что с XFree4.2.1, glibc2.2.5, qt3.0.3, kernel2.4.19. Вот такая вот птичка.
Теперь приступим непосредственно к самому обзору и тестированию.
[Wine]
Первый, да и, я думаю, самый глюкастый субъект для рассмотрения. Wine является одним из самых престарелых эмуляторов, но, несмотря на это, до сих пор находится в процессе написания. Это единственная программа такого рода, которая не достает тебя при установке и позволяет работать с win-приложениями как с обычными юниксовыми. Инсталляция - вообще настоящая лафа, только при конфигурации я бы посоветовал добавить ключик --enable-opengl, чтобы пулять в кваку впоследствии. А так сам процесс установки самый что есть стандартный, хотя, по словам некоторых разработчиков, не мешало бы обновить компилятор в твоей системе. Это вещь тоже не сложная, если ты будешь обновляться не при помощи rpm-ок, а из исходников. Лично у меня стоит gcc3.2, исходники которого весят 18 метров. Не такая уж страшная цифра, пережить можно. Только документацию прочитай сначала, прежде чем обновляться, а то полсистемы как ветром сдует.
Что-то мы сильно ударились в оффтопик, так что продолжим. Среди плюсов, помимо легкой установки, есть еще один - скорость. На моих железках второквака с softwareGL в 640х480 шла вообще без тормозов, приятно было играть. Конечно, врубив HardwareGL, наличествующий исключительно под win98, я стал свидетелем незабываемого слайд-шоу, где до показа следующего кадра можно хорошенько выспаться.
Основной проблемой эмулятора, я думаю, можно считать сложность с прикручиванием русских шрифтов. Не мешало бы написать им маленький мануальчик специально для тех оболтусов, которые предпочитают английским версиям программ свои, локализованные. А пока не все так гладко, как хотелось бы. Лично я заставил это чудо почти корректно запустить всеми любимый word97, но с одним условием - все шрифты в открытом документе пришлось менять на cronyx или на любое другое семейство с врожденной поддержкой koi8-r. Хотя можно попробовать прикрутить к wine шрифты pfa/pfb, в которых наличествует возможность перекодировки символов, хотя лично у меня это не получилось.
Теперь бы хотелось поведать тебе, как все это чудо работает и почему оно так глючит. Основная задумка разработчиков wine - написать своеобразный парсер для win-программ, который бы на лету вместо стандартных виндовских api-функций, подсовывал свои, линуксовые. Таким образом разработчики вот уже пять лет пыжатся, пытаясь написать тонны стандартных win-библиотек по-своему. Я думаю, накодить винду целиком не так просто, Микрософт этим уже 10 лет занимается, поэтому в эмуляторе существует такое количество глюков. Некоторые программки работают нормально, некоторые - с маленькими глюками, а некоторые либо виснут сами, либо вместе с x-windows, посему частенько приходится нажимать три волшебные кнопочки ctrl-alt-backspace. Конечно, x-win сами-то не зависают, просто эмулятор не дает тебе к ним подступиться.
Из тех приложений, которые мне удалось стартануть, числится даже контра с софтверной прорисовкой, которая безбожно тормозила, хотя, несмотря на это, круг почета по cs_militia я сделал.
Итог: бесплатный эмулятор для тех, кто просто хочет полюбоваться и понастольгировать, глядя на calc.exe. Для серьезных приложений он не подойдет. Возможно, через пару лет по своим возможностям он догонит своих конкурентов, а пока он только на подпевках. Серьезным плюсом является поддержка не только линукса, но и кучка разных BSD и солярок.
[win4lin]
Я всегда с некоторой опаской отношусь к коммерческим программам для линукса. Они просто противоречат всей концепции этой операционной системы с ее бесплатностью и открытостью, но что поделаешь, вокруг делает свое гадкое дело рынок, поэтому приходится напрягать извилину и делать из платной программулины бесплатную, правда не совсем легально :). Вся легальность лежит на astalavista.box.sk. Если эта легальность не заработает, то пиши мне, чего-нибудь придумаем.
Несмотря на свое коммерческое начало, win4lin однозначно заслуживает твоего внимания, так как в нем есть качества, которые начисто отсутствуют у его конкурентов. О них чуть позже, а сейчас коснемся самой пакостной части - установки. Я не хочу сказать, что установка этого чуда сложна. Да, для стандартных чистых установок RH, Slack, Debian и SuSe есть гуевый конфигуратор, который все должен сделать сам. Но чистый дистрибутив - это как значок "лох" на твоей груди, поэтому если ты хоть малость полапал свое ядро, то конфигуратор скажет, мол, асталависта, бейби, я вырубаюсь, ставь все в ручную, вот тебе линка. Очень подробно об установке я рассказывать не хочу, сам разбирайся, (на эту тему целую статью написать можно) я за одну ночь все заставил работать как надо, просто я расскажу об основных шагах этого занятного процесса.
1) Берем исходники любого 2.4.* ядра, патчим их специальным патчем, который ты найдешь на сайте разработчиков. Потом запускаем конфигуратор ядра и лезем в новый пункт меню "Windows support". Потом сохраняемся, компилимся, ставим новое ядро (как это делать, я думаю, ты знаешь, не маленький), перезагружаемся.
2) Качаем исходники модуля для ядра mki. Компилим, ставим, стартуем depmod -a, идем пить чай :)
3) Качаем rpm-ку с самим эмулятором, инсталлим.
4) Берем в зубы компакт с виндой (лучше с английской-98, меньше геморроя, т.к. иначе поддержку русской-98 придется прикручивать вручную. Я прикрутил, и этим горжусь :)) Смотри не возьми XP или 2000, они не поддерживаются совсем!
5) Пускаем команду loadwindowsCD, разбираемся, чего она хочет, и удовлетворяем ее требования.
6) А теперь самое интересное. в консоли, желательно НЕ из под root пускаем команду win. Если ты упадешь со стула и увидишь окошко "Установка Windows 98", то можешь открывать шампанское. Если что-то не заработало, то, значит, читай полтора мега мануалов и разбирайся.
Испугался? Но такой геморрой того стоит. Может быть, я тормоз, но все эти шесть пунктов, включая штудирование документации, я проделал к трем часам ночи (уже привычка вырабатывается по ночам работать). Если осуществишь все за полчаса, то ты просто молодец и гений.
Эмулятор работает по схеме, очень напоминающей алгоритм vmware, т.е. винда целиком стартует в окошке. НО (я не знаю, как этого добились) винда загружается всего секунд за 10-15, причём на моем фуфле. Помимо этого, работает она практически без тормозов. Единственное, что мне не удалось сделать - так это прикрутить русские имена файлов. Я все конфиги переворошил, но вместо "Мои Документы" вижу "___ _________". А, ну еще с сетью пришлось повозиться. Больше никаких проблем у меня не возникло, ворд работает, TheBat почту качает, квака бегает и ничего не глючит кроме самой винды, ведь это у нее врожденное.
Итог: навороченный эмулятор с очень запутанной установкой, но зато очень шустрый и безглючный. Подойдет почти для всех программ, кроме некоторых игр, так как с аппаратным OpenGL не дружит совсем. Подойдет даже для запуска таких монстров, как фотошлеп и dreamweaver - прожует, и даже не подавится. Если ты осилишь его установку, то, имхо, ничего другого ты использовать просто не будешь.
[vmware]
Еще один представитель бесконечной братии коммерческих программ под линукс, стоящих как небольшой компьютер. Вещь достаточно известная, даже наш журнал примерно год назад писал об этом чуде. vmware - это не совсем эмулятор, это есть оболочка, которая позволяет запускать в себе любую другую операционку (у меня даже BeOS заработала, правда ненадолго). Винды поддерживаются все, начиная от 3.1, и заканчивая разными .NET. Программа достаточно стабильная, да и возраст у нее уже не тот, чтобы падать каждые пять минут - уже несколько лет существует как-никак.
Программулина это коммерческая, поэтому без регистрации будет все время донимать тебя своими дебильными просьбами дать наконец-то разработчикам на пиво. Можешь не пугаться, лекарство-серийник для этого чуда имеется, и лежит он, я думаю, ты догадываешься где.
Поскольку данный пациент работает не с модифицированной под себя операционкой, а такой, на какую его натравили, скорость у него заметно ниже предыдущих наших с тобой клиентов, но с другой стороны не нужно заново настраивать под себя винду целиком (как в случае с win4lin) или не требуется бороться с вечными глюками (как в wine). Ты увидишь свою операционку абсолютно такой же, какая она и есть на самом деле, если бы ты загрузился под нее безо всяких эмуляторов.
В общем-то, это и не эмулятор в чистом виде, каким ты его представлял, но задачи на нем можно выполнять те же.
Итог: штуковина для тех, кому лень возиться с настройками и глюками, и для обладателей мощных компов, т.к. памяти эта прога жрет немерено - если у тебя меньше 96 Мб, то лучше и не пробуй, только лишний раз расстроишься. Все работает стабильно, но очень уж медленно. Наблюдались странные глюки с мышкой во второкваке.
Какой из этого следует вывод? Что же выбрать для повседневных нужд? Тут все зависит от тебя и конфигурации твоего компа - если ты в линухе чувствуешь себя как дома, а комп слабоват, то для тебя подойдет win4lin. wmvare - для людей с прямо противоположной картиной. Ну а wine? Как же это чудо? Его я могу посоветовать лишь маньякам - его глюки, торчащие изо всех отверстий еще не позволяют работать с ним серьезно. Хотя, я думаю, у него есть очень радужные перспективы перед своими коммерческими собратьями, если его доведут до ума в течение нескольких лет.
Я думаю, теперь тебе все ясно. Сидеть в линухе и печатать свою бредятину в word'e - это не несбыточная мечта, а реальность. Потребуется лишь немного терпения и свободного времени и все получится! Хотя если возникнут вопросы, пиши - мне или в unix-faq - поможем кто чем.