MSYS2 is a fork of Cygwin. The goal is to make it easier to compile software targeting Windows.<p>Some notable changes are:<p>- It has its own package repository, using PKGBUILDs on github. It can also be updated from within its own shell. Cygwin doesn&#x27;t do this, for very important reasons, involving autorebase hell which MSYS2 is certainly still subject to.<p>- In their fork of cygwin1.dll, they removed support for symlinks (i.e. `ln -s` creates a full tree copy); and the &#x2F;cygdrive&#x2F; root directory was replaced with &#x2F; (just like the old&#x2F;deprecated MSYS1).<p>- It has three startup links, in which gcc&#x2F;ld&#x2F;make and the like are all &quot;symlinked&quot; to different versions (e.g. targeting win32, targeting win64, or targeting MSYS2 itself). It makes it easier to compile software targeting windows. You should install separate -devel packages for each &quot;environment&quot;.<p>- MSYS2 focuses on packaging dependencies that would be useful for compiling software targeting the Windows platform (e.g. libXYZ). In comparison, Cygwin is more of a mini-OS, packaging applications for general use (e.g. rsync, BIND, MySQL and X11). There is a lot of overlap, but many exclusive packages.<p>- MSYS2 is amenable to merging back with Cygwin, but, the patches they&#x27;ve made to cygwin1.dll can&#x27;t be upstreamed. Cygwin proposed a new plugin system that would allow MSYS2 functionality within Cygwin, but, nobody has done the work to port MSYS2 to this new system. (maybe outdated information)