Cygwin

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск
Cygwin
Cygwin на Windows XP
Тип Эмулятор
Разработчик Red Hat и другие
Написана на C/C++
ОС Microsoft Windows, Windows NT
Версия 1.5.25-15 — 14 июня, 2008
Лицензия GNU GPL
Сайт www.cygwin.com

Cygwin (произносится /ˈsɪgwɪn/)[1] — набор свободных программных инструментов разработанных фирмой Cygnus Solutions, позволяющих превратить Microsoft Windows и Windows NT различных версий в некоторое подобие UNIX-системы. Изначально Cygwin задумывался как среда для переноса программ из POSIX-совместимых операционных систем (таких как GNU/Linux, BSD и UNIX) в Windows. Программы, портированные с помощью Cygwin, работают лучше всего в Windows NT, но в некоторых случаях годятся и Windows 9x. В настоящее время проект Cygwin разрабатывается сотрудниками Red Hat и другими программистами.

Подобные функциональные возможности предлагает также и Microsoft в своём пакете Services for UNIX, включающем в себя подсистему Interix.

Содержание

[править] Описание

Cygwin представляет собой библиотеку, которая реализует интерфейс прикладного программирования POSIX на основе системных вызовов Win32. Кроме того, Cygwin включает в себя инструменты разработки GNU для выполнения основных задач программирования, а также и некоторые прикладные программы, эквивалентные базовым программам UNIX. В 2001 году в Cygwin был включён пакет X Window System.

Кроме того, Cygwin содержит библиотеку MinGW, позволяющую работать с библиотекой Microsoft MSVCRT (Windows API); библиотека MinGW менее требовательна к объёму оперативной и дисковой памяти, распространяется под более свободной лицензией и может работать с любым программным обеспечением, но функциональные возможности спецификации POSIX реализованы в ней не так полно, как в Cygwin.

К сожалению, Cygwin не имеет поддержки Unicode; отсутствует также и поддержка каких-либо кодировок, отличных от родных для Windows и OEM (так, в русскоязычной версии Windows Cygwin будет работать лишь с CP1251 и CP866, но не KOI8-R, ISO 8859-5, UTF-8 или какими-либо другими; тем не менее при работе в X Window System под Cygwin можно использовать и другие кодировки, установив шрифты и настройки клавиатуры).

Red Hat реализует библиотеку Cygwin под лицензией GNU GPL, с оговоркой, что разрешается её свободное использование с любым свободным программным обеспечением с открытым кодом. (Для распространения коммерческих программ, использующих библиотеку Cygwin, необходимо приобретение лицензии у RedHat).

На странице Cygwin Mailing Lists можно подписаться на рассылку, посвящённую Cygwin.

[править] История

Работа над проектом Cygwin была начата в 1995 г. Стивом Чемберленом, программистом Cygnus, заметившим, что Windows NT и Windows 95 используют в качестве формата объектных файлов формат COFF. К тому времени в GNU уже была реализована поддержка архитектуры x86, COFF, а также библиотека языка C newlib; таким образом, по крайней мере теоретически, не представляло затруднений получить из GCC кросс-компилятор, который бы создавал исполняемые файлы Windows. Это оказалось несложным и на практике. Вскоре появился прототип.

Следующим шагом было заставить компилятор работать в Windows, но для этого была необходима эмуляция многих функций Unix: к примеру, должен был работать скрипт GNU configure. Этот скрипт нуждается в оболочке типа bash, которая, в свою очередь, требует наличия стандартных потоков ввода-вывода и системного вызова fork. Windows располагает подобными функциональными возможностями, и библиотека Cygwin лишь транслирует вызовы, исходящие от программ, управляя определёнными видами данных, такими как файловые дескрипторы.

В 1996 г. к проекту Cygwin присоединились и другие программисты, так как стало очевидным, что Cygwin сделает возможным использование инструментов Cygnus на системах с Windows (до этого намечалось использовать DJGPP). Этот вариант был особенно привлекательным, ведь кросскомпиляция могла бы производиться в трёх направлениях: можно было использовать мощную станцию Sun для сборки Windows-кросскомпилятора MIPS, что позволяло значительно экономить время. С 1998 г. Cygnus предлагает пакет Cygwin в качестве самостоятельного продукта.

[править] Работа с кириллицей

Для того, чтобы видеть и вводить русские символы при работе в cygwin необходимо установить переменную среды окружения LANG=ru_RU.CP1251 и создать файл ~/.inputrc или /etc/inputrc следующего содержания:

set input-meta on
set meta-flag on
set convert-meta off
set output-meta on

Кроме этого желательно определить (например в файле ~/.bashrc) алиас

alias ls='ls --show-control-chars'

[править] Примечания

  1. Larry Hall Re: How do you pronounce it? (англ.) (2004-09-14). Проверено 10 октября 2007.

[править] См. также

[править] Ссылки

Источник — «http://ru.wikipedia.org/wiki/Cygwin»