De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

La consola de Windows es la infraestructura para las aplicaciones de consola en Microsoft Windows . Una instancia de una consola de Windows tiene un búfer de pantalla y un búfer de entrada . Permite que las aplicaciones de consola se ejecuten dentro de una ventana o en modo de texto de hardware (para ocupar toda la pantalla). El usuario puede cambiar entre los dos usando la combinación de teclas Alt+ ↵ Enter. El modo de texto no está disponible en Windows Vista y versiones posteriores. Sin embargo, a partir de Windows 10 , está disponible un modo nativo de pantalla completa.

Las instancias de la Consola de Windows se utilizan normalmente para aplicaciones que no necesitan mostrar imágenes pero que pueden usar color. Los ejemplos incluyen cmd.exe , Windows PowerShell , Far Manager y Midnight Commander .

En 2019, la infraestructura de la consola de Windows fue de código abierto bajo la licencia MIT , junto con la Terminal de Windows . [1]

Modos de ventana y pantalla completa [ editar ]

Windows PowerShell en Windows Vista
Midnight Commander usando personajes de dibujo de cajas

En Windows, una aplicación de consola puede ejecutarse en dos modos.

Un modo coloca el texto en una ventana y usa la representación de fuentes de un sistema operativo . En este modo, la interacción de una aplicación con el usuario está controlada por el sistema de ventanas. Esto es análogo a las aplicaciones del sistema X Window , como xterm .

El segundo es el modo de pantalla completa. En Windows XP y versiones anteriores, la consola de pantalla completa usa un modo de texto de hardware y carga una fuente de trama al adaptador de video . Esto es análogo a una consola de sistema de texto . Este primer modo de pantalla completa solo admite modos de texto compatibles con VGA, lo que le otorga una resolución máxima de caracteres de 80 columnas por 28 filas. [2] Este modo quedó obsoleto en Windows Vista . [3] Fue posible evitar este problema instalando un controlador de pantalla de Windows XP; [3] sin embargo, Windows 8 y versiones posteriores no los aceptan.[4] Windows 10 presenta un modo de pantalla completa una vez más, pero esta implementación usa el subsistema de renderizado nativo de Windows, en lugar del modo de texto. Puede tener tantas columnas y filas como quepa en la pantalla. [5]

Se puede hacer que las aplicaciones cambien entre los dos modos usando la combinación de teclas Alt+ ↵ Enter.

Detalles [ editar ]

El búfer de entrada es una cola donde se almacenan los eventos (desde el teclado , el mouse , etc.). El búfer de salida es una cuadrícula rectangular donde se almacenan los caracteres, junto con sus atributos. Una ventana de consola puede tener varios búferes de salida, solo uno de los cuales está activo (es decir, mostrado) durante un momento determinado. Las aplicaciones pueden interactuar mediante programación con la consola de Windows a través de la API de Windows , que expone tanto funciones de alto nivel (como ReadConsoley WriteConsole) como funciones de bajo nivel (por ejemplo, ReadConsoleInputy WriteConsoleOutput). [6]

Los usuarios pueden cambiar la paleta de colores o la fuente , ya sea en el nivel de todo el sistema o en el nivel de la aplicación. Sin embargo, cada instancia de una aplicación de consola no puede cambiar su paleta de colores o fuente sobre la marcha.

Las aplicaciones de la consola de Windows son distintas de las aplicaciones de MS-DOS , aunque en Windows (especialmente en Windows 9x ), es posible que no se vean diferentes. Las aplicaciones de la consola de Windows tienen acceso a toda la API de Windows y no se ejecutan en MS-DOS ni en sistemas operativos compatibles. Sin embargo, las aplicaciones de DOS no pueden acceder a la API de Windows y solo pueden ejecutarse en versiones de 32 bits de Windows con la ayuda de una máquina virtual DOS (VDM).

Implementaciones [ editar ]

Antes de Windows 95 , no hay soporte nativo para consolas. Debido a que Windows 3.1 y versiones anteriores son simplemente una interfaz gráfica para MS-DOS, la mayoría de los programas de texto que se ejecutaban en versiones anteriores de Windows eran en realidad programas de MS-DOS que se ejecutaban en una ventana. Para simplificar la tarea de trasladar aplicaciones a Windows, las primeras versiones de Visual C ++ se suministran con QuickWin , una biblioteca que implementa la funcionalidad básica de la consola dentro de una ventana normal. Una biblioteca similar para Borland C ++ se llamó EasyWin .

Windows 9x [ editar ]

Command.com ejecutándose en una consola de Windows en Windows 95

El soporte de Windows 9x es relativamente pobre en comparación con Windows NT , porque la ventana de la consola se ejecuta en la máquina virtual DOS del sistema y, por lo tanto, la entrada del teclado a una aplicación de consola Win32 tuvo que ser dirigida a ella por conagent.exe que se ejecuta en una VM DOS que también se usa para aplicaciones DOS reales conectando la interrupción del teclado. conagent.exeluego llama a Vcond (que es un VxD ). Luego, Vcond tuvo que pasar la entrada del teclado a la VM del sistema y, finalmente, a la aplicación de la consola Win32. Además del rendimiento, otro problema con esta implementación es que las unidades que son locales en una VM DOS no son visibles para una aplicación de consola Win32. Esto puede causar confusión.

En Windows 9x, el búfer de pantalla refleja la estructura del búfer de texto VGA , con dos bytes por celda de carácter: un byte para el código de carácter, un byte para los atributos (el carácter debe estar en el juego de caracteres OEM , el atributo tiene un fondo de alta intensidad / sin parpadear). Esto acelera considerablemente el funcionamiento si se utiliza el modo de texto VGA real.

Windows NT y Windows CE [ editar ]

El subsistema de Windows para Linux que ejecuta Bash en Windows 10
Cmd.exe ejecutándose en Windows CE 3.0

Tradicionalmente, el Subsistema de tiempo de ejecución cliente / servidor (CSRSS) ha sido responsable de administrar las ventanas de la consola en la familia de sistemas operativos Windows NT . [7] En Windows 7 , CSRSS genera uno conhost.exepara cada ventana de la consola, para administrarlo. En Windows 8 y versiones posteriores, las aplicaciones de la consola generan sus conhost.exeprocesos directamente. Este cambio tiene implicaciones tanto de seguridad como de usabilidad. Si bien CSRSS se ejecuta en un contexto de seguridad con muchos privilegios, cada uno se conhost.exeejecuta en el mismo contexto de seguridad que la aplicación de consola. Además, en Windows 7, este cambio permitió que las ventanas de la consola tuvieran las características del tema Aero Glass . [8]

En Windows NT y Windows CE , el búfer de pantalla utiliza cuatro bytes por celda de carácter: dos bytes para el código de carácter y dos bytes para los atributos. Luego, el carácter se codifica en un subconjunto de 16 bits de Unicode ( UCS-2 ). [9] Para compatibilidad con versiones anteriores, las API de la consola existen en dos versiones: Unicode y no Unicode. Las versiones de API que no son Unicode pueden usar el cambio de página de códigos para extender el rango de caracteres mostrados (pero solo si se usan fuentes TrueType para la ventana de la consola, extendiendo así el rango de códigos disponibles). Incluso UTF-8 está disponible como "página de códigos 65001" [10] (se muestra solo desde el subconjunto UCS-2 de Unicode completo [cita requerida ]).

A partir de la actualización de Windows 10 de octubre de 2018, la consola de Windows tiene compatibilidad total con Unicode. [11]

Ver también [ editar ]

  • Comparación de emuladores de terminal
  • Interfaz de línea de comandos
  • Terminal de Windows
  • Shell (informática)
  • Consola del sistema
  • Consola de Linux
  • Basado en texto (informática)
  • Lista de software anteriormente propietario

Referencias [ editar ]

  1. ^ Canela, Kayla (6 de mayo de 2019). "Presentación de Windows Terminal" . Herramientas de línea de comandos de Windows para desarrolladores . Microsoft . Consultado el 10 de mayo de 2019 .
  2. ^ Julio Sánchez; Maria P. Canton (2003), "Fundamentos de VGA, Parte II: Gráficos para DOS", Manual de gráficos para PC (para programadores de C ++) (Libro), CRC Press, p. 125, ISBN 0849316782
  3. ^ a b "Algunos programas basados ​​en DOS de 16 bits y el símbolo del sistema no se ejecutarán en modo de pantalla completa en Windows Vista y Windows 7" . Soporte . Microsoft. 2011-09-23.
  4. ^ "Hoja de ruta para desarrollar controladores para el modelo de controlador de pantalla de Windows 2000 (XDDM)" . Centro de desarrollo de Windows: hardware . Microsoft . 16 de noviembre de 2013 . Consultado el 16 de diciembre de 2013 . Los controladores XDDM y VGA no se compilan en Windows 8 y versiones posteriores
  5. Tkachenko, Sergey (24 de noviembre de 2014). "Abrir el símbolo del sistema a pantalla completa en Windows 10" . Winaero . Consultado el 31 de julio de 2019 .
  6. ^ "Modos de consola" . Documentación de la consola de Windows . Microsoft . Consultado el 13 de octubre de 2020 , a través de Microsoft Docs.
  7. ^ Aviso de seguridad de Microsoft (930181): código de explotación publicado que afecta al subsistema de tiempo de ejecución del servidor cliente de Windows
  8. ^ Yosifovich, Pavel; Ionescu, Alex; Russinovich, Mark E .; Salomón, David A. (15 de mayo de 2017). Aspectos internos de Windows, Parte 1: Arquitectura del sistema, procesos, subprocesos, administración de memoria y más (7ª ed.). Redmond, Washington: Microsoft Press. pag. 67. ISBN 9780735684188.
  9. ^ "Referencia de la consola" . Microsoft. 2009 . Consultado el 1 de enero de 2010 .
  10. ^ "Notas de la versión" . docs.microsoft.com . Consola: Se corrigió que no se mostrara texto de salida en la página de códigos 65001 (utf8)
  11. Turner, Rich (15 de noviembre de 2018). "Línea de comandos de Windows: búfer de texto de salida Unicode y UTF-8" . Herramientas de línea de comandos de Windows para desarrolladores . Microsoft . Consultado el 14 de junio de 2019 .

Enlaces externos [ editar ]

  • Documentación de la consola de Windows
  • Línea de comandos de Windows: blog de antecedentes