Resumen
Tienes razón, Git Bash para Windows no solo se bashcompila para Windows. Es paquete que contiene bash(que es un shell de línea de comandos ) y una colección de otros, servicios públicos separados * nix como ssh, scp, cat, findy otros (el que se ejecuta utilizando la cáscara), compilado para Windows, y un nuevo terminal de la interfaz de línea de comandos ventana llamada mintty.
En una palabra
En Windows puede ejecutar comandos como ipconfig /allo format G:usando cmd.exe. Estos comandos son archivos ejecutables reales C:\Windows\system32, almacenados como ipconfig.exey format.comarchivos. cmd.exeestá separado de ambos y los carga y los ejecuta a petición del usuario.
ssh, scp, cat, findSe ejecutan utilizando bashexactamente de la misma manera. Por lo general, se almacenan /usr/binen los C:\Windows\system32sistemas * nix en lugar de en ellos , porque Windows y * nix tienen su estructura de archivos del sistema organizada de manera diferente.
En el caso de Git Bash para Windows, estos programas se encuentran en la carpeta de instalación de Git: C:\Program Files\Git\usr\binque también se puede encontrar en el entorno Linux emulado en /usr/bin.
Al igual que poder ejecutar cmd.exeen * nix no le permite hacer mucho sin las otras utilidades del sistema, tampoco es muy útil poder ejecutar Bash en Windows. Esto significa que todos estos comandos adicionales deben combinarse con Bash para crear un paquete de software utilizable.
Detalles: aplicaciones POSIX en Windows
Normalmente, esos comandos adicionales se encontrarían en los sistemas * nix y no en Windows, porque se han programado con la API de programación POSIX (que es lo que usa * nix), y no con las API Win32 (que es lo que usa Windows). La documentación de la API POSIX está abiertamente disponible, por lo que algunas personas la han portado a otros sistemas, incluido Windows. La implementación de Windows de las API / bibliotecas POSIX son proporcionadas por Cygwiny MSYS.
Esto es algo similar a lo que hace el proyecto Wine , pero convierte POSIX-> Windows en lugar de Windows-> POSIX como Wine lo hace.
mintty
minttyse incluye porque cmd.exe, en la ventana de línea de comandos predeterminada de Windows, faltan algunas características importantes que normalmente están disponibles en la mayoría de los sistemas * nix. En la mayoría de los casos, minttyes una mejor opción para ejecutar comandos (ciertamente para las utilidades que vienen con el paquete Git Bash para Windows), pero ocasionalmente una aplicación de sistema de Windows puede funcionar mejor cmd.exe.