Як з Windows зробити UNIX

"Справжній чоловік повинен поставити unix!" – Правда, не зовсім зрозуміло навіщо, але повинен. А покажіть мені людину, у якого не встановлено unix? Цікаво, але windows nt підтримує стандарт unix – posix і формально могла б бути віднесена до розряду численних клонів unix, якби дядя-Білл прагнув отримати цей гордий титул. Їжаку зрозуміло, скільки windows 9x не годуй, а у windows nt все одно товщі, але щось від unix і в дев'яносто п'ятому безумовно є.

Ясна річ, в будь-якому з нас більше крові сера Баскервиля, ніж у windows оригінальному коду unix, і будь-який фанатик цієї самої unix презирливо запитає, а чи можна на windows запускати unix-програми? Ні? Ні, от і славненько! Хто unix не поставив, той не чоловік, а, з дозволу сказати, ламер ганебний.

Легко сказати "постав unix". Тобто, поставити-то його, звичайно, справа не хитра, багато у цій справі папери списано, і за допомогою пива і чиєїсь мами занурити unix на свій комп'ютер справа однієї години.

Але що потім з цим звіром робити? Антрацитно-чорний екран і мерехтливий курсор, очевидно чекає команди. Але якої команди? Тут би не погано в Інтернет зайти, туторал почитати, ан-ні – тріска хвостом вперед, це тільки в must die все робиться шелчка миші, а в unix без гуру і ящика пива з цією проблемою не впоратися.

От було б добре запустити unix у вікні windows! А чому б і ні? Забавно, але це дійсно можна, причому не який-небудь емулятор unix типу тренажера для початківців, а самий що ні на є повноцінний unix, на якому хоч apache сервер ганяй!

Взагалі-то, якщо чесно, windows дуже важко навчити правильно поводитися з виконуваними файлами unix – ну анатомія у неї не та (мається на увазі формат виконуваних файлів і системні виклики, хоча це не відноситься до posix-викликам). Якщо кому такий фокус і вдасться, все буде моторошно гальмувати і часто падати. Але не біда – адже 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" – Трохи більше двох мегабайт. Також не зайве розжитися хоча б однієї інтерактивної оболонкою. Непогано зарекомендував себе midnight commander – клон norton commander, написаний спеціально для unix. Без нього довелося б спілкуватися однією командним рядком і постійно пам'ятати безліч мудрованих команд. Завантажити його можна з наступного ftp сервера – ftp://ftp.xraylith.wisc. edu/pub/khan/gnu-win32/uwin / ports/mc-4.1.35-uwin2.0.tar.gz. Незважаючи на "закручене" розширення, з архівом цілком успішно справляється звичайний winzip32.

Установка uwin, а саме так називається творіння Девіда Корна, ніяких проблем не викликає. Не потрібно спеціальним чином конфігурувати з'єднання з internet або возитися з драйвером принтера або монітора – Uwin з розумом використовує ресурси windows і не зажадає додаткового налаштування. Можна навіть поставити x-windows – і тоді рідкісний шанувальник unix розбереться, в якій операційці ви працюєте (це відноситься і до ніжеопісаному cygwin).

Хіба це не круто? Спробуйте-но, запропонуйте кращий спосіб навчитися працювати з unix! А який простір відкривається для всіляких атак! Адже більшість експлойтів, тобто, кажучи науковою мовою, програмних реалізацій атак, а по-простому всяких там нюков, працюють виключно в середовищі unix і навідріз відмовляються дружити з windows. Так ось, uwin – найкращий спосіб це зробити!

Правда, ось в чому біда – все нові нюкі лежать на rootshell у вигляді файлів з розширенням `c`, тобто, поки їх не откомпіліруешь, про запуск годі й думати! А компілятор де? Знову ліземо на сайт Девіда Корну і викачуємо файлик "uwin_development.win32.i386.exe" – трохи менше чотирьох мегабайт. Щоправда, це не весь компілятор, а тільки набір заготовок, що допомагає windows-компіляторам подолати паралогіческое несприйнятливість до unix. Виходить, треба вставати, надягати чоботи і чесати на Митино (чи як там у вас це називається?) І докуповувати диск з будь-яким 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` і … отримуємо лайку, мовляв, того тут немає, цього тут немає, і взагалі error такий-то й нічого лінковані не буду. Значить, лінкер не може знайти бібліотеки, – відкриваємо каталог "lib" і спробуємо підключити їх самостійно, вказавши після імені файлу – `ncc land.c ast.lib posix.lib`. Спрацювало? Невже і на цей раз немає? Тоді, разом з нюком повинен поставлятися make-файл, так і що називається `make` або `makefile` – Опрацюємо його утилітою `nmake`, ("nmake makefle") і вже цього разу напевно все вийде – але, на жаль, не всі нюкі поширюються з make-файлом.

Отриманий файл не обов'язково запускати з середовища uwin, нітрохи не гірше він буде працювати, запущений з "провідника" windows або, скажімо, far-навігатора. Але якщо спробувати позичити його приятеля, то у нього нічого не вийде, програма насвариться і вимагатиме наявності двох файлів – astxx.dll (де xx – номер версії uwin) і posix.dll – обидва вони перебувають у каталозі "windowssystem".

Зрозуміло, uwin не єдине творіння у своєму роді. У мережі можна знайти просто прірву аналогічних примочок. Ну, наприклад, велику популярність завоював відомий cygwin (http:// sources.redhat.com / cygwin /), розроблений cygnus solutions. Він повністю безкоштовний, поширюється укупі з исходниками, але … вимагає глибоких знань unix та вміння програмувати.

У попередніх версіях, звичайно, були труднощі з установкою даного продукту, але на даний момент є інсталятор, який дозволяє викачувати і / або інсталювати даний програмний продукт, використовуючи можливість роботи як з прямим з'єднанням, так і з з'єднанням через проксі-сервер. Єдина проблема виникає при виборі необхідних компонентів, тому що cygwin – це не лише обгортка unix, а ще й unix-like компілятор с / с + +, що відрізняється від uwin, який дозволяє працювати тільки з posix-викликами і не має власного компілятора. Викачуємо все необхідне, інсталятор встановлює дане творіння.

Єдина проблема полягає в тому, що cygwin `ом можна перенести безліч речей. Нещодавно з-за своєї ліні я не хотів перевантажуватися під linux і вирішив скомпілювати самопальний проксі-сервер cygwin `ом. Хочу зазначити, що даний проксік писався з розрахунком на те, що він буде працювати під linux і буде висіти демоном. Скомпілював, всі без помилок. Запустив – працює. Єдина проблема виникає при компіляції програм, сильно зав'язаних на використанні функцій ядра різних операційних систем, але більша частина додатків компілюється без особливих проблем, чого не можна сказати про ms visual c + +, тому що в його include-файлах відсутні або не збігаються процедури і функції з аналогічними в unix. Всі портірованний програми можна запускати і не з середовища cygwin, достатньо скопіювати cygwin1.dll в каталог windowssystem, і запускати їх, хоч з експлорера, хоч з far-менеджера.

А, до речі, разом з uwin поширюється і компактний dns сервер. Навіщо він нам? Звичайно, якщо підключитися до дорогого, спритний провайдера – то немає чого. А ось вся халява пов'язана з великими гальмами. Як підвищити швидкість сполучення, не сплачуючи зайвого? Дуже просто – обзавестись власним dns. Часом це збільшує швидкість лазіння по web-сторінкам на 20% -50% – і головне, абсолютно безкоштовно. Щоправда, комфортна робота потребуватиме, принаймні, тридцяти двох метром мізків на вашій машині, але якщо у вас менше – як ви взагалі примудряєтеся існувати в таких умовах? Є ще telnet і ftp сервера, які дозволяють вам на 100% відчувати себе як би під unix системою.

Отже, uwin і cygwin дає можливість вивчати unix, не відмовляючись від світу windows, запускати численні атакуючі програми, що не працюють із звичайної windows, встановити власний dns сервер, підвищивши швидкість з'єднання з internet, нарешті, просто відчути себе справжнім чоловіком, не з чуток знайомим з unix, хоча cygwin є просто сеансом роботи в unix-оболонці і не надає можливість використовувати dns, telnet, ftp, що можливо в uwin. Але все одно істинного unix `а чи unix-клону (linux, bsd, sco unix, solaris, irix, aix, hp-ux) вам ніхто ні за яких умов не замінить, тому що дуже багато відмінностей у структурі ядер windows і unix.

А зараз вибирайте, встановлювати uwin або cygwin на свій комп'ютер чи ні.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*