MinGW
MinGWはCygwin 1.3.3からフォークした。両者はいずれもUNIXソフトウェアをWindowsへ移植することを目的にするが、異なる方針を採っている。
CygwinはWindows上に完全なPOSIX層を提供することを目標にしており、互換性のために必要であれば性能も犠牲にしている。その一方で、MinGWはコンパイラと各種ツールのみを提供し、性能を重視している。換言するとMinGWはPOSIX APIを提供していない。このため、Cygwinではコンパイル可能だが、MinGWでは不可能なUNIXアプリケーションが存在する。具体的には特定のPOSIXの機能を要求する、又は、POSIX環境を前提とするアプリケーションである。この問題を回避するためには、cygwin1.dllの関数を利用する、またはeC(Ecere SDK)(英語版)、SDL、wxWidgets、Qt、GTK、gnulibのようなプラットフォーム非依存のライブラリを使用する方法がある。
MinGWとCygwinは標準Cライブラリをはじめとして異なるライブラリを使用している。前者はマイクロソフトから提供されるライブラリであるmsvcrt.dllを用い、後者はPOSIX互換の為に独自のDLL (cygwin1.dll) を用いている。Cygwinでコンパイルしたプログラムを配布する場合、利用者はこの独自ライブラリ(ランタイム)も必要となる。これはソフトウェアと共に配布できるが、ソフトウェアはオープンソースライセンスに準拠する必要がある。MinGWでも、MSYSのライブラリ(msys-1.0.dllやmsys-z.dll)をリンクしている場合、同様の制限 (GPL) を受ける。