Cygwin

Cygwin
Cygwin
Cygwin X11 rootless WinXP.png
Cygwin на Windows XP
Тип

Эмулятор

Разработчик

Red Hat и другие

Написана на

C/C++

Операционная система

Microsoft Windows, Windows NT

Последняя версия

1.7.17-1 (20 октября 2012[1])

Лицензия

GNU GPL

Сайт

cygwin.com

Cygwin (произносится /ˈsɪgwɪn/)[2] — UNIX-подобная среда и интерфейс командной строки для Microsoft Windows. Cygwin обеспечивает тесную интеграцию Windows приложений, данных и ресурсов с приложениями, данными и ресурсами UNIX-подобной среды. Из среды Cygwin можно запускать Windows приложения, также можно использовать инструменты Cygwin из Windows.

Cygwin состоит из двух частей: динамически подключаемая библиотека (DLL) cygwin1.dll, которая обеспечивает совместимость API и реализует значительную часть стандарта POSIX и огромная коллекция приложений, которые обеспечивают привычную среду UNIX.

Изначально Cygwin был разработан компанией Cygnus Solutions, которую позднее приобрела Red Hat. Это свободное ПО, опубликованное под GNU General Public License версии 2. В настоящее время Cygwin разрабатывается сотрудниками Red Hat, NetApp и множеством добровольцев.

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

Содержание

Описание

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

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

Red Hat реализует библиотеку Cygwin под лицензией GNU GPL, таким образом, её можно использовать только в программах, распространяемых под GPL. (Для распространения программ, использующих библиотеку Cygwin, под лицензией, отличной от GPL, необходимо приобретение лицензии у 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 в качестве самостоятельного продукта.

Интернационализация

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

Начиная с версии 1.7 кодировкой по умолчанию является Unicode в форме UTF-8 и соответственно, по умолчанию используется локаль C.UTF-8. При вызове функций Win32 Cygwin осуществляет трансляцию строк в кодировку UTF-16, используемую в системах Windows. Начиная с версии 1.7.2 Cygwin также может извлекать некоторую информацию из реестра Windows в соответствии с установками Language и Territory в локали.

Другая проблема заключалась в том, что консоль Cygwin (подобно CMD.EXE) использовала OEM кодировку. Для обхода этого ограничения рекомендовалось запускать в Cygwin демоны rshd или sshd и использовать эмулятор терминала с полной поддержкой UTF-8, например PuTTY. Начиная с версии 1.7 консоль Cygwin также работает в кодировке UTF-8, что позволяет выводить текстовую информацию в UTF-8 напрямую. Также консоль осуществляет трансляцию вводимой с клавиатуры информации в UTF-8, в соответствии с используемой национальной раскладкой.

Работа с кириллицей

В современных версиях Cygwin работа с русскими символами не требует дополнительных настроек. Символы кириллицы работают в нейтральной локали LANG=C.UTF-8, в том числе имена файлов, имена пользователей и данные реестра. Можно установить русскоязычную локаль LANG=ru_RU.UTF-8, при этом включатся русскоязычные сообщения (у некоторых программ), даты по русски (LC_TIME) и другие категории локали.

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

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

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

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

Примечания

  1. Updated: cygwin-1.7.17-1  (англ.). Архивировано из первоисточника 19 декабря 2012.
  2. Larry Hall Re: How do you pronounce it?  (англ.) (14 September 2004). Архивировано из первоисточника 25 августа 2011. Проверено 27 апреля 2010.

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Cygwin" в других словарях:

  • Cygwin — Running Cygwin, including Cygwin/X, under Windows XP …   Wikipedia

  • Cygwin — Cygwin …   Deutsch Wikipedia

  • Cygwin — Cygwin …   Wikipédia en Français

  • Cygwin — Saltar a navegación, búsqueda Cygwin Ejecutando Cygwin en Windows XP Desarrollador …   Wikipedia Español

  • Cygwin/X — is an implementation of the X Window System that runs under Microsoft Windows. It is part of the Cygwin project, and is installed using Cygwin s standard setup system. As with the rest of Cygwin, Cygwin/X is free software, licensed under the GNU… …   Wikipedia

  • Cygwin/X — est une implémentation du système X Window qui fonctionne sur Microsoft Windows. C est un logiciel libre. Cygwin/X fait partie du projet Cygwin, et peut être installé en utilisant le système standard d installation de Cygwin. Cygwin/X utilisait à …   Wikipédia en Français

  • Cygwin — es una colección de herramientas desarrollada por Cygnus Solutions para proporcionar un comportamiento similar a los sistemas Unix en Windows. Su objetivo es portar software que ejecuta en sistemas POSIX a Windows con una recompilación a partir… …   Enciclopedia Universal

  • Cygwin — noun a UNIX like environment for …   Wiktionary

  • Cygwin — ● np. ►APPLI Ensemble de logiciels libres permettant de compiler des applications en provenance du monde Unix sous Windows. Encore une fois, ils n ont pas pensé à la prononciation française …   Dictionnaire d'informatique francophone

  • KDE on Cygwin — is the port of Qt and KDE desktop environment (both of which are commonly distributed natively in Linux operating systems) to Windows using Cygwin, the POSIX emulation layer for Windows, and the Cygwin XFree86 server. It helps Wintel computers to …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»