Архивы: по дате | по разделам | по авторам

Не по прямому назначению

Архив
автор : Максим Отставнов   16.05.2001

Программное решение, придуманное для облегчения жизни разработчиков, неожиданно оказалось полезным массовому пользователю, мигрирующему на современные платформы. Освоить оболочку и большинство утилит, используемых с ядрами Linux, BSD и других открытых систем, можно сегодня не выходя из MS Windows.

Программное решение, придуманное для облегчения жизни разработчиков, неожиданно оказалось полезным массовому пользователю, мигрирующему на современные платформы. Освоить оболочку и большинство утилит, используемых с ядрами Linux, BSD и других открытых систем, можно сегодня не выходя из MS Windows.

Команда Cygnus Solutions, ныне влившаяся в ряды разработчиков RedHat Software, Inc., занята обслуживанием потребностей разработчиков, а не конечных пользователей программного обеспечения. Ее основной продукт - свободный комплект разработчика GNUPro, точнее, услуги по поддержке пользующихся им разработчиков (подробнее см. врезку).

Но одно из средств, созданных в ходе разработки GNUPro, - виртуальный экзекутор (исполняющая подсистема) открытой ОС под Microsoft Windows, - обретает все большую популярность и за пределами программистского цеха.

Дело в том, что средствами Cygwin - так называется это чудо - под MS Windows портирован не только комплект инструментального ПО для программистов, но и большое количество утилит и программ общего назначения, и, стремясь предоставить разработчику привычную среду, Cygnus большинство из них включала в очередные релизы поставки. В какой-то момент количество перешло в качество, и сегодня с помощью Cygwin можно использовать практически полный комплект утилит, характерных для открытых систем.

Эта дополнительная возможность быстро нашла соответствующую потребность. Сегодня массовый пользователь с энтузиазмом осваивает открытые системы, и значительное число новичков - мигранты из-под MS Windows. Миграция сама по себе, учитывая груз унаследованных навыков, - непростое дело. Если она управляемая, то есть проводится в офисе с грамотным администратором, предоставляющим настроенную среду и готовым помочь советом, большинство сложностей купируется.

Мигрирующие же дома и в одиночку зачастую оказываются жертвами так называемого First Fortnight Syndrome - несмотря на весь энтузиазм, в течении примерно полумесяца они толком не могут освоить пользовательские действия, поскольку в их распоряжении нет стабильной настроенной системы, а настроить систему они не могут, поскольку не владеют в должной мере ее интерфейсом. Воплями несчастных, попавших в этот заколдованный круг, заполнен не один форум на Linux-сайтах, а ведь Cygwin дает возможность освоить системный интерфейс на пользовательском уровне еще до своей установки.

Кроме утилит пользовательского уровня, здесь же полный GNU-комплект разработчика, включая редактор vim, компилятор gccgcc++ и g77), ассемблер, отладчик (с графической оболочкой), компоновщик и все-все-все [6], а чтобы GNU-средств не показалось мало, еще Perl и Tcl.

Новшество версий 1.x (до этого они нумеровались Bxx) - в аккуратном инсталляторе, позволяющем подгружать (ставить прямо из Сети или копировать на локальный носитель) новейшие или стабильные версии только тех компонентов, которые нужны (включая или исключая, наряду с исполняемыми, и их исходные коды), что весьма нелишне, так как общий «вес» архивов с одними исполняемыми модулями приближается сегодня к 50М, а в развернутом виде - к полутора сотням мегабайт.

Установка тривиальна, и особых комментариев не требует. В ее ходе в выбранном каталоге создается стандартная для *nix иерархия каталогов, в которых размещаются исполняемые файлы, скрипты, файлы настройки, библиотеки и т. д. - см. любую хорошую книжку по Unix или Linux. Сам по себе Cygwin представляет собой несколько динамических библиотек, транслирующих стандартные POSIX-вызовы в вызовы системного интерфейса Win32.

Помимо стандартного набора утилит и стандартной файловой структуры, под Windows NT/00 Cygwin воспроизводит еще и стандартное управление владением файлов и доступом к ним (под 9x/ME все это практически игнорируется, чему ряд программ несказанно удивляется).

Большинство утилит и программ можно использовать непосредственно в среде MS Windows (хотите tar, gzip или wget?), а можно запустить оболочку bash (или tcsh) и оказаться, таким образом, в пользовательской сессии полноценной системы - за штурвалом тренажера, так сказать. Теперь можно взять упомянутую Хорошую Книжку (обзор новой русской литературы по Linux см. в #379, c. 58; см. также «Библиотечку юниксоида» у Максима Мошкова) и начинать изучение оболочки, основных механизмов пользовательского интерфейса (перенаправление ввода/вывода, конвейеры, переменные среды окружения), базовых утилит, управления процессами и прочей «премудрости»… С удивлением обнаруживая, что это занимает не более 15-20 часов учебы, которые обернутся экономией сотен часов и километров нервных волокон при «настоящей» миграции.

Следовые количества дегтя в этой цистерне меда: на сегодня Сygwin в базовой поставке не поддерживает локализацию - не разумеет кодовых таблиц при выводе и не позволяет вводить не-ASCII-символы.

Кроме поставляемых с Cygwin инструментов и утилит, он использован для переноса под MS Windows и другого программного обеспечения, например, GIMP (в статье про GIMP в #383 за этот год (см. сс. 40-41) Windows-порту посвящена отдельная врезка), IMAP tools и, чем особенно гордится команда, двухсотпятидесятитысячестрочного Kerberos 5.

Возможно, массового пользователя больше впечатлит порт графической среды XFree86. C выходом версии 4.0.1 основанный на Cygwin Win32-код без особой помпы вошел в основное дерево разработки, а сама MS Windows - в число поддерживаемых платформ. Но это совсем другая сказка.

Врезка 1. Cygnus Solutions, GNUPro и Cygwin
Врезка 2. Аннотированная Web/библиография

[i39550]

Cygnus Solutions, GNUPro и Cygwin

Cygnus Solutions - первая, а до начала бума Linux и крупнейшая - компания, чей бизнес построен на поддержке свободного программного обеспечения.

Основанная в 1989 г. Майклом Тиманном, Дэвидом Хенкел-Уоллесом и Джоном Гилмором (Michael Tiemann, David Henkel-Wallace, John Gilmour), компания сосредоточилась на развитии свободного инструментального софта и поддержке его пользователей.

Сформированный инженерами компании пакет GNUPro, основанный на разработках Фонда свободного программного обеспечения в рамках проекта GNU, обеспечил единую кроссплатформную инструментальную среду для более чем ста свободных и проприетарных операционных систем [6.6]. При разработке варианта под Microsoft Windows архитекторы выбрали путь эмуляции POSIX-экзекутора, откуда и появился Cygwin [2].

Основные клиенты - разработчики встроенного программного обеспечения.

Из других разработок Cygnus наиболее известна свободная ОС для встроенных приложений eCos.

В 2000 г. Cygnus приобретена компанией RedHat Software и составила инженерный костяк последней.

Аннотированная Web/библиография

  1. Cygwin и другие проекты Cygnus Solutions расположены нынче на http://sources.redhat.com.

  2. Geoffrey J. Noer. Cygwin: A Free Win32 Porting Layer for UNIX® Applications // 1998 USENIX Windows NT Workshop Proceedings. Ранняя статья, живо описывающая архитектуру Cygwin и общий замысел проекта.

  3. Документация на Cygwin доступна на упомянутом сайте:

    3.1. DJ Delorie et al. Cygwin User’s Guide - Cygnus Solutions, 1999. Обзор возможностей, установки и использования Cygwin.

    3.2. DJ Delorie and Geoffrey Noer. Cygwin API Reference - Cygnus Solutions, 1999. Компактное описание особенностей реализации системных вызовов.

  4. Утилиты и библиотеки, входящие в поставку Cygwin, документированы стандартным образом; документация в форматах manpages и info включена в поставку.

  5. Michael Tiemann. Future of Cygnus Solutions: An Entrepreneur’s Account // Open Sources: Voices from the Open Source Revolution - O’Reilly: 1999, ISBN 1-56592-582-3. Интроспективное описание бизнес-логики бизнеса, основанного на поддержке свободного программного обеспечения.

  6. Документация на GNUPro - две с половиной тысячи страниц хорошей английской технической прозы - доступна на сайте RedHat и включает следующие пять томов:

    6.1. Getting Started with GNUPro Toolkit - Cygnus Solutions, 1999 (Part #: 300-400-101000041-99r1)

    6.2. GNUPro Compiler Tools - Cygnus Solutions, 1999 (Part#300-400-10100042-99r1)

    6.3. GNUPro Debugging Tools - Cygnus Solutions, 1999 (Part#300-400-1010043-99r1)

    6.4. GNUPro Libraries - Cygnus Solutions, 1999 (Part#300-400-1010044-99r1)

    6.5. GNUPro Utilities - Cygnus Solutions, 1999 (Part#300-400-1010045-99r1)

    6.6. GNUPro Tools for Embedded Systems - Cygnus Solutions, 1999 (Part#300-400-1010046-99r1)

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.