Як з Windows зробити UNIX, Windows, Операційні системи, статті

“Справжній чоловік повинен поставити 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 (у якій він працює) пробувала накласти на цю справу лапу, але Девід, як справжній програміст, відстояв за собою право поширювати продукт безкоштовно.

Зайдемо на його домашню сторінку (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>

*

*