web-dev-qa-db-ja.com

GNUWin32とcygwinの違い

私は2つの違いを理解することができないようです。

1つ(GNUWin32)はウィンドウ(MSYSなど)の上のレイヤーであり、
その他(cygwin)は別のもの(?)

どういう意味ですか?いつ使用しますか?それらは両方とも同じことに適していますか?

私はそれを主にgitに使用したいのですが、* nixyのすべてを学習して実行するためのオプションを開いたままにしておきたいです。

このための別のツールはありますか? msysgitはこれにより適していますか?
これらすべての* nixプラットフォームの違いを徹底的に経験するリソースはありますか?

22
qwertymk

Cygwin は、UNIXプログラムを最小限の変更または変更なしでWindowsシステム上でコンパイルおよび実行できるようにするライブラリであり、このライブラリでコンパイルされたパッケージ化されたUNIXツールおよびアプリケーションの包括的なセットです。これは、Windowsのほぼ完全なラッパーです。これには、Xサーバーと、Linuxディストリビューションで見つかると予想される非常に多くのプログラムが含まれています。これは、WindowsでUNIXコマンドラインを学習または使用したい人に最適です。

[〜#〜] msys [〜#〜] は、ほとんどの場合、GNUスタイルパッケージ(configureを使用)のビルドに必要なUNIXツールのポートです。など) MinGW コンパイラを使用するWindowsシステム。Cygwinライブラリのバリアントを使用して、効率を上げるために互換性をいくらか犠牲にし、Windowsに適しています。

GnuWin32 は、いくつかのGNUツールのWindowsへの移植です。MSYSと同様に、msvcrt.dllと、追加のライブラリを使用していくつかを提供します。 UNIX互換性関数。その主な目的は、WindowsプログラムとバッチファイルがGNUプログラムとライブラリの一部を直接使用できるようにすることであるようです。

ほとんどの場合、これらはすべてWindows上でUNIXプログラムを提供しますが、次のような多くの微妙な違いがあります。

  • 意図。 Cygwinは、WindowsOSでUNIXを使用したい人向けです。 MSYSは、GNU/UNIXビルドツールを使用してWindowsプログラムをビルドしたい人向けです。 GnuWin32は、個々のGNUプログラムとライブラリをWindowsに移植したものです。
  • テキストファイル、特に行末。 Cygwinでは、CR/LFまたはLFを使用できます。 MSYSはLF行末を想定しています。GnuWin32プログラムはCR/LF行末を想定しています。
  • 提供されるプログラム。特に、Cygwinにはさらに多くのパッケージがあり、GnuWin32はシェルを提供していません。

Gitに関しては、Cygwinで利用できます。このバージョンはWindowsディレクトリで使用できます(/cygdriveからアクセスできます)。また、前述のように、 msysgit があります。

36
Michael Slade