Я уже некоторое время пользуюсь Cygwin. Когда мне нужны новые пакеты, я открываю установку и выбираю нужные версии, а установка делает все остальное. Я заметил, что все программы загружаются вC:\cygwin64\bin
Внутри папки bin находится множество исполняемых файлов .exe. Это включает в себя diff, find, grep, gzip, vi, vim, whatis, which, who, whoami и многие другие. Я добавил C:\cygwin64\bin
в пользовательскую переменную PATH.
Теперь я могу получить доступ ко всем упомянутым выше программам и многим другим, которые загружаются и используются для использования через Cygwin, а также через PowerShell и командную строку Windows. Я в замешательстве. Все эти программы должны работать только в Cygwin или в любом терминале Windows? Если я могу запускать эти программы без терминала Cygwin bash, то какой смысл иметь Cygwin?
решение1
Cygwin — это набор инструментов Linux, скомпилированных для работы в Windows в виде .exe
исполняемых файлов.
Это один описание:
Cygwin — это набор инструментов с открытым исходным кодом, позволяющий компилировать и запускать приложения Unix или Linux в операционной системе Microsoft Windows (ОС) из интерфейса, похожего на Linux. Cygwin предлагает пользователям Linux-подобный опыт в среде Windows. Эта возможность помогает разработчикам переносить приложения из Unix или Linux в системы на базе Windows и упрощает поддержку их приложений, работающих на платформе Windows.
В основе набора инструментов Cygwin лежит динамическая библиотека (DLL) cygwin1.dll. DLL служит эмуляционным слоем, который обеспечивает функциональность системных вызовов Portable OS Interface или POSIX. Дистрибутив Cygwin также имеет большую коллекцию бесплатных инструментов, включая большинство инструментов GNU и множество инструментов Berkeley Software Distribution, а также X-сервер и полный набор приложений X.
По сути, Cygwin — это слой между исходным кодом Linux и API Windows. Он предлагает библиотеки, которые являются модифицированными библиотеками Linux для использования вызовов Windows, представляя при этом знакомый синтаксис Linux. Он имеет слой среды выполнения, реализованный cygwin1.dll
, который является средой выполнения, которая выполняет трансляцию в API Windows.
Для эмуляции единой среды Linux эта DLL создает сегмент общей памяти, который используется всеми ее инструментами и их собственными копиями cygwin1.dll
.
Cygwin не предназначен для работы в качестве виртуальной среды Linux, такой как WSL, а является инструментом для разработчиков Linux, позволяющим им переносить и тестировать свои программы Linux на Windows в привычной среде.
Cygwin поддерживает имена файлов как Linux, так и Windows, что позволяет его утилитам работать с папками и файлами Windows. Следует соблюдать осторожность, поскольку между Windows и Linux есть некоторые различия. Например, инструменты Cygwin Linux используют символ перевода строки в качестве символа конца строки, тогда как Windows использует для этого два символа.
Все инструменты Cygwin — это .exe
программы, работающие в Windows, и их можно использовать везде, где можно использовать инструменты Windows.
Использованная литература :