Quali sono le differenze tra Windows Bash e Cygwin?


65

Quali sono le differenze tra Windows Bash e Cygwin?

Il nuovo aggiornamento da Windows con "Linux" Bash è nuovo, ma quali sono le differenze rispetto a Cygwin che potrebbero farti scegliere l'uno rispetto all'altro?


1
Suppongo che Windows Bash sia integrato e supportato meglio da Microsoft.
Pantera,

2
Penso che questa domanda sia in tema poiché Windows Bash è un prodotto supportato da Canonical. Potrebbe essere fuori tema come forse l'opinione piuttosto che il supporto.
Pantera,

Risposte:


65

Cygwin è un ottimo strumento se vuoi vivere interamente in Windows e vuoi guidare / automatizzare le attività di Windows con script bash. Tuttavia, Cygwin non è in grado di eseguire binari Linux non modificati.

Ecco dove interviene WSL:

Il sottosistema Windows per Linux (WSL) è un nuovo livello del kernel di Windows che mira a fornire un elevato grado di compatibilità con l'ABI del kernel di Linux. Ciò consente l'esecuzione di file binari ELF64 nativi, non modificati, su WSL.

Questo è il modo in cui WSL può eseguire una vera distribuzione Ubuntu utente-terra e tutti i pacchetti scaricati da apt-get o pacchetti .deb da altrove, senza alcuna modifica.

Il punto di WSL è consentire agli sviluppatori che lavorano su Windows di essere in grado di eseguire molti degli strumenti e di lavorare su molti progetti, che dipendono da binari, caratteristiche, comportamenti, layout del filesystem, modello di processo, ecc. Di Linux.

Mentre WSL è ancora all'inizio della sua implementazione, stiamo lavorando sodo per migliorare l'ampiezza e la profondità delle nostre implementazioni di syscall per migliorare costantemente la capacità di WSL di eseguire un set sempre più ampio di strumenti e supportare un numero in rapida crescita di Ruby, Java, nodo , ecc. pacchetti e progetti.


Aggiornamento: 2017-09-07

Da quando abbiamo scritto quanto sopra, abbiamo spedito Windows 10 Creators Update che MASSIVAMENTE migliora la compatibilità di WSL con MOLTI degli strumenti che vorrete / dovrete eseguire.

Anche lo sviluppo è proseguito senza sosta e negli ultimi mesi abbiamo distribuito build Insiders Win10 sulla strada per la spedizione di Fall Creators Update (FCU) nell'ottobre 2017.

In FCU, stiamo aggiungendo la possibilità di installare ed eseguire più di una distro fianco a fianco: Ubuntu, openSUSE e SLES sono attualmente disponibili, con Fedora e altri in arrivo. WSL ora supporta anche le comunicazioni seriali USB e il montaggio di memorie USB e condivisioni di rete, insieme a ulteriori miglioramenti delle nostre syscall che migliorano la compatibilità con più strumenti.


Aggiornamento: 22-08-2019

Sono stati un paio di anni molto impegnativi dal primo annuncio e rilascio di WSL, quindi dall'aggiunta del supporto per più distro dal negozio e dall'annuncio di WSL v1.0 HTH.

A Build 2019 abbiamo annunciato il nuovo Windows Terminal ( qui il video della sessione Terminale ) e WSL 2 ( qui il video della sessione WSL 2 ) che introduce un approccio completamente nuovo all'esecuzione di Linux su Windows.

Per maggiori dettagli e aggiornamenti futuri, assicurati di visitare il blog della riga di comando di Windows ogni paio di settimane in cui pubblichiamo molte notizie correlate


9
Sono un utente di Cygwin da anni. WSL è un'idea fantastica che funziona per lo più bene ... tuttavia in questa fase la velocità di accesso ai file è lenta. Dirò proibitivamente lento. Fare operazioni anche di medie dimensioni con qualcosa come GIT richiede nell'ordine di oltre 30 secondi rispetto al secondo secondo su Cygwin. Spero che riusciranno a sistemarlo.
Damien Sawyer,

9
Disk perf è un problema noto: stiamo lavorando ad alcuni miglioramenti perf per Win10 CU, con miglioramenti più sostanziali in arrivo nel 2017.
Rich Turner

3
Fantastico. Non vedo l'ora Sarà un ottimo prodotto :-)
Damien Sawyer il

2
@DamienSawyer sono passati più di 6 mesi. Le tue lamentele sulla velocità sono state ridotte o sono sempre le stesse?
WinEunuuchs2Unix

3
@RichTurner quindi eseguirò l'aggiornamento: D
Martijn van Wezel,

15

Sottosistema Windows per Linux

Sto usando WSL su Windows 10 da circa alcuni mesi. Finalmente posso avviare Windows per giocare e comunque accedere al prompt di bash ed eseguire l'interfaccia della riga di comando e molti programmi GUI. Vi sono limitazioni come nessuna delle directory virtuali del kernel Linux familiari. È necessario pianificare la condivisione dello stesso script Bash tra Ubuntu e WSL su una macchina a doppio avvio.

Ci sono molte cose che mi piacerebbe vedere migliorate, ma posso conviverci così com'è per circa un anno.

Fonte chiusa

Una cosa da ricordare è che Microsoft è un sistema chiuso e non hai la raffica di terze parti che scrivono aggiornamenti come ti piace su Linux. Ma tutto sommato si considera che si acquista un nuovo laptop e viene fornito con Windows 10 comunque, quindi si può dire che è almeno "gratuito" :)

Cygwin è controllato da Red Hat Linux, che non è nemmeno noto per aver dato via gratuitamente le cose. La loro distribuzione "gratuita" di Linux Fedora sembra un "banco di prova" per alcuni.

Cicli di manutenzione

Cygwin ha 15 anni di aggiornamenti. Notevole è lo stesso project manager presente nel 2003. Ci sono molti manutentori a tempo pieno e molti altri collaboratori volontari.

WSL fornisce aggiornamenti importanti due volte all'anno ogni primavera e autunno. Aggiornamenti minori settimanali sono disponibili per quelli nell'elenco degli abbonati agli sviluppatori. Sebbene Microsoft disponga di risorse per lanciare migliaia di persone nello sviluppo di WSL, sembra che tu possa contare i membri del team con le dita.

Problemi di velocità

Vedrai molte lamentele sulla velocità WSL. Ad esempio, la pittura dello schermo richiede molte volte più tempo in Windows 10 rispetto a Ubuntu 16.04, cioè puoi effettivamente vedere il movimento del cursore in Windows 10:

WSL bash startup.gif

Ci vogliono circa 5 secondi per dipingere la schermata di avvio di WSL Bash. In confronto, sono circa 1 1/2 secondi per la stessa schermata iniziale in Ubuntu 16.04:

Ubuntu terminal splash.gif

Cygwin ha una sua quota di lamentele sulla velocità con Bash .


Pubblicazione originale di seguito per riferimento storico.

La risposta qui ha un anno, quindi penso che un piccolo aggiornamento sia in ordine. Con Windows 10 Home, se è Windows a 32 bit, significa che non eseguirà il sottosistema Ubuntu / Windows a 64 bit come Microsoft ci dice qui: ( sottosistema Windows Linux in win10 HOME BASIC ).

È come un sogno diventato realtà con Ubuntu su Windows con il suo supporto di gioco superiore per Nvidia, ma prima di esaurire e acquistare un laptop nuovo (o usato), assicurati che abbia Windows 10 a 64 bit e non la versione home a 32 bit se vuoi eseguire roba Ubuntu / Linux in modo nativo sotto Windows. Sui siti Web Microsoft fanno effettivamente riferimento all'edizione di Windows Anniversary come prerequisito per l'esecuzione del sottosistema Windows per Linux.


Tuttavia, se non vuoi sborsare $ 200+ per Windows 10 e hai un laptop più vecchio con Windows 8.1 a 64 bit come faccio io, e hai un laptop ancora più vecchio con Windows Vista a 64 bit come faccio io, Cygwin è la risposta.

Cygwin supporta più versioni di Windows come elenchi dei loro siti Web :

Cygwin può funzionare su tutte le versioni moderne e rilasciate di Windows. Stato gennaio 2016 include Windows Vista, Windows Server 2008 e tutte le versioni successive di Windows fino a Windows 10 e Windows Server 2016. La versione a 32 bit di Cygwin funziona anche in ambiente WOW64 a 32 bit su versioni a 64 bit rilasciate di Windows, la 64 versione a bit ovviamente solo su Windows a 64 bit.

Tieni presente che Cygwin può fare solo quanto supporta il sistema operativo sottostante. Per questo motivo, Cygwin si comporterà in modo diverso e presenterà limitazioni diverse sulle varie versioni di Windows.


2
La domanda è: quali sono le differenze tra Cygwin e Bash per Windows. Cygwin non è nemmeno menzionato nella tua risposta. Si prega di chiarire come questo risponde alla domanda.
Seth,

@Seth Ho sottolineato come WSL sia specifico della versione mentre Cygwin funziona su tutte le versioni supportate di Windows. Grazie per aver sottolineato la mia svista.
WinEunuuchs2Unix

1
Siamo stati molto chiari sul fatto che WSL richiede Windows a 64 bit ed è disponibile in ogni SKU di Windows 10, ad eccezione di LTSB corrente: WSL verrà aggiunto alla prossima versione di LTSB. WSL sarà anche incluso in Windows Server rilasciato nell'autunno 2017.
Rich Turner

@RichTurner Il tuo sito web lo spiega chiaramente. Ciò che non è chiaro per me (e non per colpa tua) è il motivo per cui il venditore vende un 7700 quad core 7700 i7 con GPU Nvidia 1050 e 12 GB di RAM di sistema con Windows 10 home. Qualcuno ha eliminato il link originale ma eccolo qui . Non spiegano che è a 32 bit. Stai dicendo che ogni Windows 10 è a 64 bit?
WinEunuuchs2Unix

1
È venduto come un PC da gioco. Dal momento che la maggior parte dei giocatori non ha bisogno dei featuer aggiuntivi in ​​Win10 Pro, ha optato per Home per salvare il cliente dal pagamento di qualcosa che probabilmente non avrà bisogno. Windows 10 è disponibile anche in varianti a 32 bit per chi lo desidera, ma sarei STUPEITO se qualcuno vendesse una macchina con> 4 GB di RAM e installasse un sistema operativo a 32 bit poiché il sistema operativo e le app in esecuzione non sarebbero in grado per accedere a qualsiasi cosa> 4 GB.
Rich Turner,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.