Как запускать UNIX приложения под Windows
O В этой главе:
O Отличия между UNIX и Windows
O Перенос приложений с UNIX на Windows
O Техника эмуляции UNIX
O Различия между дескриптором и обработчиком
O Различия в реализации процессов в UNIX и Windows
O Имитация вызовов fork и exec
O Эмуляция сигналов
O Отличия в реализации кучи
O Различие наклона черты-разделителя каталогов
O Наименования стандартных устройств в UNIX и Windows
O Имитация чувствительности к регистру в наименовании файлов
O Отсутствие поддержки сырых гнезд в Windows
O Сравнение эмуляторов UWIN и CYGWIN
"…ты выбрал самый трудный путь для того, чтобы взобраться сюда. Иди за мной, я покажу тебе самый легкий путь"
Открытость исходных текстов большинства UNIX-приложений чрезвычайно облегчает их анализ на предмет поиска дыр, - разве можно сравнить это с утомительным дизассемблированием кода Windows NT?
Однако простой визуальный просмотр распечаток - крайне неэффективный и трудоемкий метод исследования. Разумнее установить на компьютере UNIX и прогонять код под отладчиком. В любом случае UNIX потребуется для получения навыков работы с командными оболочками. Позже это пригодится для удаленного запуска программ и управления своим акаунтом на сервере.
Современные версии UNIX снабжены достаточно грамотными программами инсталляции, и в большинстве случаев установка никаких проблем не вызывает. Но… может «скушать» до пятисот мегабайт дискового пространства, и уж наверняка потребует перекройки таблицы разделов, - а гарантировать сохранность информации разработчики, естественно, не собираются. Резервироваться? Уж лучше купить новый жесткий диск!
Но можно пойти и другим путем - воспользоваться утилитами, позволяющими запускать UNIX приложения прямо из-под Windows! Написать полноценный эмулятор UNIX теоретически возможно, правда, вряд ли кому-то удастся добиться хорошей производительности. Да и зачем? Исходные тексты большинства приложений доступны, - остается перекомпилировать их под новую платформу и все! Но на самом деле это далеко не так просто, как может показаться на первый взгляд. Архитектуры UNIX и Windows в целом очень близки, но незначительные отличия не позволяют запустить «чужой» код без существенной переработки программы.
Поэтому, приходится выкручиваться иначе, - добавлять к Windows еще одну библиотеку, сглаживающую различия системных функций обоих операционных систем. Именно так и поступил Дэвид Корн (автор известной одноименной оболочки), создатель UWIN.
На рисунке 041 на первый взгляд изображен знаменитый “Norton Commander” но, присмотревшись внимательнее, можно различить «неправильный» [78] символ-разделитель каталогов. Да, это “Midnight Commander”, - Norton для UNIX.