Come funziona davvero il nuovo "Bash su Windows 10"?


25

Ho letto online che Ubuntu e bash stanno arrivando su Windows 10. Ho anche letto che non è un emulatore o una macchina virtuale in esecuzione su Windows, ma qualcos'altro. Quindi, come va esattamente tutto insieme? E sarà davvero stabile e facile da usare come bash in Ubuntu?



Non fornisce davvero una grande immagine di ciò che sta realmente accadendo sotto il cofano.
Maaverik,

@maaverik Da allora abbiamo prodotto una serie di post sul blog e video di accompagnamento che spiegano gli interni di WSL. Vedi la mia risposta qui sotto per i collegamenti :)
Rich Turner

Risposte:


21

Non è un emulatore allo stesso modo in cui WINE non è un emulatore. Vale a dire, hanno aggiunto un'interfaccia del kernel Linux al loro kernel di Windows. Quando un'app tenta di utilizzare il kernel Linux, viene tradotta in una chiamata di sistema nativa di Windows e qualsiasi risposta dal kernel viene tradotta in una risposta Linux nativa. Quindi l'app pensa di essere in esecuzione su un kernel Linux e quindi non ha bisogno di essere modificata.

Tuttavia, questa è puramente una tecnologia Windows, quindi se vuoi maggiori dettagli, dovresti ottenerli da un gruppo di supporto di Windows o qualcosa del genere. Windows continua a essere un sistema operativo proprietario, quindi mi aspetto un numero limitato di dettagli.

E sarà davvero stabile e facile da usare come bash in Ubuntu?

Dal punto di vista di Ubuntu, stiamo semplicemente eseguendo un kernel Linux primitivo, paragonabile all'esecuzione di un desktop moderno su un server X primitivo. Se stai usando solo le funzionalità supportate dal kernel falso, sarà stabile e facile da usare. Se usi funzionalità non supportate, sarà instabile.

Presto non sarà vicino a un'esperienza Ubuntu completa.


2
"Not an emulator" appartiene probabilmente tra virgolette; come Wine è un emulatore, non solo a livello di hardware ma a livello di API. Entrambi comportano una perdita di prestazioni a seconda di ciò che stai facendo (cioè quante chiamate di sistema stai effettuando).
thomasrutter,

2
@thomasrutter Siamo spiacenti, non sono d'accordo. La tua definizione di "emulatore" è troppo ampia. Sotto un'interpretazione come questa, dobbiamo anche chiamare emulatori di proxy (ma non lo sono). Un emulatore, per definizione, emula le cose. WSL (e proxy) non emulano le cose, trasformano e inoltrano le cose e restituiscono una risposta.
Segfault,

21

Per chi è curioso di sapere come funziona il sottosistema Windows per Linux (WSL) e come esegue i binari ELF-64 nativi Linux, abbiamo pubblicato una serie di post sul blog e video di accompagnamento che spiegano l'architettura WSL, i processi, i syscall e il supporto del filesystem .

Scott Hanselman ha anche realizzato un ottimo video dettagliato sulla procedura di installazione e su come configurare Bash su Ubuntu su Windows:

HTH


3
Il primo link non funziona più, penso che si sia spostato qui: blogs.msdn.microsoft.com/commandline/…
dpritch

Buona cattura - grazie. Risolto il problema con il collegamento per puntare al collegamento abbreviato
Rich Turner

2

Le porzioni bash funzionano molto bene in WSL.

Le porzioni del kernel non ci sono. Ad esempio non è /sys/class/backlight/intel_backlight/brightnesspossibile accedere per impostare la luminosità dello schermo. Ci sono comandi Powershell che puoi facilmente chiamare per farlo se non ti dispiace nomi di campi molto lunghi in stile COBOL. MS Powershell può essere chiamato direttamente da bash. Quindi puoi dire che potenti funzionalità di Windows sono ora integrate in bash. Allo stesso modo, credo che MS Powershell possa chiamare bash. Quindi, se è vero PowerShell ottiene l'accesso alle funzioni come grep, awk, head, tail, etc.

L'interfaccia grafica per Ubuntu Desktop ( gedit, nautilus, ecc) funziona solo dopo l'installazione VcXsrvo qualcosa di simile.

La condivisione di file tra Linux e Windows WSL è complicata da configurare. Quando durante lo spostamento di file tra la cartella NTFS WSL + Linux condivisa ho avuto qualche "stranezza" di autorizzazione dei file a causa della mia ignoranza o delle carenze del software.

La velocità è molto più lenta in WSL che in Ubuntu. Puoi effettivamente vedere il carattere dello schermo per carattere quando corri calo toilet: Quali sono le differenze tra windows bash e cygwin?

Penso che WSL sia un buon prodotto e mi piace armeggiare con esso durante il dual-boot in Windows-World. Non diventerà mai un ottimo prodotto a causa della mancanza di finanziamenti da parte degli Stati Uniti e non vogliono comunque avere un ottimo Distro Linux Free-Ware. Se avessi abbastanza RAM probabilmente saresti più felice con una VM. Con solo 8 GB e i prezzi della RAM in aumento fino a metà 2019 o giù di lì, rimarrò felicemente con WSL e rinuncerò all'aggiornamento di 32 GB di RAM per ora.

Ho visitato alcuni forum sulla SM e devo dire che Rich Turner e i membri del suo team WSL sono alcuni dei migliori professionisti che abbia mai visto.

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.