La Consola de Windows es una aplicación con interfaz gráfica de usuario (GUI) para ejecutar aplicaciones de consola en Windows . La Consola de Windows se utiliza para ejecutar programas basados en texto, como shells del sistema operativo (por ejemplo , Símbolo del sistema y PowerShell ), utilidades (por ejemplo, Far Manager ) y algunas aplicaciones , generalmente más antiguas (por ejemplo, Midnight Commander ).
Windows Terminal se introdujo en Windows 10 como reemplazo de Windows Console. [ 1 ] En 2019, el host de la consola se publicó como código abierto bajo la licencia MIT , junto con Windows Terminal. [ 2 ]
Usar
Modo de pantalla completa


La consola de Windows se ejecuta en modo ventana o en modo pantalla completa. El modo se puede alternar pulsando Alt+↵ Enter .
En el modo ventana, la consola escribe texto en una ventana y utiliza la representación de fuentes del sistema operativo . En este modo, la interacción del usuario con la aplicación está controlada por el sistema de ventanas, de forma análoga a las aplicaciones del Sistema X Window, como xterm .
En Windows XP y versiones anteriores, la consola de pantalla completa utiliza un modo de texto por hardware y carga una fuente rasterizada en el adaptador de vídeo , de forma análoga a una consola de sistema basada en texto . Este modo de pantalla completa inicial solo admite modos de texto compatibles con VGA, lo que le confiere una resolución máxima de caracteres de 80 columnas por 28 filas. [ 3 ] Este modo se eliminó en Windows Vista , [ 4 ] aunque hasta Windows 8 era posible sortear este problema instalando un controlador de pantalla de Windows XP. [ 4 ] [ 5 ]
Windows 10 vuelve a incluir un modo de pantalla completa. La implementación utiliza el subsistema de renderizado nativo de Windows en lugar del modo de texto y admite filas y columnas para llenar la pantalla. [ 6 ]
Acceso programático
Un programa puede interactuar programáticamente con su consola anfitriona a través de la API de Windows , que expone funciones de alto nivel (como ReadFile, ReadConsole, WriteFile, y WriteConsole) y funciones de bajo nivel (por ejemplo, ReadConsoleInputy WriteConsoleOutput). [ 7 ]
Fuentes y colores
Un usuario puede configurar la fuente o la paleta de colores de la consola , ya sea a nivel de sistema o a nivel de aplicación. Sin embargo, una instancia de una aplicación de consola no puede cambiar su fuente ni su paleta de colores sobre la marcha.
Distinción de DOS
Una aplicación de consola es distinta de una aplicación MS-DOS , aunque en Windows (especialmente en Windows 9x ) puedan parecer similares. Una aplicación de consola tiene acceso a la API de Windows y no se ejecuta en MS-DOS ni en sistemas compatibles. Una aplicación DOS no puede acceder a la API de Windows y solo se ejecuta en una versión de 32 bits de Windows con la ayuda de una máquina virtual DOS (VDM).
Diseño
Almacenamiento en búfer de entrada/salida
Una instancia de la consola de Windows tiene un búfer de pantalla y un búfer de entrada . El búfer de entrada es una cola donde se almacenan los eventos (del teclado , el ratón , 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, de los cuales solo uno está activo (es decir, visible) en un momento dado.
Implementaciones
En Windows 3.1 y versiones anteriores, no existe soporte nativo para consolas. Dado que estas versiones 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 portar aplicaciones a Windows, las primeras versiones de Visual C++ incluían QuickWin , una biblioteca que implementaba la funcionalidad básica de una consola dentro de una ventana normal. Una biblioteca similar para Borland C++ se llamaba EasyWin .
Windows 9x

La compatibilidad con Windows 9x es relativamente deficiente en comparación con Windows NT , ya que la ventana de la consola se ejecuta en la máquina virtual DOS del sistema y, por lo tanto, la entrada de teclado a una aplicación de consola Win32 tenía que ser dirigida a ella por conagent.exe ejecutándose en una VM DOS que también se usa para aplicaciones DOS reales mediante la interceptación de la interrupción del teclado. conagent.exeLuego llama a Vcond (que es un VxD ). Vcond tenía que pasar la entrada del teclado a la VM del sistema y, finalmente, a la aplicación de consola Win32. Además del rendimiento, otro problema con esta implementación es que las unidades que son locales a 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 reproduce la estructura del búfer de texto VGA , con dos bytes por celda de carácter: un byte para el código del carácter y otro para los atributos (el carácter debe pertenecer al conjunto de caracteres OEM y el atributo debe indicar fondo de alta intensidad/sin parpadeo). Esto acelera considerablemente el funcionamiento si se utiliza el modo de texto VGA.
Windows NT y Windows CE


Tradicionalmente, el subsistema de tiempo de ejecución cliente/servidor (CSRSS) se ha encargado de gestionar las ventanas de consola en la familia de sistemas operativos Windows NT . [ 8 ] En Windows 7 , CSRSS crea un proceso conhost.exepara cada ventana de consola para gestionarla. En Windows 8 y versiones posteriores, las aplicaciones de consola crean 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 altos privilegios, cada conhost.exeaplicación de consola se ejecuta en el mismo contexto de seguridad. Además, en Windows 7, este cambio permitió que las ventanas de consola tuvieran las características del tema Aero Glass . [ 9 ]
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 del carácter y dos bytes para los atributos. El carácter se codifica en un subconjunto de Unicode de 16 bits ( UCS-2 ). [ 10 ] Para la compatibilidad con versiones anteriores, las API de la consola existen en dos versiones: Unicode y no Unicode. Las versiones no Unicode de las API pueden utilizar el cambio de página de códigos para ampliar el rango de caracteres mostrados (pero solo si se utilizan fuentes TrueType para la ventana de la consola, ampliando así el rango de códigos disponibles). Incluso UTF-8 está disponible como "página de códigos 65001" [ 11 ] (mostrando solo desde el subconjunto UCS-2 de Unicode completo ).
A partir de la actualización de Windows 10 de octubre de 2018, la consola de Windows tiene compatibilidad total con Unicode. [ 12 ]
Véase también
Referencias
- ↑ Cinnamon, Kayla (6 de mayo de 2019). "Introducción a Windows Terminal" . Microsoft Corporation . Consultado el 20 de noviembre de 2020 .
- ↑ Cinnamon, Kayla (6 de mayo de 2019). "Introducción a la Terminal de Windows" . Herramientas de línea de comandos de Windows para desarrolladores . Microsoft . Consultado el 10 de mayo de 2019 .
- ↑ Julio Sánchez; María P. Cantón (2003), "Fundamentos de VGA, Parte II: Gráficos DOS", The PC Graphics Handbook (para programadores de C++) (Libro), CRC Press, pág. 125, ISBN 0849316782
- 1 2 "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. 23 de septiembre de 2011.
- ↑ "Hoja de ruta para el desarrollo de 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 compilarán en Windows 8 y versiones posteriores
. - ↑ Tkachenko, Sergey (24 de noviembre de 2014). "Abrir el símbolo del sistema en pantalla completa en Windows 10" . Winaero . Consultado el 31 de julio de 2019 .
- ↑ "Modos de consola" . Documentación de la consola de Windows . Microsoft . Consultado el 13 de octubre de 2020 a través de Microsoft Docs.
- ↑ Aviso de seguridad de Microsoft (930181): Se publica código de explotación que afecta al subsistema de tiempo de ejecución del servidor cliente de Windows.
- ↑ Yosifovich, Pavel; Ionescu, Alex; Russinovich, Mark E.; Solomon, David A. (15 de mayo de 2017). Windows Internals, Part 1: System architecture, processes, threads, memory management, and more (7.ª ed.). Redmond, Washington: Microsoft Press. p. 67. ISBN 9780735684188.
- ↑ "Referencia de la consola" . Microsoft. 2009. Consultado el 1 de enero de 2010 .
- ↑ "Notas de la versión" . docs.microsoft.com . 27 de junio de 2022.
Consola: Corrección para el problema de que no se mostraba texto de salida en la página de códigos 65001 (utf8).
- ↑ 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
- Documentación de la consola de Windows
- Línea de comandos de Windows: Blog informativo
- Software anteriormente propietario
- Software libre programado en C++
- Emuladores de terminal gratuitos
- Software gratuito de Microsoft
- Software que utiliza la licencia MIT.
- Interfaz de usuario de texto
- Administración de Windows
- Software gratuito exclusivo para Windows