Interested Article - Cygwin

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

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

Изначально Cygwin был разработан компанией Cygnus Solutions , которую позднее приобрела Red Hat . Это свободное ПО , опубликованное под GNU General Public License версии 2. В настоящее время Cygwin разрабатывается сотрудниками Red Hat, NetApp и множеством добровольцев. Поддерживаются языки: C , C++ , Objective-C , Fortran , Gambas , Perl , Python , Ruby , Tcl , Ada , CLISP , Scheme , OCaml , Prolog , Self (Self/x86 ).

Подобные функциональные возможности предлагала также и 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.

История

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

Следующим шагом было заставить компилятор работать в Windows, но для этого была необходима эмуляция многих функций Unix: к примеру, должен был работать скрипт . Этот скрипт нуждается в оболочке типа 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 или какими-либо другими.

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

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

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

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

Примечания

  1. Vinschen C. — 2024.
  2. Larry Hall. (англ.) (14 сентября 2004). Дата обращения: 27 апреля 2010. 25 августа 2011 года.
  3. . www.gliebe.de. Дата обращения: 24 декабря 2016. Архивировано из 10 июля 2016 года.

См. также

Ссылки

  • на Freecode
  • = cygwin + GNOME
  • = cygwin + KDE
  • — похожий проект по переносу утилит UNIX в Windows, но без эмуляции POSIX API .
  • , , — Просто и доступно, объяснение установки, начала работы с Unix-like командной строкой
Источник —

Same as Cygwin