Автор Крис Касперски
Xakep, номер #021, стр. 021-036-1 Транссексуалы
"Настоящий мужчина должен поставить UNIX!". Правда, не совсем понятно зачем, но должен.
Нынче, если у тебя не стоит Линукс или бздя, - будь готов получить флейм на тему: Виндос-масдай, юникс фарева! Только, обычно, сами флеймщики сидят в 98-ых и юникс видели однажды: в халявном шелле на freeshell.org. Отказываться от виндов мы не будем, но и про *nix также не забудем: сегодня мы будем интегрировать *nix с win!
Понятное дело, в любом из нас больше крови сэра Баскервиля, чем в Windows оригинального кода UNIX, и любой фанатик этой самой UNIX презрительно спросит, а можно ли на Windows запускать UNIX-приложения? Нет? Нет, вот и славненько!
Легко сказать - "поставь UNIX". То есть поставить-то его, конечно, дело нехитрое, много по этому делу бумаги исписано, и с помощью пива и чьей-то мамы погрузить UNIX на свой компьютер - дело одного часа.
Но что потом с этим зверем делать? Антрацитово-черный экран и мерцающий курсор, очевидно ждущий команды. Но какой команды? Тут бы недурно в Интернет зайти, туториал почитать, ан нет - треска хвостом вперед, это только в Must Die все делается щелчком мыши, а в UNIX без гуру и ящика пива с этой проблемой не справиться.
Вот было бы хорошо запустить UNIX в окне Windows! А почему бы и нет? Забавно, но это действительно можно, причем не какой-нибудь эмулятор UNIX типа тренажера для начинающих, а самый что ни на есть полноценный UNIX, на котором хоть Apache сервер гоняй!
Вообще-то, если честно, Windows очень трудно научить правильно обращаться с исполняемыми файлами UNIX - ну анатомия у нее не та. Если кому такой фокус и удастся, все будет жутко тормозить и часто падать. Но не беда - ведь UNIX-программисты никогда не зажимают исходники, остается только перекомпилировать и все. Ха, тоже мне сказали - "и все". Да любой Windows компилятор скорее подавится, чем проглотит такой исходник. А если и проглотит - работать все равно ничего не будет.
Разработать такой компилятор, который бы работал в Windows и пережевывал бы исходные тексты от UNIX, впервые решился Дэвид Корн - и, представьте себе, разработал! Компания AT&T (в которой он работает) пробовала наложить на это дело лапу, но Дэвид как настоящий программист отстоял за собой право распространять продукт бесплатно.
Действуем
Зайдем на его домашнюю страничку (http://www.research.att.com/sw/tools/uwin), кликнем по ссылке Download - и, ответив на множество пикантных вопросов (о поле, возрасте и месте проживания), попадем, наконец, на список предлагаемых файлов, которых так много, что немудрено и растеряться. Если ты не разработчик и не собираешься программировать под UNIX (а если ты программируешь под UNIX, с чего бы это Windows оказалась на твоем компе?), то достаточно скачать лишь один из них - "uwin_base.win32.i386.exe" - восемь с хвостиком мегабайт и заплатку, исправляющую многие ошибки - "uwin_base_update2_1.win32.i386.exe" - чуть больше двух мег. Также нелишне разжиться хотя бы одной интерактивной оболочкой. Недурно зарекомендовал себя Mortal Commander - клон Norton Commander, написанный специально для UNIX. Без него пришлось бы общаться одной командной строкой и постоянно помнить множество мудреных команд. Скачать его можно со следующего FTP сервера - ftp://ftp.xraylith.wisc.edu/pub....tar.gz. Несмотря на "закрученное" расширение, с архивом вполне успешно справляется обыкновенный WinZip32.
Установка UWIN, а именно так называется творение Дэвида Корна, никаких проблем не вызывает. Не нужно специальным образом конфигурировать соединение с Internet или возиться с драйверами принтера или монитора - UWIN с умом использует ресурсы Windows и не потребует дополнительной настройки. Можно даже поставить X-Windows, и тогда редкий поклонник UNIX разберется, в какой операционке ты работаешь.
Разве это не круто? Попробуй-ка, предложи лучший способ обучиться работать с UNIX! А какой простор открывается для всевозможных атак! Ведь большинство эксплоитов, то есть, говоря научным языком, программных реализаций атак, а по-простому всяких там нюков, работают исключительно в среде UNIX и наотрез отказываются дружить с Windows. Так вот, UWIN - лучший способ это сделать!
Правда, вот в чем незадача - все новые нюки лежат на rootshell в виде файлов с расширением 'c', то есть пока их не откомпилируешь, о запуске нечего и думать! А компилятор где? Вновь лезем на сайт Дэвида Корна и скачиваем файлик "uwin_development.win32.i386.exe" - чуть меньше четырех мегабайт. Правда, это не весь компилятор, а только набор заготовок, помогающий Windows-компиляторам преодолеть паралогическую невосприимчивость к UNIX. Выходит, надо вставать, надевать сапоги и чесать на Mitin0 BaZaR и докупать диск с любым Windows-компилятором. Можно, например, Visual Studio от Microsoft или Turbo C от Borland, а можно и то и другое сразу - на всякий случай, как говорят.
Компилятор
Хорошо, а как компилировать-то? Дэвид не очень-то подробно это описывает, да вдобавок на английском языке, попробуй тут разберись после пятого пива! Тээкс, сперва надо запустить 'cc' (для Microsoft Visual Studio) или 'bc' (для Borland Turbo C), следом за ним указав имя файла, например, так: "cc land.c", где land.c - имя файла, который надо откомпилировать. Если все пройдет успешно и не будет никаких ругательств на недостающие включаемые файлы, образуется "land.o", то есть объективный файл. Он еще не готовый для запуска - прежде его необходимо слинковать. А для этого существует утилита 'ncc'. Запускаем ее 'ncc land.o' и... получаем ругательство, дескать, того тут нет, этого тут нет и, вообще, еррор такой-то, и ничего линковать не буду. Значит, линкер не может найти библиотеки - открываем каталог "lib" и попробуем подключить их самостоятельно, указав после имени файла - 'ncc land.c ast.lib posix.lib'. Сработало? Неужели и на этот раз нет? Тогда вместе с нюком должен поставляться make-файл, так и называющийся 'make' или 'makefile', - обработаем его утилитой 'nmake', ("nmake makefle"), и уж на этот раз наверняка все получится - но, к сожалению, не все нюки распространяются с make-файлом.
Полученный файл не обязательно запускать из среды UWIN, ничуть не хуже он будет работать будучи запущенным из "проводника" Windows или, скажем, FAR-навигатора. Но если попытаться одолжить его приятелю, то у него ничего не получится, программа поругается и потребует наличия двух файлов - astxx.dll (где xx - номер версии UWIN) и posix.dll - оба они находятся в каталоге "WINDOWS\SYSTEM".
Альтернатива
Разумеется, UWIN не единственное творение в своем роде. В сети можно найти просто прорву аналогичных примочек. Ну, например, большую популярность завоевал известный CYGWIN (http://www.cygnus.com/misc/gnu-win32/). Он полностью бесплатен, распространяется вкупе с исходниками, но... требует глубоких знаний UNIX и умения программировать. Одна только установка чего стоит - на ftp архиве лежит множество всякой всячины, и приходится самому разбираться, что нужно, а что нет. В минимальную поставку CYGWIN входит лишь обертка UNIX, и ничего больше. Ладно, качаем несколько сотен мег софта на свой винчестер - там разберемся, что для чего предназначено. Таки ведь нет - не все так просто запускается! Приходится запасаться пивом и садиться изучать исподники, исправляя ошибки, по халатности оставленные авторами, - зачем все эти заморочки, когда можно юзать готовый UWIN?
DNS
А потом - вместе с UWIN распространяется и компактный DNS сервер. Зачем он нам? Конечно, если подключиться к дорогому шустрому провайдеру - то незачем. А вот вся халява связана с большими тормозами. Как повысить скорость соединения, не платя лишнего? Очень просто - обзавестись собственным DNS. Порой это увеличивает скорость лазанья по WEB-страничкам на 20%-50% - и главное, совершенно бесплатно. Правда, комфортная работа потребует, по крайней мере, тридцати двух метров мозгов на твоей машине.
Итак, UWIN дает возможность изучать UNIX, не отказываясь от мира WINDOWS, запускать многочисленные боевые проги, не работающие с обычной Windows, установить собственный DNS сервер, повысив скорость соединения с Internet, наконец, просто ощутить себя настоящим мужчиной, не понаслышке знакомым с UNIX.