Windows Subsystem for Linux - WAL (El subsistema de windows para el kernel Linux)

Veo muchas preguntas cercanas pero las preguntas en sí mismas muestran un malentendido subyacente de algunos términos importantes.

    ¿Por qué usaría Windows Terminal sobre PowerShell?
    No necesito WSL para bash, uso Cygwin.
    ¿Puedo usar conemu con PowerShell Core o necesito usar Windows Terminal?

Comencemos con un glosario y aclaremos algunas palabras primero.
Terminal

La palabra Terminal viene de terminate, lo que indica que es el final de finalización o final de "terminal" de un proceso de comunicaciones. A menudo escuchará "terminal tonta" cuando se refiera a un entorno basado en texto en el que la computadora que está sentada al lado solo está ingresando y mostrando texto mientras el trabajo real ocurre en el otro extremo en una computadora central o grande.

TTY o "teletipo" fue el primer tipo de terminal. En lugar de una pantalla, tendría una máquina de escribir literal frente a usted. Cuando lo escribe, está viendo el texto en una hoja de papel Y está ingresando ese texto en una computadora. Cuando esa computadora responda, verá que la máquina de escribir escribe automáticamente en el mismo papel.

Foto de Texas.713 utilizada bajo CC

Cuando nos referimos a una Terminal en el sentido del software, nos referimos a una versión literal de software de un TTY o Terminal. El terminal de Windows es eso. Es realmente bueno para mostrar la salida de texto. Puede recibir información y transmitirla. Pero la Terminal no es inteligente. En realidad, no procesa su entrada, no mira sus archivos ni piensa.
Consola

Las personas a mediados del siglo XX tendrían un mueble en su sala de estar llamado consola o gabinete de consola. Una consola en el contexto de las computadoras es una consola o gabinete con una pantalla y un teclado combinados en su interior. Pero, efectivamente, es una Terminal. Técnicamente, la consola es el dispositivo y la terminal es ahora el programa de software dentro de la consola.

imagen

En el mundo del software, una Terminal y una Consola son, para todos los efectos, sinónimos.
Cáscara

Un shell es el programa al que el terminal envía la entrada del usuario. El shell genera salida y la devuelve al terminal para su visualización. Aquí hay algunos ejemplos de proyectiles:

    bash, pescado, zsh, ksh, sh, tsch
    PowerShell, pwsh
    cmd, yori, 4dos, command.com

Aquí hay un punto importante que debería tener más sentido ahora que tiene estos terminales: su elección de shell no debe y no debe dictar su elección de aplicación de terminal.

    Aparte: WSL y WSL2 (el Subsistema de Windows para Linux) son un Linux local completo (o muchos Linux) que se ejecutan en Windows 10. Son completos y reales. WSL2 incluye un núcleo Linux real y se ejecuta en Windows. Cygwin NO es un Linux. Cygwin es una gran colección de herramientas GNU y de código abierto que proporcionan una funcionalidad similar a Linux en Windows, pero no es Linux. Es un simulacro. Son utilidades GNU compiladas contra Win32. Es genial, pero es importante que sepa cuál es la diferencia. Cygwin puede permitirle ejecutar sus scripts de shell bash, pero NO ejecutará Apache, Docker u otros binarios ELF reales y aplicaciones de Linux.

¿Su elección de consolas de Windows?

Hay una serie de proyectiles que se envían con Windows. Aquí hay algunos que estoy ejecutando ahora. Tenga en cuenta el "cromo" o el borde y el título a su alrededor? Esos shells están alojados en una consola de Windows heredada de la que nunca ha oído hablar llamada conhost.exe. Puede ir al símbolo del sistema, escribir powershell, cmd o ubuntu y se ejecutará cualquier número de shells. Conhost hace el trabajo de entrada y salida.

Ahora, olvídate de que existe conhost, porque apesta, es súper viejo.

Conchas que vienen con Windows
Pseudo Consola, Pseudo Terminal, PTY, Pseudo TTY (ConPTY)

Los pseudo terminales son emuladores de terminal o interfaces de software que emulan terminales. Pretenden ser terminales como los de arriba. * Los sistemas Nix han tenido durante mucho tiempo una infraestructura de pseudo-terminal (PTY) y ahora Windows también como una pseudoconsola (ConPTY).

La nueva interfaz ConPTY de Windows es el futuro de las consolas y terminales en Windows. Si elige una aplicación de consola de terceros (no incorporada) para Windows, asegúrese de que sea compatible con ConPTY y será una mejor experiencia que algunas de las consolas más antiguas que usan el raspado de pantalla u otros hacks.

imagen
Volver a su elección de consolas de Windows

Recordando que hay muchos shells que puedes usar en Windows, hay muchas consolas de terceros que puedes usar si no te gusta conhost.exe (y no deberías).

    Hiper
    ConEmu
    cmder
    Consola2
    ConsoleZ
    Término
    Terminal fluido
    ZOC
    MobaXterm
    Babun (muerto)
    Software 4NT / jp (no gratuito)
    Masilla
    MinTTY
    Terminal de Windows (gratis en Microsoft Store)
    XTermjs: un componente de tipografía que le permite integrar terminales en sus aplicaciones
    VSCode incluye un terminal
    Visual Studio 2019 Preview incluye una Terminal

Todos estos terminales admiten TODOS los shells anteriores y cualquier shells que me haya perdido. Porque un shell no es una terminal. Elige el que te haga feliz. Yo uso PowerShell Core y Ubuntu en WSL2 en la Terminal de Windows.
Terminal de Windows

Espero que esto ayude a aclarar las cosas.

Comentarios

Entradas populares