Россия, Москва, Московский Государственный Открытый Университет, 2007 |
Cygwin
Выполнение приложений
То, что вы сможете делать с использованием Cygwin, зависит от того, какие пакеты вы там установите. Познакомимся с некоторыми наиболее интересными примерами.
Выполнение Windows приложений
Вы можете не только выполнять Unix/Cygwin-приложения, но и запускать родные Windows-приложения из командной строки, как это показано ниже.
Кое-что вы можете делать и с графическими приложениями.
Создание программ в Windows
Что можно сделать еще? Если вы установите GCC, GDB, make, и Binutils, то сможете получить бесплатную Windows-среду для разработки C/C++ приложений. Это конечно не Microsoft's Visual Studio, но зато и не так дорого. Вот пример компиляции и выполнения простой программы на C.
Выполнение Perl-скриптов
Хотя Perl-программы доступны для Windows, многие из них не бесплатны. Cygwin дает возможность свободного исполнения Perl-скриптов на вашей Windows-машине. Чтобы показать, что это возможно, я написал пример скрипта, который берет числа (по любому основанию от 2 до 16) и преобразует их в числа с другим основанием (от 2 до 16). В этом примере я преобразовал число 435 в десятичной системе счисления в шестнадцатеричную систему.
Полезные Unix-утилиты
Теперь у вас есть доступ к миллионам полезных Unix-утилит внутри Windows, многие из которых могут быть полезны системным администраторам или специалистам по сетевой безопасности. Вот лишь некоторые из них.
- grep. Поиск файлов на основе регулярных выражений.
- sed. Потоковый редактор, удобный для выполнения операций поиска и замены.
- strings. Извлечение отображаемых ASCII строк из двоичных файлов; хорош для документов Word в случае, если у вас не установлен MS Office.
- strace. Трассировка системных вызовов и сигналов; показывает, какие системные вызовы и сигналы порождает и получает приложение.
- md5sum. Обеспечивает проверку контрольной суммы файла для обеспечения гарантии авторизации и защиты от подделки.
- diff. Сравнивает два файла.
- patch. Использует результаты работы команды diff, чтобы сделать файл file1 таким же, как file2.
XFree86 для Cygwin
Вы можете даже запустить X Window внутри Cygwin. Во-первых, вам следует обратиться к http://cygwin.com/xfree/ и выбрать зеркало для скачивания двоичных файлов X Window. Вы можете использовать NcFTP под Cygwin (если он установлен) для доступа к зеркалу и перехода к директории cygwin/xfree/binaries/4.20 и загрузки всех файлов во временную директорию (мы используем /home/bjohnson/xfree/ ). Как только загрузка завершится, вам понадобится распаковать программу, которую вы скачали, а затем выполнить скрипт Xinstall.sh. Ниже приведены команды подготовки к инсталляции XFree86 для Cygwin.
bjohnson@BRADMAN ~/xfree$ ls FILES Xetc.tgz Xfsrv.tgz Xnest.tgz extract.exe.gz Install Xf100.tgz Xhtml.tgz Xprog.tgz gnu-tar README Xfcyr.tgz Xinstall.sh Xprt.tgz md5.sum RELNOTES Xfenc.tgz Xjdoc.tgz Xps.tgz startup-scripts.tgz Xbin.tgz Xfnts.tgz Xlib.tgz Xvfb.tgz Xdoc.tgz Xfscl.tgz Xman.tgz Xxserv.tgz bjohnson@BRADMAN ~/xfree $ gunzip extract.exe.gz bjohnson@BRADMAN ~/xfree $ cp extract.exe /bin/ bjohnson@BRADMAN ~/xfree $ ./Xinstall.sh
После запроса подтверждения XFree86 начнет распаковывать требуемые файлы.
Installing the mandatory parts of the binary distribution == Extracting /home/bjohnson/xfree/Xbin.tgz == == Extracting /home/bjohnson/xfree/Xlib.tgz == == Extracting /home/bjohnson/xfree/Xman.tgz ==
В заключение вас спросят, хотите ли вы установить дополнительные компоненты. Если вы не уверены, нужно вам это или нет, выбирайте значения по умолчанию (в скобках).
Checking for optional components to install ... Do you want to install Xfsrv.tar.gz (font server) (y/n) [y] == Extracting /home/bjohnson/xfree/Xfsrv.tar.gz == Do you want to install Xnest.tar.gz (Nested X server) (y/n) [y] == Extracting/home/bjohnson/xfree/Xnest.tar.gz ==
После завершения инсталляции необходимо разархивировать в /usr/X11R6/bin файл startup-scripts.tgz из директории, в которую загружались файлы.
bjohnson@BRADMAN ~/xfree $ cd /usr/X11R6/bin/ bjohnson@BRADMAN /usr/X11R6/bin/ $ tar zxf /home/bjohnson/xfree/startup-scripts.tgz
Вы закончили! Теперь наберите в командной строке /usr/X11R6/bin/startxwin.sh, и вы должны увидеть примерно то же самое, что изображено на рис. 5.3.
Вы сможете найти множество X Window-программ, которые устанавливаются вместе с XFree86 в директории /usr/X11R6/bin. Некоторые другие X Window-пакеты также доступны, но XFree86 для Cygwin - относительно новый продукт. Также можно загрузить оконный менеджер вроде KDE, Gnome, или Window Maker, каждый из которых доступен для Cygwin (См. http://cygwin.com/xfree/).
Пример из жизни. Использование Unix в среде Windows
Кен работает в компании, разрабатывающей программное обеспечение. Когда он учился в колледже, то преимущественно пользовался Solaris и IRIX, а в этой компании используются только станции Windows 2000. Кену удалось убедить системных администраторов разрешить ему инсталлировать Cygwin, чтобы он мог использовать некоторые полезные средства Unix: bash, diff, sleep, vi, lynx, grep, less, md5sum и NcFTP. Кроме того, он использовал утилиты Cygwin cvs и sshd, чтобы установить безопасное хранилище Concurrent Versions System ( CVS ) для контроля версий кода, над которым он и его отдел работают. Он также использует Rsync, чтобы следить за хранилищем CVS на другом сервере, на случай, если что-то произойдет с его машиной. Интерпретатор Cygwin's Perl и операционная оболочка GNU также дают Кену возможность компилировать Unix-код <Cygwin-ized> в системе Windows. Одно из увлечений Кена - сетевая безопасность. Он надеется взять Unix-утилиты, такие, как nmap, и использовать подсистему Cygwin, чтобы иметь возможность работать с ними в Windows.
Кен понимает, что, скорее всего, системы Windows будут доминировать в корпоративной рабочей среде. Помогая в разработке многих Unix-приложений, которые также могут запускаться в Windows с помощью Cygwin, он надеется построить мост между двумя сообществами так, чтобы средства Windows и Unix могли безболезненно работать в комбинации в одной системе (и без дополнительных затрат).