MinGW
# MinGW

MinGW (Minimalist GNU for Windows) é uma versão portada para Microsoft Windows do conjunto de ferramentas GNU. Este software inclui um conjunto de arquivos cabeçalho para a API do Windows que permite aos desenvolvedores usar o GCC para criar programas nativos em Windows sem precisar contar com uma emulação em tempo real de um sistema Unix-like.
MSYS (acrônimo para minimal system) é um pacote que fornece um ambiente simples de shell, suportanto o padrão POSIX suficientemente para permitir a execução de scripts autoconf. Ambos os pacotes foram originalmente ramificações do Cygwin, que fornece um suporte Unix-like maior para Windows. Ambos os pacotes são software livre; os cabeçalhos Win32 estão disponíveis em domínio público enquanto as ferramentes estão em GNU General Public License.

## Mingw-w64 e MSYS2

O MSYS2 é uma plataforma de distribuição e desenvolvimento de software para o Microsoft Windows que ajuda a implantar código do mundo Unix no Windows.
O MSYS2 compartilha esse objetivo de levar código Unix para as máquinas Windows com vários outros projetos, principalmente o Cygwin e o Subsistema Windows para Linux (WSL). O Cygwin fornece um ambiente POSIX completo no qual os aplicativos são executados como no Unix. O WSL permite que os binários Linux sejam executados no Windows, com suporte limitado para chamadas do kernel e limitações significativas em aplicativos gráficos. Por outro lado, o MSYS2, junto com a porta do compilador Mingw-w64, converte o código Unix em binários nativos do Windows. Isso tem a vantagem de que os usuários do software portado podem permanecer no Windows, em vez de alternar entre dois sistemas operacionais.
O MSYS2 fornece um gerenciador de pacotes (o Pacman), um shell bash e outros programas Unix que executam nativamente (sem emulação intermediária POSIX) no Windows. O software executado no MSYS2 suporta nomes de arquivos no estilo Unix. Por exemplo, pode-se usar o comando start notepad ++ /c/Users/John/file.txt para iniciar um editor que abrirá um arquivo com o caminho do Windows C:\Users\John\file.txt.
O MSYS2 duplica o mínimo de código do Cygwin conforme necessário. Para oferecer suporte à emulação POSIX, quando necessário, o MSYS2 inclui uma biblioteca de tempo de execução msys-2.0.dll, derivada da biblioteca Cygwin cygwin1.dll, e é atualizada regularmente para seguir o desenvolvimento do Cygwin.
MSYS2 e Mingw-w64 são uma reescrita independente do MSYS e Mingw. A bifurcação ocorreu em 2005-2008 porque o MSYS não acompanhou o desenvolvimento do Cygwin e não suportou 64 bits. A terminologia nem sempre é clara: às vezes, os termos "MSYS" e "MinGW" são usados ​​incorretamente como atalhos, referindo-se a "MSYS2" e "Mingw-w64".