{"id":37222,"date":"2019-10-31T22:16:26","date_gmt":"2019-10-31T19:16:26","guid":{"rendered":"https:\/\/prohoster.info\/blog\/obzor-emulyatorov-terminala\/"},"modified":"2019-10-31T22:16:26","modified_gmt":"2019-10-31T19:16:26","slug":"obzor-emulyatorov-terminala","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/obzor-emulyatorov-terminala","title":{"rendered":"Aper\u00e7u des \u00e9mulateurs de terminal","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Quelques mots de notre bureau de traduction : g\u00e9n\u00e9ralement, tout le monde souhaite traduire les mat\u00e9riaux et publications les plus r\u00e9cents, et nous ne faisons pas exception. Mais les terminaux ne se mettent pas \u00e0 jour chaque semaine. C'est pourquoi nous avons traduit pour vous l'article d'Antoine Bopr\u00e9, publi\u00e9 au printemps 2018 : malgr\u00e9 un \u00ab \u00e2ge \u00bb respectable pour les normes modernes, \u00e0 notre avis, le contenu n'a absolument pas perdu de sa pertinence. De plus, \u00e0 l'origine, il s'agit d'une s\u00e9rie de deux articles, mais nous avons d\u00e9cid\u00e9 de les fusionner en un grand post.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/23b2893d4d23ee402f42f8d686fec788.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLes terminaux occupent une place particuli\u00e8re dans l'histoire de l'informatique, mais au cours des derni\u00e8res d\u00e9cennies, ils ont \u00e9t\u00e9 contraints de \u00ab survivre \u00bb aux c\u00f4t\u00e9s de la ligne de commande face \u00e0 la mont\u00e9e des interfaces graphiques. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Terminal_emulator\">Les \u00e9mulateurs de terminaux<\/a><\/noindex> ont remplac\u00e9 leurs <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Computer_terminal\">fr\u00e8res mat\u00e9riels<\/a><\/noindex>, qui, \u00e0 leur tour, \u00e9taient une modification de syst\u00e8mes \u00e0 cartes perfor\u00e9es et \u00e0 commutateurs. Les distributions modernes sont livr\u00e9es avec une multitude d'\u00e9mulateurs de terminaux de toutes formes et couleurs. Et pendant que beaucoup se contentent du terminal standard fourni par leur environnement de travail, certains utilisent fi\u00e8rement des logiciels manifestement exotiques pour lancer leur interface ou \u00e9diteur de texte pr\u00e9f\u00e9r\u00e9. Mais, comme nous le verrons dans cet article, tous les terminaux n'ont pas \u00e9t\u00e9 cr\u00e9\u00e9s \u00e9gaux : ils varient consid\u00e9rablement en termes de fonctionnalit\u00e9, de taille et de performance.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Certains terminaux pr\u00e9sentent des failles de s\u00e9curit\u00e9 \u00e9tonnantes, et la plupart offrent un ensemble de fonctionnalit\u00e9s tr\u00e8s diff\u00e9rent, de la prise en charge des interfaces \u00e0 onglets aux scripts. Bien que nous <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/88161\/\">ayons examin\u00e9 les \u00e9mulateurs de terminaux il y a longtemps<\/a><\/noindex>, cet article est une mise \u00e0 jour du mat\u00e9riel pr\u00e9c\u00e9dent qui aidera les lecteurs \u00e0 d\u00e9terminer quel terminal utiliser en 2018. La premi\u00e8re moiti\u00e9 de l'article compare les fonctionnalit\u00e9s, tandis que la seconde \u00e9value la performance.<\/p>\n<p>Voici les terminaux que j'ai examin\u00e9s :<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/be76032ca4392c23dd0c111a36b199ef.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPeut-\u00eatre que ce ne sont pas les versions les plus r\u00e9centes, car je me suis limit\u00e9 aux versions stables au moment de la r\u00e9daction de cet article, que j'ai r\u00e9ussi \u00e0 d\u00e9ployer sur Debian 9 ou Fedora 27. La seule exception est Alacritty. C'est un descendant des terminaux avec acc\u00e9l\u00e9ration GPU et il est \u00e9crit dans un langage inhabituel et nouveau pour cette t\u00e2che : Rust. J'ai exclu de ma revue les terminaux web (y compris ceux sur <noindex><a rel=\"nofollow\" href=\"https:\/\/electronjs.org\/\">Electron<\/a><\/noindex>), car des tests pr\u00e9liminaires ont montr\u00e9 leur tr\u00e8s faible performance.<\/p>\n<h4>Prise en charge de l'unicode<\/h4>\n<p>\nJ'ai commenc\u00e9 mes tests avec la prise en charge de l'unicode. Le premier test des terminaux consistait \u00e0 afficher une ligne concernant l'unicode \u00e0 partir de <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Unicode#Web\">l'article sur Wikipedia<\/a><\/noindex>: \u00ab\u00e9, \u0394, \u0419, \u05e7, \u0645, \u0e57, \u3042, \u53f6, \u8449 et \ub9d0\u00bb. Ce test simple montre si le terminal peut correctement fonctionner dans le monde entier. Le terminal xterm n'affiche pas le caract\u00e8re arabe <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mem\">Mem<\/a><\/noindex> dans la configuration par d\u00e9faut :<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/92e1b9f6e7f3129a55d09cd48310c699.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPar d\u00e9faut, xterm utilise une police \u00ab fixe \u00bb classique qui, selon <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Open-source_Unicode_typefaces\">la m\u00eame Wiki<\/a><\/noindex>, a \u00ab une couverture unicode significative depuis 1997 \u00bb. Dans cette police, quelque chose se passe qui fait que le caract\u00e8re s'affiche sous forme de cadre vide et seulement en augmentant la taille du texte \u00e0 20 points, le caract\u00e8re commence enfin \u00e0 s'afficher correctement. Cependant, ce \u00ab patch \u00bb casse l'affichage d'autres caract\u00e8res unicode :<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/4300f72d87bb9b729d4c682e876b4998.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCes captures d'\u00e9cran ont \u00e9t\u00e9 prises sous Fedora 27, car c'est elle qui a donn\u00e9 les meilleurs r\u00e9sultats, contrairement \u00e0 Debian 9, o\u00f9 certaines anciennes versions de terminaux (en particulier - mlterm) ne pouvaient pas fonctionner correctement avec les polices. Heureusement, cela a \u00e9t\u00e9 corrig\u00e9 dans les versions ult\u00e9rieures.<\/p>\n<p>Maintenant, regardez l'affichage de la ligne dans xterm. En fait, les caract\u00e8res Mem et le suivant Semitic <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Qoph\">Qoph<\/a><\/noindex> appartiennent \u00e0 des scripts d'\u00e9criture RTL (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Right-to-left\">right-to-left<\/a><\/noindex>), donc techniquement ils doivent \u00eatre affich\u00e9s de droite \u00e0 gauche. Les navigateurs web, comme Firefox 57, g\u00e8rent correctement la ligne ci-dessus. Une variante plus simple du texte RTL est le mot \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Sarah\">Sara<\/a><\/noindex>\u00bb en h\u00e9breu (<noindex><a rel=\"nofollow\" href=\"https:\/\/he.wikipedia.org\/wiki\/%D7%A9%D7%A8%D7%94\">\u05e9\u05e8\u05d4<\/a><\/noindex>). <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Bi-directional_text\">Page Wiki sur les textes bidirectionnels<\/a><\/noindex> indique ce qui suit :<\/p>\n<blockquote><p>\u00abDe nombreux programmes informatiques ne peuvent pas afficher correctement le texte bidirectionnel. Par exemple, le nom h\u00e9breu \u00abSara\u00bb se compose des caract\u00e8res sin (\u05e9) (qui appara\u00eet \u00e0 droite), puis resh (\u05e8) et enfin hei (\u05d4) (qui doit appara\u00eetre \u00e0 gauche) \u00bb.<\/p><\/blockquote>\n<p>\nDe nombreux terminaux \u00e9chouent \u00e0 ce test : Alacritty, les terminaux d\u00e9riv\u00e9s de Gnome et XFCE, urxvt, st et xterm affichent \u00ab Sara \u00bb \u00e0 l'envers, comme si nous \u00e9crivions ce nom comme \u00ab Aras \u00bb.<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/9decee6d198bd9d3e4f4883a8f2b0da6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUn autre probl\u00e8me des textes bidirectionnels est qu'ils doivent \u00eatre align\u00e9s d'une certaine mani\u00e8re, surtout lorsqu'il s'agit de m\u00e9langer des textes RTL et LTR. Les scripts RTL doivent commencer \u00e0 droite de la fen\u00eatre du terminal, mais que doit-on faire pour les terminaux qui fonctionnent par d\u00e9faut avec l'anglais LTR ? La plupart d'entre eux n'ont pas de m\u00e9canismes sp\u00e9ciaux et alignent tout le texte \u00e0 gauche (y compris dans Konsole). Les exceptions sont pterm et mlterm, qui respectent les normes et alignent ces lignes \u00e0 droite.<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/a32675d44e7cadce6d197d6eb5c8d9e2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Protection contre le collage<\/h4>\n<p>\nLa prochaine caract\u00e9ristique critique que j'ai identifi\u00e9e pour moi-m\u00eame est la protection contre le collage. Bien qu'il soit largement connu que des commandes telles que :<\/p>\n<pre><code class=\"plaintext\">$ curl http:\/\/example.com\/ | sh<\/code><\/pre>\n<p>\nsont des commandes de code d'ex\u00e9cution, peu de gens savent que des commandes cach\u00e9es peuvent p\u00e9n\u00e9trer dans la console lors du collage depuis un navigateur web, m\u00eame apr\u00e8s une inspection minutieuse. <noindex><a rel=\"nofollow\" href=\"http:\/\/thejh.net\/misc\/website-terminal-copy-paste\">Le site de v\u00e9rification de Janna Horn<\/a><\/noindex> montre brillamment comment une commande apparemment inoffensive :<\/p>\n<pre><code class=\"plaintext\">git clone git:\/\/git.kernel.org\/pub\/scm\/utils\/kup\/kup.git<\/code><\/pre>\n<p>\nse transforme lors de son collage depuis le site de Horn dans le terminal en un tel d\u00e9sastre :<\/p>\n<pre><code class=\"plaintext\">git clone \/dev\/null;\n    clear;\n\techo -n \"Bonjour \";\n\twhoami|tr -d 'n';\n\techo -e '!nC'\u00e9tait une mauvaise id\u00e9e. Ne copiez pas de code depuis des sites web que vous ne connaissez pas ! \n\tVoici la premi\u00e8re ligne de votre \/etc\/passwd : ';\n\thead -n1 \/etc\/passwd\n\tgit clone git:\/\/git.kernel.org\/pub\/scm\/utils\/kup\/kup.git<\/code><\/pre>\n<p>\nComment cela fonctionne-t-il ? Le code malveillant est d\u00e9plac\u00e9 dans un bloc <b><span><\/b>, qui est d\u00e9plac\u00e9 hors de la port\u00e9e de l'utilisateur par les moyens du CSS.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/cirw.in\/blog\/bracketed-paste\">Le mode Bracketed paste<\/a><\/noindex> est explicitement con\u00e7u pour neutraliser de telles attaques. Dans ce mode, les terminaux encadrent le texte coll\u00e9 avec une paire de s\u00e9quences d'\u00e9chappement sp\u00e9ciales pour informer le shell de l'origine de ce texte. Ainsi, le shell re\u00e7oit un signal qu'il peut ignorer les caract\u00e8res sp\u00e9ciaux que le texte coll\u00e9 pourrait contenir. Tous les terminaux, y compris le v\u00e9n\u00e9rable xterm, prennent en charge cette fonction, mais le collage en mode Bracketed n\u00e9cessite le soutien du shell ou de l'application ex\u00e9cut\u00e9e sur le terminal. Par exemple, le logiciel utilisant <noindex><a rel=\"nofollow\" href=\"https:\/\/tiswww.case.edu\/php\/chet\/readline\/rltop.html\">GNU Readline<\/a><\/noindex> (le m\u00eame Bash), n\u00e9cessite un fichier <b>~ \/.inputrc<\/b>:<\/p>\n<pre><code class=\"plaintext\">set enable-bracketed-paste on<\/code><\/pre>\n<p>\nMalheureusement, le site de test de Horne montre \u00e9galement comment contourner cette protection \u00e0 travers le formatage du texte et terminer pr\u00e9matur\u00e9ment l'application du mode Bracketed. Cela fonctionne parce que certains terminaux filtrent incorrectement les s\u00e9quences d'\u00e9chappement avant d'ajouter les leurs. Par exemple, je n'ai pas pu r\u00e9ussir mes tests avec Konsole m\u00eame avec la configuration correcte. <b>.inputrc<\/b> fichier. Cela signifie que vous pouvez facilement subir des dommages de configuration syst\u00e8me dues \u00e0 une application non prise en charge ou \u00e0 un shell mal configur\u00e9. C'est particuli\u00e8rement dangereux lorsque vous vous connectez \u00e0 des serveurs distants, o\u00f9 une configuration soign\u00e9e est plus rare, surtout si vous avez de nombreuses machines distantes.<\/p>\n<p>Une bonne solution \u00e0 ce probl\u00e8me est le plugin de confirmation pour le terminal <b>urxvt<\/b>, qui demande simplement la permission d'ins\u00e9rer tout texte contenant des nouvelles lignes. Je n'ai trouv\u00e9 aucune option plus s\u00e9curis\u00e9e pour l'attaque textuelle d\u00e9crite par Horne.<\/p>\n<h4>Onglets et profils<\/h4>\n<p>\nUne fonction populaire de nos jours est la prise en charge de l'interface \u00e0 onglets, que nous d\u00e9finirons comme une fen\u00eatre de terminal contenant plusieurs autres terminaux. Pour diff\u00e9rents terminaux, cette fonction varie, et bien que les terminaux traditionnels tels que xterm ne prennent pas en charge les onglets, des incarnations plus modernes du terminal comme Xfce Terminal, GNOME Terminal et Konsole poss\u00e8dent cette fonctionnalit\u00e9. Urxvt prend \u00e9galement en charge les onglets, mais uniquement si un plugin est utilis\u00e9. Cependant, en ce qui concerne le support des onglets, le leader incontest\u00e9 est Terminator : non seulement il prend en charge les onglets, mais il peut \u00e9galement disposer les terminaux dans n'importe quel ordre (voir l'image ci-dessous).<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/5ac2cdbdd969420cd7c19597d20c8c35.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUne autre caract\u00e9ristique de Terminator est la possibilit\u00e9 de 'grouper' ces onglets ensemble et d'envoyer les m\u00eames frappes de touches \u00e0 plusieurs terminaux simultan\u00e9ment, ce qui offre un outil brut pour ex\u00e9cuter des op\u00e9rations en masse sur plusieurs serveurs en m\u00eame temps. Une fonctionnalit\u00e9 similaire est \u00e9galement disponible dans Konsole. Pour utiliser cette fonctionnalit\u00e9 dans d'autres terminaux, il est n\u00e9cessaire d'utiliser des logiciels tiers tels que <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/duncs\/clusterssh\">Cluster SSH<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/hea-www.harvard.edu\/~fine\/Tech\/xlax.html\">xlax<\/a><\/noindex> ou <noindex><a rel=\"nofollow\" href=\"https:\/\/tmux.github.io\/\">tmux<\/a><\/noindex>.<\/p>\n<p>Les onglets fonctionnent particuli\u00e8rement bien avec les profils : par exemple, vous pouvez avoir un onglet pour les e-mails, un autre pour le chat, et ainsi de suite. Cela est bien pris en charge par le terminal Konsole et GNOME Terminal. Les deux permettent \u00e0 chaque onglet de lancer automatiquement son profil. Terminator prend \u00e9galement en charge les profils, mais je n'ai pas r\u00e9ussi \u00e0 trouver un moyen de lancer automatiquement des programmes sp\u00e9cifiques lors de l'ouverture d'un onglet particulier. D'autres terminaux n'ont absolument pas la notion de \u00ab profil \u00bb.<\/p>\n<h4>Fronces<\/h4>\n<p>\nLa derni\u00e8re chose que je vais aborder dans la premi\u00e8re partie de cet article est l'apparence des terminaux. Par exemple, GNOME, Xfce et urxvt prennent en charge la transparence, mais r\u00e9cemment, ils ont abandonn\u00e9 le support des images d'arri\u00e8re-plan, ce qui a conduit certains utilisateurs \u00e0 passer \u00e0 d'autres terminaux. <noindex><a rel=\"nofollow\" href=\"https:\/\/gnunn1.github.io\/tilix-web\/\">Tilix<\/a><\/noindex>. Personnellement, \u00e7a me convient et c'est simplement <b>Xresources<\/b>, qui \u00e9tablit un ensemble de couleurs de fond de base pour urxvt. Cependant, les th\u00e8mes de couleurs non standard peuvent \u00e9galement poser des probl\u00e8mes. Par exemple, <noindex><a rel=\"nofollow\" href=\"http:\/\/ethanschoonover.com\/solarized\">Solarized<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/altercation\/solarized\/issues\/220\">ne fonctionne pas<\/a><\/noindex> pour les applications <noindex><a rel=\"nofollow\" href=\"http:\/\/hisham.hm\/htop\/\">htop<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"http:\/\/iptraf.seul.org\/\">IPTraf<\/a><\/noindex>, car elles utilisent d\u00e9j\u00e0 leurs propres couleurs.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/VT100\">Le terminal original VT100<\/a><\/noindex> ne supportait pas la couleur, et les nouveaux \u00e9taient souvent limit\u00e9s \u00e0 une palette de 256 couleurs. Pour les utilisateurs exp\u00e9riment\u00e9s qui stylisent leurs terminaux avec des requ\u00eates shell ou des lignes de statut de mani\u00e8re complexe, cela peut devenir une limitation d\u00e9sagr\u00e9able. <noindex><a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/XVilka\/8346728\">Gist<\/a><\/noindex> suivre quels terminaux prennent en charge la \u00ab True Color \u00bb. Mes tests confirment que st, Alacritty et les terminaux bas\u00e9s sur VTE supportent tr\u00e8s bien la True Color. D'autres terminaux ne s'en sortent pas vraiment bien et en fait ne rendent m\u00eame pas 256 couleurs. Vous pouvez voir ci-dessous la diff\u00e9rence de prise en charge de la True Color entre les terminaux GNOME, st et xterm, qui g\u00e8rent plut\u00f4t bien cela avec leur palette de 256 couleurs, et urxvt, qui \u00e9choue non seulement au test, mais montre m\u00eame des caract\u00e8res clignotants \u00e0 la place.<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/bc6ceac84a1918b9bfa14a5cadd28746.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCertains terminaux analysent \u00e9galement le texte pour d\u00e9tecter les sch\u00e9mas d'URL afin de rendre les liens cliquables. Cela s'applique \u00e0 tous les terminaux d\u00e9riv\u00e9s de VTE, tandis qu'urxvt n\u00e9cessite un module compl\u00e9mentaire sp\u00e9cial pour transformer les adresses URL par un clic ou via un raccourci clavier. D'autres terminaux que j'ai test\u00e9s affichent les adresses URL de mani\u00e8res diff\u00e9rentes.<\/p>\n<p>Enfin, la nouvelle tendance des terminaux est l'optionnalit\u00e9 du buffer de d\u00e9filement. Par exemple, dans st, il n'y a pas de buffer de d\u00e9filement ; il est pr\u00e9vu que l'utilisateur utilise un multiplexeur de terminal, comme tmux et <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gnu.org\/software\/screen\/\">GNU Screen<\/a><\/noindex>.<\/p>\n<p>Alacritty manque \u00e9galement de buffers de d\u00e9filement invers\u00e9, mais <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/124\">son support sera ajout\u00e9 bient\u00f4t<\/a><\/noindex> en raison des \u00ab nombreux retours \u00bb \u00e0 ce sujet de la part des utilisateurs. En dehors de ces exceptions, chaque terminal que j'ai pu v\u00e9rifier prend en charge le d\u00e9filement invers\u00e9.<\/p>\n<h4>Interm\u00e9diaire r\u00e9sultats<\/h4>\n<p>\nDans la deuxi\u00e8me partie du mat\u00e9riel (<i>dans l'original, il s'agissait de deux articles diff\u00e9rents, \u2014 note du traducteur.<\/i>) nous comparerons les performances, l'utilisation de la m\u00e9moire et la latence. Mais nous voyons d\u00e9j\u00e0 que certains des terminaux examin\u00e9s pr\u00e9sentent des d\u00e9fauts s\u00e9rieux. Par exemple, les utilisateurs travaillant r\u00e9guli\u00e8rement avec des scripts RTL peuvent se tourner vers mlterm et pterm, car ils g\u00e8rent ces t\u00e2ches mieux que les autres. Konsole s'est \u00e9galement bien comport\u00e9. Les utilisateurs qui ne travaillent pas avec des scripts RTL peuvent choisir quelque chose d'autre.<\/p>\n<p>En termes de protection contre l'injection de code malveillant, urxvt se distingue par sa mise en \u0153uvre particuli\u00e8re de la protection contre ce type d'attaques, qui me semble d\u00e9finitivement pratique. Ceux qui recherchent des fonctionnalit\u00e9s avanc\u00e9es devraient jeter un \u0153il \u00e0 Konsole. Enfin, il convient de noter que VTE est une excellente base pour les terminaux, garantissant le support des couleurs, la reconnaissance des URL, etc. \u00c0 premi\u00e8re vue, le terminal par d\u00e9faut livr\u00e9 avec votre environnement pr\u00e9f\u00e9r\u00e9 peut r\u00e9pondre \u00e0 tous les besoins, mais laissons cette question ouverte jusqu'\u00e0 ce que nous ayons examin\u00e9 les performances.<\/p>\n<p><i><\/p>\n<h4>Poursuivons la discussion<\/h4>\n<p><\/i><br \/>\nEn g\u00e9n\u00e9ral, les performances des terminaux peuvent sembler \u00eatre un probl\u00e8me artificiel, cependant, il s'av\u00e8re que certains d'entre eux pr\u00e9sentent une latence \u00e9tonnamment \u00e9lev\u00e9e pour un logiciel de ce type fondamental. Nous examinerons \u00e9galement ce que l'on appelle traditionnellement la \u00ab vitesse \u00bb (en r\u00e9alit\u00e9, il s'agit de la vitesse de d\u00e9filement) et la consommation de m\u00e9moire par le terminal (en tenant compte du fait qu'aujourd'hui cela n'est pas aussi critique qu'il y a des d\u00e9cennies).<\/p>\n<h4>Latence<\/h4>\n<p>\nApr\u00e8s une \u00e9tude approfondie des performances des terminaux, je suis arriv\u00e9 \u00e0 la conclusion que le facteur le plus important \u00e0 cet \u00e9gard est la taille de la latence (ping). Dans mon article <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typing-with-pleasure\/\">\u00abNous \u00e9crivons avec plaisir\u00bb<\/a><\/noindex> Pavel Fatin a examin\u00e9 le d\u00e9lai des diff\u00e9rents \u00e9diteurs de texte et a sugg\u00e9r\u00e9 que les terminaux, \u00e0 cet \u00e9gard, pouvaient fonctionner plus lentement que les \u00e9diteurs de texte les plus rapides. C'est cette suggestion qui m'a conduit, finalement, \u00e0 lancer mes propres tests et \u00e0 r\u00e9diger cet article.<\/p>\n<p>Mais qu'est-ce que le d\u00e9lai et pourquoi est-il si important ? Dans son article, Fatin le d\u00e9finit comme \u00ab le d\u00e9lai entre l'appui sur une touche et la mise \u00e0 jour correspondante de l'\u00e9cran \u00bb et cite <noindex><a rel=\"nofollow\" href=\"https:\/\/books.google.com\/books\/about\/Handbook_of_Human_Computer_Interaction.html?id=WuQbERgXR10C&amp;redir_esc=y\">\u00ab Le guide de l'interaction homme-ordinateur \u00bb<\/a><\/noindex>, qui affirme : \u00ab Le d\u00e9lai de retour visuel sur l'\u00e9cran de l'ordinateur a une influence significative sur le comportement de la dactylo et sa satisfaction \u00bb.<\/p>\n<p>Fatin explique que ce ping a des cons\u00e9quences plus profondes que la simple satisfaction : \u00ab taper devient plus lent, il y a plus d'erreurs, et la tension des yeux et des muscles augmente \u00bb. En d'autres termes, un d\u00e9lai plus long peut entra\u00eener des fautes de frappe ainsi qu'une diminution de la qualit\u00e9 du code, car il impose une charge cognitive suppl\u00e9mentaire au cerveau. Mais ce qui est encore pire, c'est que le ping \u00ab augmente la tension des yeux et des muscles \u00bb, ce qui, apparemment, implique <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Repetitive_strain_injury\">le d\u00e9veloppement de blessures professionnelles<\/a><\/noindex> \u00e0 l'avenir (<i>apparemment, l'auteur fait r\u00e9f\u00e9rence \u00e0 des probl\u00e8mes li\u00e9s aux muscles des yeux, du dos, des mains et, bien s\u00fbr, de la vue, - note de traduction.<\/i>) en raison de la tension r\u00e9p\u00e9t\u00e9e.<\/p>\n<p>Certains de ces effets sont connus depuis longtemps, et les r\u00e9sultats <noindex><a rel=\"nofollow\" href=\"https:\/\/doi.org\/10.1080\/00140137608931531\">l'\u00e9tude<\/a><\/noindex>, publi\u00e9s en 1976 dans le journal Ergonomics, indiquent qu'un d\u00e9lai de 100 millisecondes \u00ab d\u00e9grade consid\u00e9rablement la vitesse de frappe \u00bb. Plus r\u00e9cemment, le guide de l'utilisateur GNOME a \u00e9tabli <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.gnome.org\/hig-book\/3.12\/feedback-response-times.html.en\">un temps de r\u00e9ponse acceptable<\/a><\/noindex> \u00e0 10 millisecondes, et si nous allons plus loin, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=vOvQCPLkPt4\">Microsoft Research<\/a><\/noindex> montre que l'id\u00e9al est de 1 milliseconde.<\/p>\n<p>Fatin a men\u00e9 ses tests sur des \u00e9diteurs de texte ; il a cr\u00e9\u00e9 un outil portatif appel\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typometer\">Typometer<\/a><\/noindex>, que j'ai utilis\u00e9 pour v\u00e9rifier le ping dans les \u00e9mulateurs de terminal. Gardez \u00e0 l'esprit que le test a \u00e9t\u00e9 effectu\u00e9 en mode simulation : en r\u00e9alit\u00e9, nous devons prendre en compte \u00e0 la fois la latence d'entr\u00e9e (clavier, contr\u00f4leur USB, etc.) et de sortie (tampon de la carte graphique, moniteur). Selon Fatin, dans les configurations typiques, cela tourne autour de 20 ms. Avec du mat\u00e9riel gamer, il est possible d'atteindre une latence de seulement 3 millisecondes. Puisque nous avons d\u00e9j\u00e0 un tel mat\u00e9riel rapide, l'application ne devrait pas ajouter de latence suppl\u00e9mentaire. L'objectif de Fatin est de ramener la latence de l'application \u00e0 1 milliseconde, voire d'atteindre un ensemble sans <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jetbrains.com\/idea\/2015\/08\/experimental-zero-latency-typing-in-intellij-idea-15-eap\/\">latence mesurable<\/a><\/noindex>, comme dans <noindex><a rel=\"nofollow\" href=\"https:\/\/confluence.jetbrains.com\/display\/IDEADEV\/IDEA+15+EAP\">IntelliJ IDEA 15<\/a><\/noindex>.<\/p>\n<p>Voici les r\u00e9sultats de mes mesures, ainsi que certains r\u00e9sultats de Fatin pour montrer que mon exp\u00e9rience concorde avec ses tests :<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/d7ae46c8309e9cfd517164d5fed093f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa premi\u00e8re chose qui m'a frapp\u00e9, c'est le meilleur temps de r\u00e9ponse des anciens programmes, comme xterm et mlterm. Avec la latence de registre la plus \u00e9lev\u00e9e (2,4 ms), ils ont montr\u00e9 de meilleurs r\u00e9sultats que le terminal moderne le plus rapide (10,6 ms pour st). Aucun terminal moderne ne descend en dessous du seuil de 10 millisecondes. En particulier, Alacritty ne r\u00e9pond pas aux exigences de \u00ab le plus rapide des \u00e9mulateurs de terminal existants \u00bb, bien que ses r\u00e9sultats se soient am\u00e9lior\u00e9s depuis le premier contr\u00f4le en 2017. En effet, les auteurs du projet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/673\">sont au courant de la situation<\/a><\/noindex> et travaillent \u00e0 am\u00e9liorer l'affichage. Il convient \u00e9galement de noter que Vim, utilisant GTK3, est de mani\u00e8re significative plus lent que son \u00e9quivalent GTK2. On peut en conclure que GTK3 introduit une latence suppl\u00e9mentaire, et cela se refl\u00e8te dans tous les autres terminaux qui l'utilisent (Terminator, Xfce4 Terminal et GNOME Terminal).<\/p>\n<p>Cependant, pour l'\u0153il, les diff\u00e9rences peuvent \u00eatre imperceptibles. Comme l'explique Fatin : \u00ab il n'est pas n\u00e9cessaire d'\u00eatre conscient de la latence pour qu'elle ait un effet sur vous \u00bb. Fatin avertit \u00e9galement sur l'\u00e9cart type : \u00ab toute variation dans la dur\u00e9e de la latence (tremblement) cr\u00e9e une charge suppl\u00e9mentaire en raison de son impr\u00e9visibilit\u00e9. \u00bb<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/e128a7e6c32a1517c98ffc612fe09128.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe graphique ci-dessus a \u00e9t\u00e9 obtenu sur Debian 9 (stretch) pur avec <noindex><a rel=\"nofollow\" href=\"https:\/\/i3wm.org\/\">le gestionnaire de fen\u00eatres i3<\/a><\/noindex>. Cet environnement donne les meilleurs r\u00e9sultats dans les tests de latence. Il s'av\u00e8re que GNOME ajoute un ping suppl\u00e9mentaire de 20 ms pour toutes les mesures. Une explication possible \u00e0 cela est la pr\u00e9sence de programmes traitant les \u00e9v\u00e9nements d'entr\u00e9e de mani\u00e8re synchrone. Fatin prend cet exemple pour un tel cas. <noindex><a rel=\"nofollow\" href=\"http:\/\/www.workrave.org\/\">Workrave<\/a><\/noindex>, qui ajoute un d\u00e9lai en traitant tous les \u00e9v\u00e9nements d'entr\u00e9e de mani\u00e8re synchrone. Par d\u00e9faut, GNOME est \u00e9galement \u00e9quip\u00e9 d'un gestionnaire de fen\u00eatres <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mutter_(software)\">Mutter<\/a><\/noindex>, qui cr\u00e9e un niveau suppl\u00e9mentaire de mise en m\u00e9moire tampon, ce qui affecte le ping et ajoute au moins 8 millisecondes de latence.<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/3585d1edf4cee214d7a53858943b1845.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Vitesse de d\u00e9filement<\/h4>\n<p>\nLe test suivant est une v\u00e9rification traditionnelle de la \u00ab vitesse \u00bb ou de la \u00ab bande passante \u00bb, qui mesure \u00e0 quelle vitesse le terminal peut faire d\u00e9filer une page, affichant une grande quantit\u00e9 de texte \u00e0 l'\u00e9cran. La m\u00e9canique du test varie ; le test original consistait simplement \u00e0 g\u00e9n\u00e9rer la m\u00eame cha\u00eene de texte \u00e0 l'aide de la commande seq. D'autres tests incluent le test de Thomas E. Dick (accompagnant xterm), dans lequel un fichier terminfo.src est r\u00e9guli\u00e8rement <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/xterm.faq.html#scroll_speed\">d\u00e9charg\u00e9.<\/a><\/noindex>Dans une autre revue de performance des terminaux, <noindex><a rel=\"nofollow\" href=\"https:\/\/danluu.com\/term-latency\/\">Den Liu<\/a><\/noindex> utilise une cha\u00eene de bytes al\u00e9atoires en codage base32 qui est affich\u00e9e dans le terminal avec cat. Liu consid\u00e8re ce test comme \u00ab un \u00e9talon tellement inutile qu\u2019on peut l\u2019imaginer \u00bb et propose d\u2019utiliser \u00e0 la place la r\u00e9activit\u00e9 du terminal comme principal indicateur. Dick qualifie \u00e9galement son test de trompeur. N\u00e9anmoins, les deux auteurs reconnaissent que la bande passante de la fen\u00eatre du terminal peut poser probl\u00e8me. Liu a constat\u00e9 un gel d'Emacs Eshell lors de l'affichage de fichiers volumineux, tandis que Dick a optimis\u00e9 le terminal pour \u00e9liminer la lenteur visuelle d'xterm. Par cons\u00e9quent, ce test a encore un certain int\u00e9r\u00eat, mais comme le processus de rendu varie consid\u00e9rablement d\u2019un terminal \u00e0 l\u2019autre, il peut \u00e9galement \u00eatre utilis\u00e9 comme un composant de test pour v\u00e9rifier d'autres param\u00e8tres.<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/3231877fdcd7725c3248fb393185ece4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIci, nous voyons que rxvt et st se d\u00e9marquent des concurrents, suivis de pr\u00e8s par le bien plus r\u00e9cent Alacritty, qui est d\u00e9velopp\u00e9 avec une focalisation sur la rapidit\u00e9. Ensuite, nous avons Xfce (famille VTE) et Konsole, qui fonctionnent presque deux fois plus vite. Enfin, xterm arrive en dernier, avec une performance cinq fois plus lente que rxvt. Pendant le test, xterm avait \u00e9galement une forte r\u00e9manence ; le texte d\u00e9filant \u00e9tait difficile \u00e0 distinguer, m\u00eame s'il s'agissait de la m\u00eame ligne. Konsole s'est montr\u00e9 rapide, mais affichait parfois un comportement \u00ab capricieux \u00bb : l'affichage se figeait de temps en temps, montrant le texte partiellement ou ne l'affichant pas du tout. D'autres terminaux affichaient les lignes clairement, y compris st, Alacritty et rxvt.<\/p>\n<p>Diki explique que les diff\u00e9rences de performance sont li\u00e9es \u00e0 la conception des tampons de d\u00e9filement dans diff\u00e9rents terminaux. En particulier, il reproche \u00e0 rxvt et \u00e0 d'autres terminaux de ne \u00ab pas suivre les r\u00e8gles g\u00e9n\u00e9rales \u00bb :<\/p>\n<blockquote><p>\u00ab Contrairement \u00e0 xterm, rxvt ne tente pas d'afficher toutes les mises \u00e0 jour. S'il accuse du retard, il abandonne certaines mises \u00e0 jour pour rattraper son retard. Cela a eu un impact plus important sur la vitesse de d\u00e9filement apparente que sur l'organisation de la m\u00e9moire interne. Un inconv\u00e9nient \u00e9tait que l'animation ASCII \u00e9tait quelque peu inexacte. \u00bb<\/p><\/blockquote>\n<p>\nPour corriger cette lenteur apparente d'xterm, Diki propose d'utiliser la ressource <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/manpage\/xterm.html#VT100-Widget-Resources:fastScroll\">fastScroll<\/a><\/noindex>, qui permet \u00e0 xterm de rejeter certaines mises \u00e0 jour d'\u00e9cran afin de ne pas perdre le fil. Mes tests confirment que fastScroll am\u00e9liore les performances et place xterm au m\u00eame niveau que rxvt. Cela dit, c'est un correctif assez grossier, comme l'explique Diki lui-m\u00eame : \u00ab parfois, xterm \u2014 tout comme konsole \u2014 semble se figer, car il attend un nouvel ensemble de mises \u00e0 jour d'\u00e9cran apr\u00e8s que certaines d'entre elles ont \u00e9t\u00e9 supprim\u00e9es. \u00bb Dans ce sens, il semble que d'autres terminaux aient trouv\u00e9 le meilleur compromis entre vitesse et int\u00e9grit\u00e9 de l'affichage.<\/p>\n<h4>Consommation des ressources<\/h4>\n<p>\nInd\u00e9pendamment de la pertinence de consid\u00e9rer la vitesse de d\u00e9filement comme un indicateur de performance, ce test permet de simuler une charge sur les terminaux, ce qui nous permet \u00e0 son tour de mesurer d'autres param\u00e8tres tels que l'utilisation de la m\u00e9moire ou du disque. Les m\u00e9triques ont \u00e9t\u00e9 obtenues en ex\u00e9cutant le test indiqu\u00e9 <b>seq<\/b> sous la surveillance d'un processus Python. Il a collect\u00e9 les donn\u00e9es des compteurs <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man2\/getrusage.2.html\">getrusage ()<\/a><\/noindex> pour <b>ru_maxrss<\/b>, le total <b>ru_oublock<\/b> et <b>ru_inblock<\/b> et un simple chronom\u00e8tre.<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/df378c145a559ed4aad98fa70b58c72c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDans ce test, ST se classe premier avec une consommation moyenne de m\u00e9moire de 8 Mo, ce qui n'est pas surprenant compte tenu que l'id\u00e9e principale du projet est la simplicit\u00e9. mlterm, xterm et rxvt consomment un peu plus, environ 12 Mo. Un autre r\u00e9sultat notable est Alacritty, qui n\u00e9cessite 30 Mo pour fonctionner. Ensuite viennent les terminaux de la famille VTE avec une consommation variant de 40 \u00e0 60 Mo, ce qui est assez \u00e9lev\u00e9. Cette consommation peut s'expliquer par le fait que ces terminaux utilisent des biblioth\u00e8ques de niveau sup\u00e9rieur, comme GTK. Konsole arrive en derni\u00e8re position avec une consommation \u00e9norme de 65 Mo de m\u00e9moire pendant les tests, bien que cela puisse \u00eatre justifi\u00e9 par son large \u00e9ventail de fonctionnalit\u00e9s.<\/p>\n<p>Compar\u00e9 aux r\u00e9sultats pr\u00e9c\u00e9dents obtenus il y a dix ans, tous les programmes consomment maintenant beaucoup plus de m\u00e9moire. Auparavant, Xterm n\u00e9cessitait 4 Mo, et maintenant il en faut 15 juste pour se lancer. Une augmentation similaire de la consommation est constat\u00e9e avec rxvt, qui n\u00e9cessite maintenant 16 Mo d\u00e8s l'installation. Le terminal Xfce occupe 34 Mo, soit trois fois plus qu'avant, tandis que GNOME Terminal n\u00e9cessite seulement 20 Mo. Bien s\u00fbr, tous les tests pr\u00e9c\u00e9dents ont \u00e9t\u00e9 r\u00e9alis\u00e9s sur une architecture 32 bits. Lors de l'LCA 2012, Rusty Russell <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/477155\/\">qu'une fois, il avait accidentellement supprim\u00e9 certains fichiers syst\u00e8me en modifiant le th\u00e8me Ubuntu Yaru. De plus, il n'avait pas de sauvegardes en raison d'une erreur dans les expressions r\u00e9guli\u00e8res. Selon ses dires, un syst\u00e8me d'exploitation immuable aurait pu \u00e9viter ces probl\u00e8mes.<\/a><\/noindex>, il existe de nombreuses raisons plus subtiles qui peuvent expliquer l'augmentation de la consommation de m\u00e9moire. Cela dit, nous vivons actuellement \u00e0 une \u00e9poque o\u00f9 nous disposons de plusieurs gigaoctets de m\u00e9moire, donc nous nous en sortirons d'une mani\u00e8re ou d'une autre.<\/p>\n<p>N\u00e9anmoins, je ne peux m'emp\u00eacher de penser qu'allouer davantage de m\u00e9moire \u00e0 un logiciel fondamental comme un terminal est un gaspillage de ressources. Ces programmes devraient \u00eatre les plus l\u00e9gers parmi les plus l\u00e9gers, capables de fonctionner sur n'importe quelle \"bo\u00eete\", m\u00eame une bo\u00eete \u00e0 chaussures, si jamais nous en venons \u00e0 les \u00e9quiper de syst\u00e8mes Linux (et vous savez que cela arrivera). Mais avec ces chiffres, l'utilisation de la m\u00e9moire posera un probl\u00e8me dans le futur dans n'importe quel environnement lors du lancement de plusieurs terminaux, \u00e0 l'exception de la situation avec quelques-uns des terminaux les plus l\u00e9gers et aux capacit\u00e9s limit\u00e9es. Pour compenser cela, GNOME Terminal, Konsole, urxvt, Terminator et Xfce Terminal disposent d'un mode Daemon, qui permet de g\u00e9rer plusieurs terminaux \u00e0 travers un seul processus, ce qui limite leur consommation de m\u00e9moire.<\/p>\n<p><img decoding=\"async\" alt=\"Aper\u00e7u des \u00e9mulateurs de terminal\" src=\"\/wp-content\/uploads\/2019\/08\/65ade9cc81284f24f0c44322eec73ef0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAu cours de mes tests, j'ai d\u00e9couvert un autre r\u00e9sultat inattendu concernant la lecture et l'\u00e9criture sur disque : je ne m'attendais \u00e0 rien ici, mais il s'av\u00e8re que certains terminaux \u00e9crivent les donn\u00e9es les plus volumineuses sur le disque. Ainsi, la biblioth\u00e8que VTE maintient en fait un tampon de d\u00e9filement sur le disque (cette caract\u00e9ristique <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=631685\">a \u00e9t\u00e9 remarqu\u00e9e en 2010<\/a><\/noindex>, et cela se produit encore aujourd'hui). Mais contrairement aux anciennes impl\u00e9mentations, maintenant, au moins, ces donn\u00e9es sont chiffr\u00e9es avec AES256 GCM (<noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=664611#c48\">depuis la version 0.39.2<\/a><\/noindex>). Mais une question l\u00e9gitime se pose : qu'est-ce qui est si particulier dans la biblioth\u00e8que VTE qu'elle n\u00e9cessite une approche aussi non standard pour son impl\u00e9mentation\u2026<\/p>\n<h4>Conclusion<\/h4>\n<p>\nDans la premi\u00e8re partie de l'article, nous avons d\u00e9couvert que les terminaux bas\u00e9s sur VTE ont un bon ensemble de fonctionnalit\u00e9s, mais nous voyons maintenant que cela implique certains co\u00fbts pour assurer leur performance. Actuellement, la m\u00e9moire n'est pas un probl\u00e8me, car tous les terminaux VTE peuvent \u00eatre g\u00e9r\u00e9s via un processus Daemon, qui limite leur app\u00e9tit. Cependant, les anciens syst\u00e8mes, ayant des limitations physiques sur la quantit\u00e9 de m\u00e9moire vive et le tampon du noyau, peuvent encore avoir besoin d'anciennes versions de terminaux, car elles consomment significativement moins de ressources. Bien que les terminaux VTE aient bien perform\u00e9 lors des tests de bande passante (d\u00e9filement), leur latence d'affichage des donn\u00e9es \u00e0 l'\u00e9cran d\u00e9passe le seuil \u00e9tabli dans le manuel de l'utilisateur GNOME. Il est probable que les d\u00e9veloppeurs de VTE devraient en tenir compte. Si l'on consid\u00e8re que m\u00eame pour les utilisateurs d\u00e9butants de Linux, la rencontre avec le terminal est in\u00e9vitable, ils pourraient le rendre plus convivial. Pour les geeks exp\u00e9riment\u00e9s, passer \u00e0 un terminal par d\u00e9faut peut m\u00eame signifier une r\u00e9duction de la charge visuelle et \u00e9viter des blessures professionnelles et maladies \u00e0 l'avenir \u00e0 cause de longues sessions de travail. Malheureusement, seuls les anciens xterm et mlterm nous am\u00e8nent \u00e0 ce seuil magique de ping de 10 millisecondes, ce qui est inacceptable pour beaucoup.<\/p>\n<p>Les mesures de contr\u00f4le ont \u00e9galement montr\u00e9 qu'en raison du d\u00e9veloppement des environnements graphiques Linux, les d\u00e9veloppeurs ont d\u00fb faire plusieurs compromis. Certains utilisateurs devraient se tourner vers des gestionnaires de fen\u00eatres classiques, car ils permettent une r\u00e9duction significative du ping. Malheureusement, il n\u2019a pas \u00e9t\u00e9 possible de mesurer la latence pour Wayland : le programme Typometer, que j'utilisais, a \u00e9t\u00e9 con\u00e7u pour ce que Wayland se propose de pr\u00e9venir - l'espionnage des autres fen\u00eatres. J'esp\u00e8re que le compositing de Wayland est plus performant que celui de X.org, et j'esp\u00e8re \u00e9galement qu'\u00e0 l'avenir, quelqu'un trouvera un moyen d'\u00e9valuer le niveau de latence dans cet environnement.<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/463785\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0430\u0440\u0430 \u0441\u043b\u043e\u0432 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e translate-\u0431\u044e\u0440\u043e: \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u0441\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0441\u0432\u0435\u0436\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438 \u043c\u044b \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u041d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0438 \u0434\u043b\u044f \u0432\u0430\u0441 \u0441\u0442\u0430\u0442\u044c\u044e \u0410\u043d\u0442\u0443\u0430\u043d\u0430 \u0411\u043e\u043f\u0440\u0435, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0432\u0435\u0441\u043d\u043e\u0439 2018 \u0433\u043e\u0434\u0430: \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0441\u043e\u043b\u0438\u0434\u043d\u044b\u0439 \u043f\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u0440\u043a\u0430\u043c \u00ab\u0432\u043e\u0437\u0440\u0430\u0441\u0442\u00bb, \u043d\u0430 \u043d\u0430\u0448 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u043b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27911,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0430\u0440\u0430 \u0441\u043b\u043e\u0432 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e translate-\u0431\u044e\u0440\u043e: \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u0441\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0441\u0432\u0435\u0436\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438 \u043c\u044b \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u041d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/obzor-emulyatorov-terminala\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0431\u0437\u043e\u0440 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0430\u0440\u0430 \u0441\u043b\u043e\u0432 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e translate-\u0431\u044e\u0440\u043e: \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u0441\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0441\u0432\u0435\u0436\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438 \u043c\u044b \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u041d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/obzor-emulyatorov-terminala\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:16:26+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:16:26+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Aper\u00e7u des \u00e9mulateurs de terminal | ProHoster","description":"Quelques mots de notre bureau de traduction : en g\u00e9n\u00e9ral, tout le monde cherche \u00e0 traduire les mat\u00e9riaux et publications les plus r\u00e9cents, et nous ne faisons pas exception. Mais les terminaux ne sont pas quelque chose qui se met \u00e0 jour toutes les semaines.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/obzor-emulyatorov-terminala","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0431\u0437\u043e\u0440 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 | ProHoster","og:description":"\u041f\u0430\u0440\u0430 \u0441\u043b\u043e\u0432 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e translate-\u0431\u044e\u0440\u043e: \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u0441\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0441\u0432\u0435\u0436\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438 \u043c\u044b \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u041d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/obzor-emulyatorov-terminala","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:16:26+00:00","article:modified_time":"2019-10-31T19:16:26+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37222","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 16:48:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:31:24","updated":"2026-01-23 16:48:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/37222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=37222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/37222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/27911"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=37222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=37222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=37222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}