Версия для печати

-   Объединенный Открытый Проект
--  Решение проблем совместимости /index.php?f=50
--- Эмуляторы Unix – UWin, CygWin и MinGW /index.php?t=410



Автор статьи: XXXX Pro (admin@xxxxpro.ru)
Первоисточник:


Бывают ситуации, когда требуется запустить какую-либо программу, написанную под *nix-подобные системы (например, различные виды Linux, FreeBSD, OpenBSD), или протестировать, как будет работать CGI-скрипт на Unix-сервере, или просто научиться работать с Unix-системами, но при этом нет возможности поставить какую-нибудь Unix-подобную операционную систему. В этом случае можно воспользоваться эмуляторами Unix, которые позволяют компилировать написанные для *nix-систем программы из исходных текстов и запускать их под Windows. Наиболее известные из подобных эмуляторов - это UWin (http://xxxxpro.ru/index.php?t=406), CygWin (http://xxxxpro.ru/index.php?t=405) и MinGW (http://xxxxpro.ru/index.php?t=404).

UWin (http://xxxxpro.ru/index.php?t=406) лучше всего подходит для пользователей, впервые столкнувшихся с Unix-подобными системами из-за простоты его установки и использования. UWin состоит из трех частей.
Первая часть является главной и содержит набор утилит, полностью аналогичных утилитам системы Unix, а также несколько программ-оболочек: bash, csh, zsh. Если UWin используется только для обучения основам Unix, то, как правило, установки первой части бывает достаточно.
Вторая часть UWin содержит библиотеки и заголовочные файлы, необходимые для компиляции программ из исходных текстов. Она необходима только в том случае, если пользователь собирается компилировать Unix-программы для запуска их под Windows.
Третья часть UWin содержит интерпретатор языка Perl и набор основных модулей для него. Эта часть будет полезна для тех, кто разрабатывает скрипты для Perl и предназначенные для выполнения в Unix-системах с учетом всех особенностей системы (чаще всего это скрипты для сайтов).

UWin полностью эмулирует файловую систему Unix на NTFS, и с некоторыми ограничениями (в частности, нельзя задавать права доступа к файлам) - на FAT и FAT32. Файловая система отображается в UWin следующим образом: корневым каталогом (root, /) становится тот каталог, в который установлен сам UWin. В корневом каталоге находятся подкаталоги /bin, /usr, /lib, /var, /proc и /tmp. Все Windows-диски также отображаются в корневой каталог как подкаталоги /c, /d, /e (и т.д.). Каталог, в который установлен Windows, монтируется как /win, его подкаталог SYSTEM32 - как /sys. UWin позволяет также осуществлять доступ к реестру Windows, монтируя его как /reg.

Главным недостатком UWin является отсутствие собственного компилятора. Однако несколько способов скомпилировать программы в нем все же имеются:
1. С помощью встроенной утилиты cc, которая вызывает обычный компилятор языка C для Windows. По умолчанию в качестве него используется Microsoft Visual C Compiler, однако в документации к UWin сказано, что можно использовать Borland C Builder и некоторые другие компиляторы (путь к компилятору задается в переменной PACKAGE_cc, а тип компилятора определяется наличием в пути ключевого слова, т.е. если используется Borland-компилятор, то в пути к нему обязательно должен быть каталог borland).
2. С помощью компилятора GCC (в составе MinGW или отдельно).

Другим эмулятором Unix является программа CygWin, которая значительно более известна, чем UWin, и обладает более широкими возможностями. Кроме того, под него существуют бинарные версии почти всех Unix-программ.

Установка CygWin (http://xxxxpro.ru/index.php?t=405) сделана по тому же принципу, что и установка *nix-системы: вы можете выбрать те пакеты программ, которые вам необходимы. Для установки CygWin необходимо скачать небольшую программу-инсталлятор и запустить ее. Далее вам будет предложено выбрать одно из действий: установить пакеты программ из Интернета, скачать пакеты для установки или установить пакеты с локального диска. Если выбрать один из двух вариантов, появится список FTP-серверов, с которых можно скачать CygWin. После того, как вы выберите один из них, появится список всех доступных пакетов, из которых вы должны выбрать необходимые (причем если доступно несколько версий, то вы можете выбрать именно ту, которая вам нужна, и указать, установить ее в виде бинарника, т.е. exe-файла или в виде исходника).

Такой способ установки значительно удобнее для тех, кто имел дело с Unix-подобными системами и знает, какие пакеты необходимы для тех или иных задач, но у начинающих пользователей это может вызывать некоторые затруднения, поэтому им для ознакомления рекомендуется устанавливать UWin.

Поддержка файловой системы в CygWin реализована точно также, как и в UWin, однако Windows-разделы по умолчанию монтируются не в корень, а в подкаталог cygwin, т.е. диски C: и D:доступны как /cygwin/c, /cygwin/d, но при необходимости это можно изменить с помощью команды mount.

Для того, чтобы иметь возможность компилировать исходники Unix-программ, необходимо установить gcc (бинарную версию), набор стандартных библиотек, и утилиту make. После этого компиляция большинства программ не должна вызывать проблем (дополнительную информацию про то, как компилировать программу, можно найти в файлах README и INSTALL, входящих в дистрибутив программы).

Для того, чтобы запустить скомпилированную с помощью CygWin программу на другом компьютере, необходимо скопировать на него (в %windowsdir%\SYSTEM32, где %windowsdir% - это каталог, в который установлен Windows) файл cygwin1.dll (обычно он находится в подкаталоге bin каталога с CygWin).

Пакет MinGW (http://xxxxpro.ru/index.php?t=404) правильнее назвать не эмулятором Unix, а Unix-компилятором для Windows. В отличие от UWin и CygWin, он не включает в себя оболочек и стандартных утилит, а содержит только компилятор GCC, утилиту make и набор стандартных библиотек и заголовочных файлов, которые необходимы для компиляции Unix-программ. Главное достоинство MinGW заключается в том, что он представляет собой единый пакет, в котором сразу собрано все необходимое, поэтому если вам требуется только компиляция Unix-программ, то MinGW32 может оказаться самым простым и удачным выбором.

Скачать основную часть UWin (http://xxxxpro.ru/index.php?t=406)
Скачать UWin development package (http://xxxxpro.ru/index.php?t=407)
Скачать UWin Perl Package (http://xxxxpro.ru/index.php?t=408)
Скачать CygWin (http://xxxxpro.ru/index.php?t=405)
Скачать MinGW (http://xxxxpro.ru/index.php?t=404)



2001-2008, 4X_Pro, Объединенный Открытый Проект.
При использовании материалов сайта ссылка на первоисточник обязательна.
Если первоисточник не указан явно, им следует считать Объединенный Открытый Проект.
Этот форум работает на скрипте Intellect Board
© 2004-2007, XXXX Pro, Объединенный Открытый Проект http://intboard.ru