¿Cómo funciona realmente el nuevo "Bash en Windows 10"?

25

Leí en línea que Ubuntu y bash llegarán a Windows 10. También leí que no es un emulador o una máquina virtual que se ejecuta sobre Windows, sino algo más. Entonces, ¿cómo se une todo exactamente? ¿Y será realmente tan estable y fácil de usar como bash en ubuntu?

Maaverik
fuente
Realmente no proporciona una excelente imagen de lo que realmente está sucediendo bajo el capó.
Maaverik
@maaverik Desde entonces, hemos producido una serie de publicaciones en blogs y videos que explican los aspectos internos de WSL. Vea mi respuesta a continuación para los enlaces :)
Rich Turner

Respuestas:

21

No es un emulador de la misma manera que WINE no es un emulador. Es decir, han agregado una interfaz de kernel de Linux a su kernel de Windows. Cuando una aplicación intenta usar el kernel de Linux, se traduce en una llamada al sistema nativo de Windows y cualquier respuesta del kernel se traduce en una respuesta nativa de Linux. Entonces, la aplicación cree que se está ejecutando en un kernel de Linux y, por lo tanto, no necesita ser modificada.

Sin embargo, esto es puramente una tecnología de Windows, por lo que si desea obtener más detalles, debe obtenerlos de un grupo de soporte de Windows o algo así. Windows sigue siendo un sistema operativo propietario, por lo que esperaría una cantidad limitada de detalles.

¿Y será realmente tan estable y fácil de usar como bash en ubuntu?

Desde una perspectiva de Ubuntu, simplemente nos estamos ejecutando en un núcleo Linux primitivo, comparable a ejecutar un escritorio moderno en un servidor X primitivo. Si solo usa las funciones compatibles con el kernel falso, será estable y fácil de usar. Si usa funciones no compatibles, será inestable.

No estará cerca de una experiencia completa de Ubuntu en el corto plazo.

Jo-Erlend Schinstad
fuente
2
"No es un emulador" probablemente pertenece entre comillas; como Wine es un emulador, no solo a nivel de hardware sino a nivel de API. Ambos resultan en una pérdida de rendimiento dependiendo de lo que esté haciendo (es decir, cuántas llamadas al sistema está haciendo).
thomasrutter
2
@thomasrutter Lo siento, no estoy de acuerdo. Su definición de 'emulador' es demasiado floja. Bajo una interpretación como esta, tenemos que llamar a los emuladores de proxy también (pero no lo son). Un emulador, por definición, emula cosas. WSL (y proxies) no emulan cosas, transforman y reenvían cosas y devuelven una respuesta.
Segfault
21

Para aquellos curiosos sobre cómo funciona el Subsistema de Windows para Linux (WSL) y cómo ejecuta los binarios nativos de Linux ELF-64, hemos publicado una serie de publicaciones de blog y videos que explican la arquitectura, los procesos, las llamadas al sistema y el soporte del sistema de archivos de WSL. .

Scott Hanselman también hizo un gran video tutorial que cubre el proceso de instalación y cómo configurar Bash en Ubuntu en Windows:

HTH

Rich Turner
fuente
3
El primer enlace ya no funciona, creo que se ha movido aquí: blogs.msdn.microsoft.com/commandline/…
dpritch
Buena captura, gracias. Se corrigió el enlace para apuntar a nuestro enlace acortado.
Rich Turner
2

Las porciones bash funcionan muy bien en WSL.

Las porciones del grano no están allí. Por ejemplo, no hay /sys/class/backlight/intel_backlight/brightnessacceso para configurar el brillo de la pantalla. Hay comandos de Powershell a los que puede llamar fácilmente para hacerlo si no le importa los nombres de campo muy largos del estilo COBOL. Se puede llamar a MS Powershell directamente desde bash. Por lo tanto, puede decir que las potentes funciones de Windows ahora están integradas en bash. Por la misma razón, MS Powershell puede llamar a bash, creo. Así que si es cierto Powershell tiene acceso a funciones como grep, awk, head, tail, etc.

La interfaz gráfica de usuario para el escritorio de Ubuntu ( gedit, nautilus, etc.) sólo funciona después de instalar VcXsrvo algo similar.

Compartir archivos entre Linux y Windows WSL es complicado de configurar. Cuando al mover archivos entre la carpeta compartida NTL de WSL + Linux he tenido alguna "rareza" de permisos de archivos debido a mi ignorancia o deficiencias de software.

La velocidad es mucho más lenta en WSL que en Ubuntu. De hecho, puedes ver la pantalla pintar personaje por personaje cuando corres calo toilet: ¿Cuáles son las diferencias entre windows bash y cygwin?

Creo que WSL es un buen producto y disfruto jugando con él cuando arranco dual en Windows-World. Nunca se convertirá en un gran producto debido a la falta de fondos de MS y de todos modos no quieren tener una gran distribución de Linux Free-Ware. Si tuviera suficiente RAM, probablemente sería más feliz con una VM. Con solo 8 GB y los precios de RAM aumentando hasta mediados de 2019, me quedaré feliz con WSL y renunciaré a la actualización de 32 GB de RAM por ahora.

He visitado algunos foros de MS y debo decir que Rich Turner y los miembros de su equipo de WSL son algunos de los mejores profesionales que he visto.

WinEunuuchs2Unix
fuente