Cygwin은 Windows에서 원래 Unix 및 Linux 시스템을 위해 개발된 도구와 응용 프로그램을 실행할 수 있게 해주는 호환성 환경입니다. 이는 POSIX 시스템 호출을 Windows의 네이티브 API로 변환하는 동적 라이브러리(cygwin1.dll)를 통해 작동하여, Unix 환경을 위해 작성된 프로그램이 큰 수정 없이 컴파일되고 실행될 수 있도록 합니다.
Cygwin은 bash 및 zsh와 같은 셸, gcc 및 g++와 같은 컴파일러, make 및 autoconf와 같은 자동화 도구, ssh, rsync, cron, grep, sed 및 awk와 같은 시스템 관리에서 널리 사용되는 유틸리티를 포함한 광범위한 자유 소프트웨어 기반 패키지를 제공합니다. 공식 설치 프로그램을 통해 필요한 구성 요소만 선택하여 특정 버전을 선택하고 종속성을 제어하면서 설치할 수 있습니다.
이 환경은 /bin, /etc, /usr 및 /home과 같은 Unix 시스템과 유사한 디렉토리 구조를 생성하여 Windows 파일 시스템과 공존합니다. 이러한 조직은 스크립트와 작업 흐름의 이식성을 용이하게 하여, 쉘 스크립트를 실행하고, 오픈소스 프로젝트를 컴파일하며, 서로 다른 운영 체제 간에 자동화된 루틴을 일관되게 유지할 수 있도록 합니다.
Cygwin은 특히 Windows 머신에서 Linux 시스템의 동작을 재현해야 할 필요가 있을 때 개발 및 테스트 시나리오에서도 사용됩니다. 이는 POSIX 모델에서 파일 권한, 신호, 파이프, 심볼릭 링크 및 이 표준의 다른 전형적인 기능을 지원하며, Windows에서 제약하는 한계를 존중합니다.
완전한 가상화가 아닌 중간 계층으로 작동하기 때문에, Cygwin은 원주율 시스템과 성능 및 호환성 면에서 차이를 보입니다. 그럼에도 불구하고, Unix 명령을 배치 스크립트, Windows의 그래픽 도구 및 기존 개발 환경에 통합할 수 있어, Cygwin은 Windows 운영 체제를 떠나지 않으면서 Unix 리소스가 필요한 사용자에게 실용적인 솔루션이 됩니다.