2012-05-23 6 views
21

두 가지의 차이점을 처리 할 수없는 것 같습니다.GNUWin32와 cygwin의 차이점

그것은 하나 (GNUWin32)이 윈도우의 상단에 레이어 (같은 MSYS)과
다른 (Cygwin에서)이 뭔가 다른 것 같다 (?)

이 무엇을 의미합니까? 언제 다른 것을 사용합니까? 그들은 둘 다 똑같은 것에 적합합니까?

주로 git에 사용하고 싶지만 모든 것을 배우고 모든 일을 할 수있는 옵션을 열어두고 싶습니다.

다른 도구가 있습니까? msysgit이 더 적합할까요?
이러한 모든 * nix 플랫폼의 차이점을 철저하게 검토하는 리소스가 있습니까?

답변

34

Cygwin은 최소한의 수정만으로 Windows 시스템에서 컴파일하고 실행할 수있는 UNIX 프로그램과이 라이브러리로 컴파일 된 포괄적 인 패키지 UNIX 도구 및 응용 프로그램을 만들려고 노력하는 라이브러리입니다. Windows를 둘러싼 거의 완벽한 래퍼입니다. 여기에는 X 서버와 Linux 배포판에서 찾을 수있는 엄청난 양의 프로그램이 포함되어 있습니다. Windows에서 UNIX 명령 줄을 배우거나 사용하려는 사람들에게 좋습니다.

MSYS은 대부분 MinGW 컴파일러가있는 Windows 시스템에 GNU 스타일 패키지 (configure 등)를 빌드하는 데 필요한 UNIX 도구 포트입니다. Cygwin 라이브러리의 변형을 사용하여 효율성을 위해 호환성을 희생했습니다. 이는 Windows와 친숙합니다.

GnuWin32은 Windows 용 GNU 도구의 포트입니다. MSYS와 마찬가지로이 라이브러리는 msvcrt.dll과 일부 UNIX 호환성 기능을 제공하는 추가 라이브러리를 사용합니다. 주요 목적은 Windows 프로그램 및 배치 파일이 일부 GNU 프로그램 및 라이브러리를 직접 사용할 수 있도록하는 것입니다. 대부분의 경우

, 그들은 모든 Windows에서 UNIX 프로그램을 제공하지만, 등 많은 미묘한 차이가있다 :

  • 의도. Cygwin은 Windows OS에서 UNIX를 사용하고자하는 사람들을위한 것입니다. MSYS는 GNU/UNIX 빌드 도구를 사용하여 Windows 프로그램을 작성하려는 사람들을위한 것입니다. GnuWin32는 Windows에 대한 개별 GNU 프로그램 및 라이브러리의 포트입니다.
  • 텍스트 파일, 특히 줄 끝 문자. Cygwin에서는 CR/LF 또는 LF를 사용할 수 있습니다. MSYS는 LF 라인 종료를 예상합니다. GnuWin32 프로그램은 CR/LF 라인 종료를 기대합니다.
  • 제공된 프로그램. 특히, Cygwin은 훨씬 더 많은 패키지를 가지고 있으며, GnuWin32는 쉘을 제공하지 않습니다.

git는 Cygwin에서 사용할 수 있습니다.이 버전은 Windows 디렉토리 (/cygdrive에서 액세스 가능)에서 사용할 수 있습니다. 또한 언급 한 바와 같이 msysgit이 있습니다.

+3

MSYS와 관련하여 올바르지 않습니다. MSYS 프로그램은 Cygwin DLL 포크 인 MSYS DLL을 기반으로하며 MinGW 툴체인 대신 특수 MSYS 툴체인을 사용하여 빌드됩니다. 그러나, MSYS의 목적은 MinGW 툴 체인으로 기본 Windows 프로그램을 빌드하기위한 유닉스 환경을 제공하는 것입니다. – ak2

+4

굉장한 답변! [** Gow **] (https://github.com/bmatzelle/gow/wiki)는 어떻게 작용합니까? – qwertymk

+0

모르겠다. 결코 사용하지 마십시오. ansewr에서 자유롭게 언급하십시오. –