Cygwin что это за программа

Cygwin — подробный обзор продукции Red Hat для пользователей Linux

Cygwin — это способ запуска программ для Linux в Windows, похожий на WINE. Тем не менее, Cygwin работает совершенно по-другому. Давайте рассмотрим дистрибутив подробнее.

О Cygwin

Cygwin — это дистрибутив с открытым исходным кодом, позволяющий компилировать и запускать приложения Unix или Linux в ОС Windows из интерфейса, подобного Linux.

Дистрибутив первоначально разработан Cygnus Solutions, но приобретена в 2000 году Red Hat.

Поскольку Unix и Linux открыты для публичного ввода, администраторы на протяжении многих лет предоставляли большое количество сценариев управления для этих систем, помогая собрать большую коллекцию доступных инструментов администрирования. Cygwin позволяет использовать эти сценарии и на компьютерах под управлением Windows.

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

Пользователям рекомендуется обращать внимание на пакеты, которые они выбирают во время установки. Потому-что, чем больше компонентов, тем дольше процесс установки. По умолчанию выбор минимален и включает в себя только bash, а также основные утилиты, которые распространены в командной строке.

Другие компоненты, такие как терминалы (mintty, util-linux), текстовые утилиты (grep, diff, patch), оболочки (dash, zsh, tcsh), серверы (Apache, PostgreSQL, OpenSSH) доступны в дополнительных пакетах.

Cygwin 3.1

Основные изменения в v. 3.1

Установка

Переходим по ссылке и скачиваем файл в зависимости от битности вашей системы

Запускаем файл, и нажимаем далее

Выбираем install from internet

Далее путь к рутту

Выбираем корневую систему

Настраиваем интернет соединение

Выбираем нужное нам зеркало установки. Более удобно расписаны зеркала по данной ссылке

Вывод

Это быстрый и простой способ запуска Linux в Windows. Программа установки Cygwin позволяет легко добавлять, удалять и обновлять эти инструменты.

Я понимаю, почему это популярный выбор для переноса программного обеспечения Linux на Windows.

Более того, познакомьтесь с другими эмуляторами в этой статье.

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Что такое Cygwin и как её установить на Windows

Говорим про Cygwin

Кроме того, она предоставляет программистам поддержку в использовании Win32 API вместе с Cygwin API, позволяя переносить утилиты UNIX в Windows без особых изменений исходного кода.

Преимущества Cygwin по сравнению с командной строкой/WSL

Существует ряд преимуществ использования оболочки Cygwin по сравнению с командной строкой Windows. Ниже перечислены некоторые из основных:

Как скачать

Установка

Запустите скачанный файл с предыдущего шага. Подтвердите все запросы и предупреждения, отображаемые на экране компонентом UAC Windows. После прохождения этого квеста, будет запущена программа установки, как показано ниже.

Появится запрос на выбор источника загрузки. В большинстве случаев параметр по умолчанию «Install from Internet» (Установить из Интернета) подходит и ничего изменять не приходится. Если у вас есть локальный загруженный репозиторий или вы просто хотите загрузить и установить Cygwin позже, выберите один из других доступных вариантов. Для продолжения нажмите «Далее».

В следующем окне предлагается указать «Root Directory» для установки, а также указать, будет ли она установлена для всех пользователей «All Users» или только для вас «Just Me». Если довольны значениями по умолчанию, то нажмите кнопку «Далее», чтобы продолжить установку.

Чтобы загрузить файлы пакета, программа установки попросит вас указать «Локальный каталог пакетов». По умолчанию указывается папка «Загрузки». Если требуется указать другое расположение, укажите путь к нему и нажмите кнопку «Далее», чтобы продолжить настройку.

В большинстве случаев для загрузки пакетов следует использовать параметр «Using System Proxy Settings». Если вы не хотите использовать прокси-сервер и использовать прямое подключение к Интернету, выберите параметр «Direct Connection», также есть возможность указать пользовательские параметры прокси-сервера, если таковые существуют. Для продолжения установки нажмите «Далее».

Затем программа предложит выбрать зеркало, откуда Cygwin загрузит файлы пакета. Чтобы обеспечить более высокую скорость загрузки, лучше выбрать зеркало, которое географически расположено ближе. Если вы не знаете что выбрать, выберите любое зеркало из списка и нажмите «Далее», чтобы продолжить.

Cygwin предоставляет множество утилит на базе UNIX/Linux, работающих под управлением Windows. Не все пакеты устанавливаются по умолчанию. Устанавливается только минимальный набор важных пакетов. На этом шаге можно настроить Cygwin, выбрав/убрав различные категорий пакетов. Помните, что добавить или удалить пакеты в Cygwin можно и позже. Если у вас есть конкретный список важных пакетов для вашей работы, вы можете выбрать их сейчас и продолжить, нажав «Далее».

На следующем экране отображается список выбранных пакетов с запросом на просмотр и подтверждение. Нажмите «Далее» для подтверждения и продолжения.

Выбранные пакеты начнут загружаться, и это может занять некоторое время в зависимости от скорости выбранного зеркала загрузки и количества выбранных пакетов.

После загрузки всех пакетов программа продолжит установку пакетов.

После завершения установки появится возможность создания значков на рабочем столе и в меню «Пуск» для упрощения доступа. По завершении нажмите кнопку «Готово», чтобы закончить работу мастера установки.

Теперь можно запустить Cygwin, через поиск в меню «Пуск», как показано выше, или дважды щелкнув значок на рабочем столе (если он был создан во время установки).

Заключение

Дополнительную информацию о Cygwin можно найти здесь. Подробные инструкции по использованию можно найти в разделе часто задаваемых вопросов и руководстве пользователя.

Источник

Сygwin: среда для мультиплатформенного программирования

Я программирую в среде cygwin, но это вовсе не
означает, что всё, о чём я буду рассказывать
в своих статьях, действительно лишь для cygwin.
Вы можете пользоваться любым компилятором
и любой средой, которой захотите. Вы можете
даже переписывать эти исходники на своём
любимом языке в своей любимой среде. Я не
буду агитировать Вас за cygwin.

Cygwin: что это такое?

Cygwin нынче становится весьма популярным:
многие производители свободного ПО под UNIX
поддерживать ‘—target=cygwin’ в конфигах своих
программ, благо, это не столь трудоёмко. А
cygwin, в свою очередь, расширяет
совместимость с UNIX, поддерживая не только
posix, но и другие, более узкоспецифичные
стандарты UNIX-систем.

Cygwin: где смотреть?

Cygwin: что и как устанавливать?

На Хакере уже несколько раз писали про
установку и использование Cygwin, поэтому
рекомендую вам обратится к тем статьям:
CYGWIN
— *nix в ваших Виндах
Особенности
настройки Cygwin

Точно такой же, как и в UNIX. Сочный, мощный,
безглючный. Однако, не такой быстрый. Дело в
том, что запуск препроцессора, компилятора,
ассемблера и линковщика требует
определённого времени на загрузку и
пролинковку в памяти библиотеки cygwin1.dll,
требумую каждым из этих компонентов gcc.
Отмечу, что в Windows 2000 это требует на порядок
меньше времени, чем в Windows 98. Скорость
компиляции в Windows 2000 очень близка к скорости
компиляции в UNIX. Но сок остаётся соком:
генерируемый бинарный код cygwin’ным gcc
остаётся вне конкуренции по компактности и
эффективности!

Если Вы когда-либо писали или компилировали
программы под UNIX, Вы не будете испытывать
никаких трудностей в работе с cygwin. Только
помните, что cygwin’ный gcc может не
поддерживать некоторые опции, которыми Вы
пользуетесь в UNIX’е, хотя количество таких
недоразумений сведено к минимуму. На моём
веку, например, таких проблем не возникало.
В любом случае, если возникают какие-то
проблемы, все мы дружно знаем лучший способ
их решения: ‘man gcc’! :)))

Если же Вам не доводилось прежде заниматься
программированием под UNIX и Вы привыкли жать
для того, чтобы скомпилировать Вашу
программу, расстраиваться не стоит.
Попробуйте ‘man gcc’ в bash’е cygwin’а: вполне
достойное и увлекательное чтиво.

Оригинальничать я не буду, поэтому начнём
мы, как всегда и везде, с вывода ‘hello world!’ на
консоль. Итак, hello.c:

#include
int main () <
printf(«Hello World!\n»);
return 0;
>

и смотрим на бинарник. 3072 байта бинарного
кода, формат PE, portable executable, загружаемые dll:

cygwin1.dll, откуда hello.exe берёт нашу printf() и другие
функции, которые накомпилировал нам gcc;
kernel32.dll, откуда hello.exe берёт GetModuleHandleA.

Хидер gcc берёт из /usr/include, который
является дефолтной инклудной директорией и
в UNIX, и в cygwin’е.

В cygwin’ном gcc есть одна очень приятная опция,
которая, почему-то, не задокументирована в
man-файле, ‘-mno-cygwin’. Скомпилируем нашу
программу с этой опцией:

и смотрим на бинарник: опять, 3072 байта
бинарного кода, но наша программа больше не
нуждается в cygwin1.dll! вместо этого она
использует msvcrt.dll, где и находит нужную нам
функцию printf.

Если мы юзаем опцию ‘-mno-cygwin’, cygwin кидает gcc’шный
препроцессор в директорию /usr/include/mingw, и,
соответственно, gcc компилирует
именно из этой директории.

Настоятельно рекомендую совершить
прогулку по содержимому директории /usr/include
для того, чтобы понять, что к чему. Думаю, Вас
особо порадует содержимое директорий /usr/include/sys
и /usr/include/w32api.

Таким образом, cygwin находит компромисс между
двумя противоречащими друг с другом
платформами, UNIX и Windows и даёт нам уникальный
шанс изучать программирование под UNIX, не
покидая Windows. Далее следует пример
простенькой программки, компилирующейся и
под posix’овые BSD Sockets, и под WinSock2. Программка
открывает указанный в командной строчке
порт и ожидает tcp-соединение с любого IP-адреса,
принимает от клиента литеру и возвращает
клиенту эту же литеру, увеличенную на
единицу. Вы можете скомпилировать эту
программку, запустить её (‘easy.exe 500’),
приконнектиться к ней телнетом (‘telnet 127.0.0.1
500′) и ввести любой символ.

—[ Makefile (для неюниксоидов, Makefile с
заглавной буквы ‘M’):

# tiny makefile for a tiny program

all:
@echo Pick ‘make posix’ for UNIX/cygwin or ‘make windows’ for Windows

#include «plateform.h»
#include

#ifdef ENV_POSIX
#include
#include
#include // для INADDR_ANY
#include // для signal()
#else
#include
#endif

int main (int argc, char **argv) <

struct sockaddr_in dst;
#ifdef ENV_POSIX
int sock, sid;
#else
SOCKET sock, sid;
WSADATA wsaData;
#endif
int len = sizeof(struct sockaddr);
char buf;
unsigned short port;

if(!port) <
printf(«Bad defined!\n»);
return 2;
>

dst.sin_family = AF_INET;
dst.sin_addr.s_addr = htonl(INADDR_ANY);
dst.sin_port = htons(port);
sock = socket(AF_INET,SOCK_STREAM,0);
printf(«Waiting for an incoming connection. «); fflush(stdout);
bind(sock,(struct sockaddr*)&dst,len);
listen(sock,1);
sid = accept(sock,(struct sockaddr*)&dst,&len);
printf(«done!\nWaiting for incoming data. «); fflush(stdout);
recv(sid,&buf,1,0);
printf(«received: [%2X]. «); fflush(stdout);
buf++;
send(sid,&buf,1,0);
printf(«done!\n»);

#ifdef ENV_POSIX
close(sock);
#else
WSACleanup();
closesocket(sock);
#endif

Итак, мы набираем ‘make posix’ для того, чтобы
собрать программу под UNIX’ом или под cygwin’ную
среду или ‘make windows’ для того, чтобы не
зависеть от cygwin’а и использовать лишь
kernel32.dll, ws2_32.dll и msvcrt.dll, которые входят в
стандартную поставку каждого дистрибутива
Windows. Обратите внимание на размер бинарника:
4096 байт для cygwin, 4608 байт для windows! 🙂

На этот раз всё! Ждите вскоре следующей
статьи в ближайшее время: «Технология
сканирования сетей: Cокетный движок».

Источник

Windows.Git.Cygwin.SSH.Gitolite и руководство пользователя

1. Для чего эта статья?

Желание получить возможности Git на Windows платформе материализовало стремление повозиться с разными схемами настройки.

2. Осознание

Нужно осознать, что придется использовать программы Cygwin,SSH,GitExtenstions,Git,Gitolite

Cygwin — это программа, которая эмулирует окружение Linux.У нее есть свое черное окно, выглядящее и работающие как окно терминала Linux.
MsysGit — это программа для эмуляции git окружения, но без ssh сервера, поэтому мы не будем использовать на сервере репозитариев. Используем только для клиентов репозитария.
SSH — это программа для использования ssh подключений из ssh клиентов, доступная для всех операционных систем.
SSH сервер — это программа принимающая подключения от ssh клиентов.
Git — это набор программ, включая сам git, для работы с репозиториями файлов.
Gitolite — это программа, обертывающая git, и реализующая функции управления репозитариями: управление пользователями, их доступом и т.п.
GitExtensions — это программа для windows, обертывающая функционал как git, так прилагающегося набора программ в GUI, который также, встраивается в среду разработки Visual Studio 05/08/10.

В корпоративе придется выделить ресурсы для хостинга SSH службы, дисковое пространство для размещения репозитариев.
Человека, который будет обслуживать SSH сервер, доступ к репозиторию.
Научить пользователей использовать аналоги функций для взаимодействия с их старыми система контроля версий через GitExtensions.
Предложить им некоторые схемы работы, которые позволяет достичь Git.

UPD: 05.08.2011
UPD: 30.01.2012

3. Идем к результату: Хостинг для комплектующих

Хостить Git,SSH сервер,Gitolite будем в Cygwin.
идем по адресу http://cygwin.com/setup.exe
Запускаем установщик.
Добавляем зеркало http://cygwin.vc.ukrtel.net/
matway.org — стал не доступен. Обновлено 30.01.2012.
Список зеркал близких России: cygwin.com/mirrors.html
Помечаем следующие компоненты:
Net | openssh
Devel | git
Devel | git-completion
Devel | git-gui
Devel | gitk
Editors | vim
Нажимаем Next и установка предложит добавить необходимые пакеты с чем, мы соглашаемся и нажимает Next.
Проверяем, Start Menu/Cygwin/Cygwin Terminal:

Логин Alexei мой логин в windows, base имя машины. Все сходится.

4. Идем к результату: Настройка SSH сервера

Запускаем Cygwin Terminal.
Запускаем конфигурацию SSH сервера командой ssh-host-config.

Для всех пользователей, кто будет работать с Git, нужно настроить вход на SSH сервер, через пользователя git (или другое имя) тв режиме без пароля.

/.ssh/, если windows — то c:/users/вашеимя/.ssh
Дальше в файле authorized_keys в профиле git на сервере localhost ищется текст, у которого есть маркер, равный вашему текущему имени пользователя. Если он находится, то вы получаете терминал, в который загружен профиль пользователя git.
Клиенты есть в cygwin, есть в gitbash, есть такие, как putty. Нас интересует ssh клиент, который в cygwin.
Вызывается он командой ssh с аргументами git@localhost, где git- имя пользователя, в профиль которого мы хотим зайти через ssh и localhost (это адрес сервера SSH).
Собственно, сейчас мы и сделаем так, чтобы работало как сказано выше.

5. Идем к результату: Настройка Gitolite

Нажимаем еще несколько раз Enter и получаем следующую картинку:

Источник

Cygwin или MinGW? Собираем программы для Windows без Windows

Содержание статьи

В общем-то, даже в Microsoft уже признали проблему и сделали WSL (Windows Subsystem for Linux), чтобы запускать те приложения, у которых нативных версий под Windows нет. Однако если ты хочешь сделать свою программу доступной для широкой аудитории, то WSL вовсе не панацея, поскольку у среднего пользователя эта система вряд ли установлена и у нативных приложений возможностей для интеграции с Windows все равно больше.

Во многих случаях камень преткновения — не сам код программы, а система сборки. Если ты используешь кросс-платформенные библиотеки и не вызываешь специфичные функции POSIX, портирование может вообще не требоваться. Главное — собрать исполняемые файлы.

GNU и Windows

Для сборки программ с помощью GNU toolchain на Windows часто используют два проекта: Cygwin и MinGW + MSYS. У них схожие цели, но разные детали реализации. Давай разбираться.

Cygwin

Cygwin — самая полная реализация окружения GNU для Windows. Он предоставляет большую часть POSIX API в виде библиотеки, что позволяет собирать программы из UNIX без портирования, если только им не требуется семантика UNIX. Яркий пример — демоны, им нужен fork() и сигналы, которых нет в Windows, да и службы Windows устроены совсем иначе.

Кроме библиотеки, дистрибутив содержит набор классических команд UNIX и терминал. Реализации команд используют эту библиотеку и поддерживают некоторые возможности UNIX, такие как регистрозависимые имена файлов.

Целевой способ использования: если нет желания или возможности портировать программу на Windows или использовать только платформенно независимые API, ее можно собрать «под Cygwin», ценой зависимости от cygwin1.dll и относительной изоляции от всей остальной системы.

MinGW и MSYS

Если цель Cygwin — сделать возможной сборку немодифицированных приложений на Windows ценой внешней зависимости, то цель MinGW + MSYS — производить приложения без внешних зависимостей.

MinGW и MSYS — это независимые пакеты, но их часто путают и смешивают друг с другом (а часто путают и с Cygwin). Можно сказать, что MinGW — это эквивалент GCC и binutils, а MSYS — расширенный эквивалент coreutils.

Начнем с MSYS. MSYS — это более «нативная» и легковесная альтернатива Cygwin. Этот пакет включает библиотеку с реализациями функций POSIX, но она предназначена для внутреннего пользования, и авторы категорически не рекомендуют связывать с ней свои приложения.

Библиотека MSYS не реализует UNIX поверх Windows, а следует соглашениям Windows — к примеру, сознательно не учитывает регистр букв в путях к файлам. Главная цель MSYS — предоставить нужные для скриптов сборки программы вроде Bourne shell, make и прочее, что обычно требуется для autotools.

MinGW содержит версии GCC и binutils (ассемблер as, компоновщик ld и так далее), которые производят исполняемые файлы для Windows в формате PE/COFF. Здесь мы и подходим к ключевому моменту: MinGW, как и все остальные части GNU toolchain, такой же платформенно независимый проект.

Кросс-компиляция в GNU toolchain уже давно обычное дело, и в GCC целевая платформа и хост независимы друг от друга. Можно запускать GCC на Linux для x86 и собирать программы для Linux на ARM, или наоборот. Совпадать не обязаны не только рабочая и целевая архитектуры процессора. Точно так же не обязаны совпадать даже ОС и формат исполняемого файла.

Ставим MinGW

Авторы многих дистрибутивов GNU/Linux уже постарались за нас, так что многие кросс-версии GCC, включая MinGW, можно поставить из репозиториев.

MinGW-w64, несмотря на название, поддерживает и Win32, и Win64. Это форк MinGW, который создали в первую очередь для реализации недостающей в оригинальном проекте поддержки Win64, отсюда и название.

Hello World

Тестирование кросс-компилированных программ для других архитектур — непростая задача, но, поскольку наша целевая платформа — Windows на x86, мы легко можем протестировать их в Wine:

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Источник

Операционные системы и программное обеспечение