Console Windows – Wikipedia wiki

before-content-x4

Infrastructure pour les applications de console dans Microsoft Windows

after-content-x4

Console Windows est l’infrastructure des applications de console dans Microsoft Windows. Une instance d’une console Windows a un tampon d’écran et un tampon d’entrée. Il permet aux applications de console de s’exécuter à l’intérieur d’une fenêtre ou en mode texte matériel (afin d’occuper l’ensemble de l’écran). L’utilisateur peut basculer entre les deux en utilisant le Tout + ↵ Entrez combinaison clé. Le mode texte n’est pas disponible dans Windows Vista et plus tard. En commençant par Windows 10, cependant, un mode plein écran natif est disponible.

Les instances de console Windows sont généralement utilisées pour les applications qui n’ont pas besoin d’afficher des images mais qui peuvent utiliser la couleur. Les exemples incluent CMD.exe, Windows PowerShell, Far Manager et Midnight Commander.

En 2019, l’infrastructure de console Windows a été open source sous la licence MIT, à côté de Windows Terminal. [d’abord]

Modes de fenêtre et plein écran [ modifier ]]

Dans Windows, une application de console peut s’exécuter en deux modes.

Un mode place le texte dans une fenêtre et utilise le rendu de police d’un système d’exploitation. Dans ce mode, l’interaction d’une application avec l’utilisateur est contrôlée par le système de fenêtres. Ceci est analogue aux applications du système de fenêtre x telles que xterm.

after-content-x4

Le second est le mode plein écran. Dans Windows XP et plus tôt, la console en plein écran utilise un mode de texte matériel et télécharge une police raster sur l’adaptateur vidéo. Ceci est analogue à une console de système de texte. Ce mode plein écran précoce ne prend en charge que les modes de texte compatibles VGA, ce qui lui donne une résolution de caractères maximale de 80 colonnes par 28 lignes. [2] Ce mode a été obsolète dans Windows Vista. [3] Il a été possible de contourner ce problème en installant un pilote d’affichage Windows XP; [3] Cependant, Windows 8 et plus tard ne les acceptent pas. [4] Windows 10 propose à nouveau un mode plein écran, mais cette implémentation utilise le sous-système de rendu Windows natif, au lieu du mode texte. Il peut avoir autant de colonnes et de lignes que s’adapter à l’écran. [5]

Les applications peuvent être conçues pour basculer entre les deux modes en utilisant le Tout + ↵ Entrez combinaison clé.

Détails [ modifier ]]

Le tampon d’entrée est une file d’attente où les événements sont stockés (du clavier, de la souris, etc.). Le tampon de sortie est une grille rectangulaire où les caractères sont stockés, ainsi que leurs attributs. Une fenêtre de console peut avoir plusieurs tampons de sortie, dont un seul est actif (c’est-à-dire affiché) pour un moment donné. Les applications peuvent interagir par programme avec la console Windows via l’API Windows, qui expose les deux fonctions de haut niveau (telles que Lecture et Coffre d'écriture ) et des fonctions de bas niveau (par ex. ReadconsoleInput et WriteConsoleOutput ). [6]

Les utilisateurs peuvent modifier la palette de couleurs ou la police, soit au niveau du système ou au niveau de l’application. Cependant, chaque instance d’une application de console ne peut cependant pas modifier sa palette de couleurs ou sa police à la volée.

Les applications de console Windows sont distinctes des applications MS-DOS, même si celles-ci sur Windows (en particulier sur Windows 9x), elles peuvent ne pas être différentes. Les applications de console Windows ont accès à l’API Windows entière et ne s’exécutent pas sur MS-DOS ou les systèmes d’exploitation compatibles. Les applications DOS, cependant, ne peuvent pas accéder à l’API Windows et ne peuvent fonctionner que sur des versions 32 bits de Windows à l’aide de la machine DOS virtuelle (VDM).

Implémentations [ modifier ]]

Avant Windows 95, il n’y a pas de prise en charge native pour les consoles. Étant donné que Windows 3.1 et antérieurs ne sont qu’une interface graphique pour MS-DOS, la plupart des programmes de texte qui fonctionnaient sur les versions Windows antérieures étaient en fait des programmes MS-DOS exécutés dans une fenêtre. Pour simplifier la tâche de portage des applications à Windows, les premières versions de Visual C ++ sont fournies avec Quickwin, une bibliothèque qui implémente la fonctionnalité de base de la console dans une fenêtre régulière. Une bibliothèque similaire pour Borland C ++ a été appelée Easywin.

Windows 9x [ modifier ]]

La prise en charge de Windows 9x est relativement médiocre par rapport à Windows NT, car la fenêtre de la console s’exécute dans la machine DOS virtuelle système et donc la saisie du clavier dans une application de console Win32 devait être dirigée vers lui par conagent.exe Exécution dans une machine virtuelle DOS qui est également utilisée pour les applications DOS réelles en accrochant l’interruption du clavier. conagent.exe puis appelle Vcond (qui est un VXD). Vcond J’ai ensuite dû passer l’entrée du clavier à la machine virtuelle système, puis enfin à l’application de la console Win32. Outre les performances, un autre problème avec cette implémentation est que les lecteurs locaux à une machine virtuelle DOS ne sont pas visibles pour une application de console Win32. Cela peut provoquer une confusion.

Sous Windows 9x, le tampon d’écran reflète la structure du tampon de texte VGA, avec deux octets par cellule de caractères: un octet pour le code de caractère, un octet pour les attributs (le caractère doit être dans le jeu de caractères OEM, l’attribut est avec un arrière-plan à haute intensité / pas de clignotement). Cela accélère considérablement le fonctionnement si le mode de texte VGA réel est utilisé.

Windows NT et Windows CE [ modifier ]]

Traditionnellement, le sous-système d’exécution client / serveur (CSRSS) a été responsable de la gestion des fenêtres de console sur la famille de systèmes d’exploitation Windows NT. [7] Dans Windows 7, CSRSS engendre un conhost.exe pour chaque fenêtre de console, pour le gérer. Dans Windows 8 et plus tard, les applications de console engendrent leur conhost.exe processus directement. Ce changement a à la fois des implications pour la sécurité et la convivialité. Alors que CSRSS fonctionne dans un contexte de sécurité très privilégié, chacun conhost.exe s’exécute dans le même contexte de sécurité que l’application Console. De plus, dans Windows 7, cette modification a permis à Console Windows de disposer des fonctionnalités du thème Aero Glass. [8]

Sur Windows NT et Windows CE, le tampon d’écran utilise quatre octets par cellule par caractères: deux octets pour le code des caractères, deux octets pour les attributs. Le caractère est ensuite codé dans un sous-ensemble 16 bits d’Unicode (UCS-2). [9] Pour la compatibilité arrière, les API de la console existent en deux versions: Unicode et non Unicode. Les versions non Unicodes des API peuvent utiliser la commutation de la page de code pour étendre la plage des caractères affichés (mais uniquement si des polices truetype sont utilisées pour la fenêtre de la console, étendant ainsi la plage de codes disponibles). Même UTF-8 est disponible en “Code Page 65001” [dix] (Affichage uniquement à partir du sous-ensemble UCS-2 de Unicode complet [ citation requise ]] ).

Depuis la mise à jour de Windows 10 octobre 2018, la console Windows a une prise en charge complète Unicode. [11]

Voir également [ modifier ]]

Les références [ modifier ]]

  1. ^ Cinnamon, Kayla (6 mai 2019). “Présentation du terminal Windows” . Outils de ligne de commande Windows pour les développeurs . Microsoft . Récupéré 10 mai, 2019 .
  2. ^ Julio Sanchez; Maria P. Canton (2003), “VGA Fundamentals, Part II: Two Graphics”, Le manuel graphique PC (pour les programmeurs C ++) (Livre), CRC Press, p. 125, ISBN 0849316782
  3. ^ un b “Certains programmes basés sur DOS 16 bits et l’invite de commande ne s’exécuteront pas en mode plein écran dans Windows Vista et dans Windows 7” . Soutien . Microsoft. 2011-09-23.
  4. ^ “Feuille de route pour le développement de pilotes pour le modèle de pilote d’affichage Windows 2000 (XDDM)” . Windows Dev Center – matériel . Microsoft. 16 novembre 2013 . Récupéré 16 décembre deux mille treize . Les pilotes XDDM et VGA ne se compileront pas sur les versions Windows 8 et ultérieures
  5. ^ Tkachenko, Sergey (2014-11-24). “Ouvrir l’invite de commande complète dans Windows 10” . Winaero . Récupéré 2019-07-31 .
  6. ^ “Modes de console” . Documentation de la console Windows . Microsoft . Récupéré 13 octobre 2020 – via Microsoft Docs.
  7. ^ Microsoft Security Advisory (930181): Exploit Code publié affectant le sous-système d’exécution du serveur client Windows
  8. ^ Yosifovich, Paul; Ionescu, Alex; Russinovich, Mark E .; Salomon, David A. (2017-05-15). Windows internes, partie 1: architecture système, processus, threads, gestion de la mémoire, etc. (7e éd.). Redmond, Washington: Microsoft Press. p. 67. ISBN 9780735684188 .
  9. ^ “Référence de la console” . Microsoft. 2009 . Récupéré 2010-01-01 .
  10. ^ “Notes de version” . Docs.microsoft.com . Console: Correction pour aucun texte de sortie ne s’affiche dans CodePage 65001 (UTF8)
  11. ^ Turner, Rich (2018-11-15). “Ligne de commande Windows: Tampon de texte de sortie UNICODE et UTF-8” . Outils de ligne de commande Windows pour les développeurs . Microsoft . Récupéré 2019-06-14 .

Liens externes [ modifier ]]

after-content-x4