{"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\/de\/blog\/administrirovanie\/obzor-emulyatorov-terminala","title":{"rendered":"\u00dcberblick \u00fcber Terminalemulatoren","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Ein paar Worte von unserem \u00dcbersetzungsb\u00fcro: Oft neigen alle dazu, die neuesten Materialien und Publikationen zu \u00fcbersetzen, und wir sind da keine Ausnahme. Doch Terminals sind nicht etwas, das w\u00f6chentlich aktualisiert wird. Aus diesem Grund haben wir f\u00fcr Sie den Artikel von Antoine Beaupr\u00e9 \u00fcbersetzt, der im Fr\u00fchjahr 2018 ver\u00f6ffentlicht wurde: Trotz seines f\u00fcr heutige Verh\u00e4ltnisse \u201ehohen Alters\u201c hat das Material unserer Meinung nach an Relevanz nicht verloren. Au\u00dferdem handelt es sich im Original um eine Serie von zwei Artikeln, aber wir haben entschieden, sie in einen gro\u00dfen Post zu kombinieren.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/23b2893d4d23ee402f42f8d686fec788.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTerminals nehmen einen besonderen Platz in der Computerhistorie ein, mussten in den letzten Jahrzehnten jedoch buchst\u00e4blich zusammen mit der Eingabeaufforderung \u00fcberleben, w\u00e4hrend sich grafische Benutzeroberfl\u00e4chen \u00fcberall durchsetzten. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Terminal_emulator\">Terminalemulatoren<\/a><\/noindex> haben ihre <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Computer_terminal\">hardwarebasierten Vorg\u00e4nger ersetzt.<\/a><\/noindex>, die wiederum eine Modifikation von Systemen auf Lochkarten und Relais waren. Moderne Distributionen kommen mit einer Vielzahl von Terminalemulatoren in allen Formen und Farben. W\u00e4hrend viele zufrieden sind mit dem Standardterminal, das ihre Arbeitsumgebung bereitstellt, nutzen einige stolz exzentrische Software, um ihre Lieblingsshell oder ihren Texteditor zu betreiben. Doch wie wir in diesem Artikel sehen werden, wurden nicht alle Terminals gleich geschaffen: Sie unterscheiden sich erheblich in Funktionalit\u00e4t, Gr\u00f6\u00dfe und Leistung.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Einige Terminals weisen geradezu erstaunliche Sicherheitsl\u00fccken auf, und zudem haben die meisten ganz unterschiedliche Funktionalit\u00e4ten, von der Unterst\u00fctzung von Tab-Interfaces bis hin zu Scripts. Obwohl wir <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/88161\/\">Terminalemulatoren in der Vergangenheit betrachtet haben,<\/a><\/noindex>, ist dieser Artikel ein Update auf das fr\u00fchere Material, das den Lesern hilft zu erkennen, welches Terminal sie im Jahr 2018 verwenden sollten. In der ersten H\u00e4lfte des Artikels werden die Funktionen verglichen, w\u00e4hrend in der zweiten die Leistung bewertet wird.<\/p>\n<p>Hier sind die von mir betrachteten Terminals:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/be76032ca4392c23dd0c111a36b199ef.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nM\u00f6glicherweise sind dies nicht die neuesten Versionen, da ich mich auf stabile Builds beschr\u00e4nkt habe, die ich zum Zeitpunkt der Erstellung des Materials auf Debian 9 oder Fedora 27 einsetzen konnte. Die einzige Ausnahme bildet Alacritty. Es ist ein Nachfahre von Terminalen mit GPU-Beschleunigung und in einer f\u00fcr diese Aufgabe ungew\u00f6hnlichen und neuen Sprache \u2014 Rust \u2014 geschrieben. Ich habe Web-Terminals (einschlie\u00dflich, und auf <noindex><a rel=\"nofollow\" href=\"https:\/\/electronjs.org\/\">Electron<\/a><\/noindex>), ausgeschlossen, da erste Tests eine extrem niedrige Leistung gezeigt haben.<\/p>\n<h4>Unicode-Unterst\u00fctzung<\/h4>\n<p>\nIch begann meine Tests mit der Unterst\u00fctzung von Unicode. Der erste Test der Terminals war die Darstellung eines Unicode-Strings aus <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Unicode#Web\">einem Wikipedia-Artikel<\/a><\/noindex>: \u00ab\u00e9, \u0394, \u0419, \u05e7, \u0645, \u0e57, \u3042, \u53f6, \u8449 und \ub9d0\u00bb. Dieser einfache Test zeigt, ob das Terminal weltweit korrekt arbeiten kann. Das Terminal xterm zeigt das arabische Zeichen <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mem\">RAM<\/a><\/noindex> in der Standardkonfiguration:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/92e1b9f6e7f3129a55d09cd48310c699.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nStandardm\u00e4\u00dfig verwendet xterm die klassische 'fixed' Schriftart, die laut <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Open-source_Unicode_typefaces\">der gleichen Wiki<\/a><\/noindex>, hat eine \u201esignifikante Unicode-Abdeckung seit 1997\u201c. In dieser Schriftart passiert etwas, das das Zeichen als leeres K\u00e4stchen darstellt, und nur durch Erh\u00f6hen der Schriftgr\u00f6\u00dfe auf \u00fcber 20 Punkte beginnt das Zeichen endlich korrekt angezeigt zu werden. Allerdings bricht dieser \u201eFix\u201c die Anzeige anderer Unicode-Zeichen:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/4300f72d87bb9b729d4c682e876b4998.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDiese Screenshots wurden in Fedora 27 aufgenommen, da diese Version die besten Ergebnisse lieferte, w\u00e4hrend Debian 9, wo einige \u00e4ltere Terminalversionen (insbesondere mlterm) nicht richtig mit Schriftarten arbeiten konnten, schlechter abschnitt. Gl\u00fccklicherweise wurde das in sp\u00e4teren Versionen behoben.<\/p>\n<p>Achten Sie nun auf die Anzeige der Zeile in xterm. Es stellt sich heraus, dass das Zeichen Mem und das folgende semitische <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Qoph\">Qoph<\/a><\/noindex> zu den RTL-Skripten geh\u00f6ren (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Right-to-left\">right-to-left<\/a><\/noindex>), und sollten daher technisch von rechts nach links angezeigt werden. Webbrowser wie Firefox 57 verarbeiten die obige Zeile korrekt. Ein einfacheres Beispiel f\u00fcr RTL-Text ist das Wort \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Sarah\">Sarah<\/a><\/noindex>\u201c auf Hebr\u00e4isch (<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\">Wikiseite \u00fcber bidirektionale Texte<\/a><\/noindex> besagt Folgendes:<\/p>\n<blockquote><p>Viele Computerprogramme k\u00f6nnen bidirektionalen Text nicht korrekt darstellen. Zum Beispiel besteht der hebr\u00e4ische Name \u201eSara\u201c aus den Zeichen sin (\u05e9) (das rechts erscheint), dann resh (\u05e8) und schlie\u00dflich he (\u05d4) (das links erscheinen sollte).<\/p><\/blockquote>\n<p>\nViele Terminale bestehen diesen Test nicht: Alacritty, die VTE-abgeleiteten Terminale von Gnome und XFCE, urxvt, st und xterm zeigen \u201eSara\u201c in umgekehrter Reihenfolge an, als w\u00fcrden wir diesen Namen als \u201eAras\u201c schreiben.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/9decee6d198bd9d3e4f4883a8f2b0da6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEin weiteres Problem bei bidirektionalen Texten besteht darin, dass sie irgendwie ausgerichtet werden m\u00fcssen, insbesondere wenn es um die Mischung von RTL- und LTR-Texten geht. RTL-Szenarien sollten von der rechten Seite des Terminalfensters gestartet werden, aber was passiert mit Terminalen, die standardm\u00e4\u00dfig mit LTR-Englisch arbeiten? Die meisten haben keine speziellen Mechanismen und richten den gesamten Text linksb\u00fcndig aus (einschlie\u00dflich in Konsole). Ausnahmen bilden pterm und mlterm, die sich an die Standards halten und solche Zeilen rechtsb\u00fcndig ausrichten.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/a32675d44e7cadce6d197d6eb5c8d9e2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Schutz vor Einf\u00fcgen<\/h4>\n<p>\nDie n\u00e4chste kritische Eigenschaft, die ich f\u00fcr mich definiert habe, ist der Schutz vor Einf\u00fcgen. Obwohl allgemein bekannt ist, dass Zauber wie:<\/p>\n<pre><code class=\"plaintext\">$ curl http:\/\/example.com\/ | sh<\/code><\/pre>\n<p>\nsind Push-Befehle zur Codeausf\u00fchrung. Weniger bekannt ist, dass versteckte Befehle \u00fcber die Konsole eingeschleust werden k\u00f6nnen, wenn man sie aus dem Webbrowser kopiert und einf\u00fcgt, selbst nach eingehender \u00dcberpr\u00fcfung. <noindex><a rel=\"nofollow\" href=\"http:\/\/thejh.net\/misc\/website-terminal-copy-paste\">\u00dcberpr\u00fcfungsseite von Jan Horn<\/a><\/noindex> zeigt auf brillante Weise, wie eine scheinbar harmlose Eingabe:<\/p>\n<pre><code class=\"plaintext\">git clone git:\/\/git.kernel.org\/pub\/scm\/utils\/kup\/kup.git<\/code><\/pre>\n<p>\nbeim Einf\u00fcgen von Horns Seite ins Terminal in folgendes Problem umschl\u00e4gt:<\/p>\n<pre><code class=\"plaintext\">git clone \/dev\/null;\n    clear;\n\techo -n \"Hallo \";\n\twhoami|tr -d 'n';\n\techo -e '!nDas war eine schlechte Idee. Kopieren Sie keinen Code von Websites, denen Sie nicht vertrauen! \n\tHier ist die erste Zeile Ihrer \/etc\/passwd: ';\n\thead -n1 \/etc\/passwd\n\tgit clone git:\/\/git.kernel.org\/pub\/scm\/utils\/kup\/kup.git<\/code><\/pre>\n<p>\nWie funktioniert das? Der schadhafte Code wird in einen Block <b><span><\/b>, der durch CSS aus dem Blickfeld des Benutzers entfernt wird.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/cirw.in\/blog\/bracketed-paste\">Bracketed Paste-Modus<\/a><\/noindex> ist eindeutig dazu gedacht, solche Angriffe zu neutralisieren. In diesem Modus umschlie\u00dfen Terminals den eingef\u00fcgten Text mit einem Paar spezieller Escape-Sequenzen, um der Shell die Herkunft dieses Textes mitzuteilen. Dadurch erh\u00e4lt die Shell das Signal, dass sie die speziellen Zeichen, die der eingef\u00fcgte Text enthalten kann, ignorieren kann. Alle Terminals, einschlie\u00dflich des ehrw\u00fcrdigen xterm, unterst\u00fctzen diese Funktion, aber das Einf\u00fcgen im Bracketed-Modus erfordert Unterst\u00fctzung von der Shell oder der Anwendung, die im Terminal ausgef\u00fchrt wird. Zum Beispiel ben\u00f6tigt Software, die <noindex><a rel=\"nofollow\" href=\"https:\/\/tiswww.case.edu\/php\/chet\/readline\/rltop.html\">GNU Readline<\/a><\/noindex> (dasselbe wie Bash), eine Datei <b>~ \/.inputrc<\/b>:<\/p>\n<pre><code class=\"plaintext\">set enable-bracketed-paste on<\/code><\/pre>\n<p>\nLeider zeigt die Testseite von Horna auch, wie man diesen Schutz durch die Formatierung des Textes umgehen und die Anwendung des Bracketed-Modus vorzeitig beenden kann. Dies funktioniert, weil einige Terminals die Escape-Sequenzen vor dem Hinzuf\u00fcgen ihrer eigenen nicht korrekt filtern. Zum Beispiel konnte ich in meinen Tests Konsole auch mit korrekter Konfiguration nicht erfolgreich abschlie\u00dfen. <b>.inputrc<\/b> Dies bedeutet, dass Sie leicht Systemkonfigurationsfehler aufgrund von nicht unterst\u00fctzten Anwendungen oder falsch konfigurierten Shells erhalten k\u00f6nnen. Besonders gef\u00e4hrlich ist dies beim Zugriff auf Remote-Server, wo eine sorgf\u00e4ltige Konfiguration seltener erfolgt, insbesondere wenn Sie viele solcher Remote-Maschinen haben.<\/p>\n<p>Eine gute L\u00f6sung f\u00fcr dieses Problem ist das Einf\u00fcgebest\u00e4tigungs-Plugin f\u00fcr das Terminal <b>urxvt<\/b>, das einfach um Erlaubnis zur Einf\u00fcgung von beliebigem Text mit Zeilenumbr\u00fcchen bittet. Eine sicherere Variante f\u00fcr den beschriebenen Horn-Textangriff habe ich nicht gefunden.<\/p>\n<h4>Tabs und Profile<\/h4>\n<p>\nEine derzeit sehr beliebte Funktion ist die Unterst\u00fctzung von Tab-Interfaces, die wir als ein Terminalfenster definieren, das mehrere weitere Terminals enth\u00e4lt. Diese Funktion variiert je nach Terminaltyp. W\u00e4hrend traditionelle Terminals wie xterm keine Tab-Unterst\u00fctzung bieten, verf\u00fcgen neuere Terminalvarianten wie Xfce Terminal, GNOME Terminal und Konsole \u00fcber diese Funktion. Auch Urxvt unterst\u00fctzt Tabs, jedoch nur mit einem Plugin. In Bezug auf die Tab-Unterst\u00fctzung ist Terminator der unangefochtene Champion: Er unterst\u00fctzt nicht nur Tabs, sondern kann auch Terminals beliebig anordnen (siehe Abbildung unten).<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/5ac2cdbdd969420cd7c19597d20c8c35.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEine weitere Besonderheit von Terminator ist die M\u00f6glichkeit, diese Tabs zusammenzufassen und dieselben Tastendr\u00fccke gleichzeitig an mehrere Terminals zu senden, was ein praktisches Tool f\u00fcr die Durchf\u00fchrung von Massenoperationen auf mehreren Servern gleichzeitig bietet. Eine \u00e4hnliche Funktion ist auch in Konsole implementiert. Um diese Funktion in anderen Terminals zu nutzen, muss zus\u00e4tzliche Software wie <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> oder <noindex><a rel=\"nofollow\" href=\"https:\/\/tmux.github.io\/\">tmux<\/a><\/noindex>.<\/p>\n<p>Insbesondere funktionieren die Tabs gut zusammen mit Profilen: Zum Beispiel k\u00f6nnen Sie einen Tab f\u00fcr E-Mails, einen anderen f\u00fcr Chats usw. haben. Diese Funktion wird von Terminall\u00f6sungen wie Konsole und GNOME Terminal gut unterst\u00fctzt. Beide erm\u00f6glichen es, dass jeder Tab automatisch sein eigenes Profil startet. Terminator unterst\u00fctzt ebenfalls Profile, aber ich konnte keinen Weg finden, bestimmte Programme beim \u00d6ffnen eines bestimmten Tabs automatisch zu starten. Andere Terminals haben \u00fcberhaupt kein Konzept von \u201aProfilen\u2018.<\/p>\n<h4>R\u00fcschchen<\/h4>\n<p>\nDas Letzte, was ich im ersten Teil dieses Artikels betrachten m\u00f6chte, ist das Aussehen der Terminals. Zum Beispiel unterst\u00fctzen GNOME, Xfce und urxvt Transparenz, haben jedoch k\u00fcrzlich die Unterst\u00fctzung f\u00fcr Hintergrundbilder eingestellt, was einige Benutzer dazu veranlasst hat, auf ein anderes Terminal umzusteigen. <noindex><a rel=\"nofollow\" href=\"https:\/\/gnunn1.github.io\/tilix-web\/\">Tilix<\/a><\/noindex>. Pers\u00f6nlich sch\u00e4tze ich einfachheit. <b>Xresources<\/b>, welches die grundlegenden Hintergrundfarben f\u00fcr urxvt festlegt. Allerdings k\u00f6nnen nicht standardisierte Farbthemen auch Probleme verursachen. Zum Beispiel <noindex><a rel=\"nofollow\" href=\"http:\/\/ethanschoonover.com\/solarized\">Solarized<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/altercation\/solarized\/issues\/220\">nicht funktioniert<\/a><\/noindex> bei Anwendungen <noindex><a rel=\"nofollow\" href=\"http:\/\/hisham.hm\/htop\/\">htop<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"http:\/\/iptraf.seul.org\/\">IPTraf<\/a><\/noindex>, da sie bereits eigene Farben verwenden.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/VT100\">Das urspr\u00fcngliche VT100-Terminal<\/a><\/noindex> unterst\u00fctzte keine Farben, und neue sind oft auf eine Palette von 256 Farben beschr\u00e4nkt. F\u00fcr erfahrene Benutzer, die ihre Terminals auf komplexe Weise anpassen, k\u00f6nnen Abfragen im Shell oder Statuszeilen zu einer l\u00e4stigen Einschr\u00e4nkung werden. <noindex><a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/XVilka\/8346728\">Gist<\/a><\/noindex> verfolgt, welche Terminals \"True Color\" unterst\u00fctzen. Meine Tests best\u00e4tigen, dass st, Alacritty und VTE-basierte Terminals True Color hervorragend unterst\u00fctzen. Andere Terminals schneiden in dieser Hinsicht nicht so gut ab und zeigen tats\u00e4chlich nicht einmal 256 Farben an. Unten k\u00f6nnen Sie den Unterschied zwischen der Unterst\u00fctzung von True Color in den GNOME-, st- und xterm-Terminals sehen, die mit ihrer 256-Farben-Palette gut abschneiden, und urxvt, das nicht nur den Test nicht besteht, sondern sogar flackernde Symbole anzeigt.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/bc6ceac84a1918b9bfa14a5cadd28746.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEinige Terminals analysieren auch den Text auf URL-Muster, um Links klickbar zu machen. Dies gilt f\u00fcr alle VTE-basierten Terminals, w\u00e4hrend urxvt ein spezielles Plug-in ben\u00f6tigt, um URLs durch einen Klick oder eine Tastenkombination zu transformieren. Andere von mir getestete Terminals zeigen URLs auf andere Weise an.<\/p>\n<p>Schlie\u00dflich ist ein neuer Trend bei Terminals die optionale Scrollback-Pufferung. Zum Beispiel hat st keinen Scrollback-Puffer; es wird angenommen, dass der Benutzer einen Terminal-Multiplexer wie tmux oder <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gnu.org\/software\/screen\/\">GNU Screen<\/a><\/noindex>.<\/p>\n<p>Auch Alacritty verf\u00fcgt nicht \u00fcber R\u00fcckscroll-Puffer, jedoch <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/124\">wird bald<\/a><\/noindex> die Unterst\u00fctzung daf\u00fcr aufgrund des \"umfangreichen Feedbacks\" von Nutzern hinzugef\u00fcgt. Neben diesen Ausrei\u00dfern unterst\u00fctzt jeder Terminal, den ich finden konnte, R\u00fcckscrolling.<\/p>\n<h4>Zwischenfazit<\/h4>\n<p>\nIm zweiten Teil des Materials (<i>im Original waren dies zwei verschiedene Artikel, \u2014 Anm. d. \u00dc.<\/i>) werden wir die Leistung, den Speicherverbrauch und die Latenz vergleichen. Doch bereits jetzt sehen wir, dass einige der betrachteten Terminals ernsthafte M\u00e4ngel aufweisen. Beispielsweise k\u00f6nnen Benutzer, die regelm\u00e4\u00dfig mit RTL-Skripten arbeiten, auf mlterm und pterm achten, da diese besser mit solchen Aufgaben umgehen k\u00f6nnen. Konsole hat sich ebenfalls gut bew\u00e4hrt. Benutzer, die nicht mit RTL-Skripten arbeiten, k\u00f6nnen etwas anderes w\u00e4hlen.<\/p>\n<p>In Bezug auf den Schutz vor der Einschleusung von Schadcode sticht urxvt aufgrund seiner speziellen Implementierung von Schutzmechanismen gegen diese Art von Angriffen hervor, die ich definitiv als n\u00fctzlich empfinde. Wer nach etwas mehr Komfort sucht, sollte sich Konsole ansehen. Schlie\u00dflich ist VTE eine hervorragende Basis f\u00fcr Terminal-Emulatoren, die Farbsupport, URL-Erkennung und mehr gew\u00e4hrleistet. Auf den ersten Blick mag das Standardterminal, das mit Ihrer bevorzugten Umgebung geliefert wird, allen Anforderungen gen\u00fcgen, aber lassen wir diese Frage zun\u00e4chst offen, bis wir die Leistung genauer untersuchen k\u00f6nnen.<\/p>\n<p><i><\/p>\n<h4>Wir setzen das Gespr\u00e4ch fort<\/h4>\n<p><\/i><br \/>\nDie Leistung von Terminals kann zwar als \u00fcbertriebenes Thema erscheinen, jedoch zeigen einige von ihnen \u00fcberraschend hohe Latenzen f\u00fcr solche grundlegende Software. Au\u00dferdem werden wir uns mit dem befassen, was traditionell als \"Geschwindigkeit\" bezeichnet wird (tats\u00e4chlich ist es die Scrollgeschwindigkeit) und dem Speicherverbrauch des Terminals (unter Ber\u00fccksichtigung der Tatsache, dass dies heutzutage nicht mehr so kritisch ist wie vor Jahrzehnten).<\/p>\n<h4>Latenz<\/h4>\n<p>\nNach gr\u00fcndlicher Untersuchung der Terminalleistung bin ich zu dem Schluss gekommen, dass die wichtigste Kennzahl in diesem Zusammenhang die Verz\u00f6gerung (Ping) ist. In seinem Artikel <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typing-with-pleasure\/\">\u00abTippen mit Freude\u00bb<\/a><\/noindex> hat Pavel Fatin die Verz\u00f6gerung verschiedener Texteditoren beleuchtet und angedeutet, dass Terminals in dieser Hinsicht langsamer arbeiten k\u00f6nnten als die schnellsten Texteditoren. Genau dieser Hinweis veranlasste mich letztendlich, meine eigenen Tests durchzuf\u00fchren und diesen Artikel zu schreiben.<\/p>\n<p>Aber was ist Verz\u00f6gerung und warum ist sie so wichtig? In seinem Artikel definierte Fatin sie als \u00abdie Verz\u00f6gerung zwischen dem Dr\u00fccken einer Taste und der entsprechenden Aktualisierung des Bildschirms\u00bb und zitierte <noindex><a rel=\"nofollow\" href=\"https:\/\/books.google.com\/books\/about\/Handbook_of_Human_Computer_Interaction.html?id=WuQbERgXR10C&amp;redir_esc=y\">\u00abDas Handbuch zur Mensch-Computer-Interaktion\u00bb<\/a><\/noindex>, in dem steht: \u00abDie Verz\u00f6gerung in der visuellen R\u00fcckmeldung auf dem Computerbildschirm hat einen wichtigen Einfluss auf das Verhalten der Schreibkraft und deren Zufriedenheit\u00bb.<\/p>\n<p>Fatin erkl\u00e4rt, dass ein solcher Ping tiefere Konsequenzen hat als nur die Zufriedenheit: \u201eDas Tippen wird langsamer, es treten mehr Fehler auf, und die Belastung von Augen und Muskeln nimmt zu.\u201c Mit anderen Worten kann eine h\u00f6here Verz\u00f6gerung zu Tippfehlern f\u00fchren und auch die Code-Qualit\u00e4t beeintr\u00e4chtigen, da sie eine zus\u00e4tzliche kognitive Belastung f\u00fcr das Gehirn darstellt. Aber noch schlimmer ist, dass der Ping \u201edie Belastung von Augen und Muskeln erh\u00f6ht\u201c, was anscheinend auf <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Repetitive_strain_injury\">die Entwicklung von Berufserkrankungen<\/a><\/noindex> in der Zukunft (<i>offensichtlich meint der Autor Probleme mit Augenmuskeln, R\u00fccken, H\u00e4nden und nat\u00fcrlich dem Sehverm\u00f6gen \u2013 Anm. d. \u00dcbers.<\/i>) aufgrund wiederholter Belastungen.<\/p>\n<p>Einige dieser Effekte sind schon lange bekannt, und die Ergebnisse <noindex><a rel=\"nofollow\" href=\"https:\/\/doi.org\/10.1080\/00140137608931531\">Forschungen<\/a><\/noindex>, ver\u00f6ffentlicht bereits 1976 im Journal Ergonomics, zeigen, dass eine Verz\u00f6gerung von 100 Millisekunden die Tippgeschwindigkeit erheblich verschlechtert. Vor kurzem wurde im Benutzerhandbuch von GNOME <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.gnome.org\/hig-book\/3.12\/feedback-response-times.html.en\">eine akzeptable Reaktionszeit<\/a><\/noindex> von 10 Millisekunden festgelegt, und wenn man noch weiter geht, dann <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=vOvQCPLkPt4\">zeigt Microsoft Research<\/a><\/noindex> , dass das Ideal bei 1 Millisekunde liegt.<\/p>\n<p>Fatin f\u00fchrte seine Tests in Texteditoren durch; er entwickelte ein tragbares Tool mit dem Namen <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typometer\">Typometer<\/a><\/noindex>, das ich zur Ping-\u00dcberpr\u00fcfung in Terminalemulatoren verwendet habe. Bitte beachten Sie, dass der Test im Simulationsmodus durchgef\u00fchrt wurde: In der Realit\u00e4t m\u00fcssen wir auch die Eingabeverz\u00f6gerung (Tastatur, USB-Controller usw.) und die Ausgabeverz\u00f6gerung (Grafikkartenpuffer, Monitor) ber\u00fccksichtigen. Laut Fatin liegt sie in typischen Konfigurationen bei etwa 20 ms. Mit Gamer-Hardware kann man jedoch einen Wert von nur 3 Millisekunden erreichen. Da wir bereits \u00fcber solch schnelle Hardware verf\u00fcgen, sollte die Anwendung keine zus\u00e4tzliche Verz\u00f6gerung verursachen. Fatins Ziel ist es, die Verz\u00f6gerung der Anwendung auf 1 Millisekunde zu senken oder ganz auf eine <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jetbrains.com\/idea\/2015\/08\/experimental-zero-latency-typing-in-intellij-idea-15-eap\/\">nicht messbare Verz\u00f6gerung<\/a><\/noindex>, wie bei <noindex><a rel=\"nofollow\" href=\"https:\/\/confluence.jetbrains.com\/display\/IDEADEV\/IDEA+15+EAP\">IntelliJ IDEA 15<\/a><\/noindex>.<\/p>\n<p>. Hier sind die Ergebnisse meiner Messungen sowie einige Ergebnisse von Fatin, um zu zeigen, dass mein Experiment mit seinen Tests \u00fcbereinstimmt:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/d7ae46c8309e9cfd517164d5fed093f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas Erste, was mich beeindruckte, war die bemerkenswert bessere Reaktionszeit \u00e4lterer Programme wie xterm und mlterm. Mit einer signifikanten Eingabeverz\u00f6gerung von nur 2,4 ms zeigten sie bessere Ergebnisse als der schnellste moderne Terminal (10,6 ms f\u00fcr st). Kein moderner Terminal f\u00e4llt unter die Grenze von 10 Millisekunden. Besonders Alacritty erf\u00fcllt nicht die Anspr\u00fcche an den \"schnellsten aller existierenden Terminalemulatoren\", obwohl sich die Ergebnisse seit dem ersten Test 2017 verbessert haben. Tats\u00e4chlich sind die Autoren des Projekts <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/673\">\u00fcber die Situation informiert<\/a><\/noindex> und arbeiten an einer Verbesserung der Darstellung. Es ist ebenfalls erw\u00e4hnenswert, dass Vim, das GTK3 verwendet, um ein Vielfaches langsamer ist als seine GTK2-\u00c4quivalente. Daraus l\u00e4sst sich schlie\u00dfen, dass GTK3 zus\u00e4tzliche Verz\u00f6gerungen erzeugt, die sich auch auf andere Terminals auswirken, die es nutzen (Terminator, Xfce4 Terminal und GNOME Terminal).<\/p>\n<p>Allerdings k\u00f6nnen die Unterschiede auf den ersten Blick unsichtbar sein. Wie Fatine erkl\u00e4rt: \u201eEs ist nicht notwendig, sich der Verz\u00f6gerung bewusst zu sein, damit sie Auswirkungen auf Sie hat.\u201c Fatine warnt auch vor der Standardabweichung: \u201eJede Abweichung in der Dauer der Verz\u00f6gerung (z. B. Ruckeln) verursacht zus\u00e4tzliche Belastungen aufgrund ihrer Unvorhersehbarkeit.\u201c<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/e128a7e6c32a1517c98ffc612fe09128.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas obige Diagramm wurde auf einem reinen Debian 9 (Stretch) mit <noindex><a rel=\"nofollow\" href=\"https:\/\/i3wm.org\/\">i3-Fenstermanager<\/a><\/noindex>. Diese Umgebung liefert die besten Ergebnisse in Tests zur Messung der Verz\u00f6gerung. Es hat sich herausgestellt, dass GNOME zus\u00e4tzliche 20 ms Ping f\u00fcr alle Messungen erzeugt. Eine m\u00f6gliche Erkl\u00e4rung daf\u00fcr ist das Vorhandensein von Programmen mit synchroner Verarbeitung von Eingabeveranstaltungen. Fatine nennt als Beispiel <noindex><a rel=\"nofollow\" href=\"http:\/\/www.workrave.org\/\">Workrave<\/a><\/noindex>, das Verz\u00f6gerungen hinzuf\u00fcgt, indem es alle Eingabeveranstaltungen synchron verarbeitet. Standardm\u00e4\u00dfig ist GNOME auch mit einem Fenstermanager ausgestattet, <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mutter_(software)\">Mutter<\/a><\/noindex>der eine zus\u00e4tzliche Pufferungsebene schafft, die den Ping beeinflusst und mindestens 8 Millisekunden Verz\u00f6gerung hinzuf\u00fcgt.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/3585d1edf4cee214d7a53858943b1845.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Scrollgeschwindigkeit<\/h4>\n<p>\nDer folgende Test ist eine traditionelle \u00dcberpr\u00fcfung der \u201eGeschwindigkeit\u201c oder der \u201eBandbreite\u201c, die misst, wie schnell das Terminal eine Seite scrollen kann, w\u00e4hrend es eine gro\u00dfe Menge Text auf dem Bildschirm anzeigt. Die Mechanik des Tests variiert; der urspr\u00fcngliche Test bestand darin, einfach die gleiche Textzeile mit dem Befehl seq zu generieren. Weitere Tests umfassen den Thomas E. Dick-Test (begleitend zu xterm), bei dem mehrfach <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/xterm.faq.html#scroll_speed\">die Datei terminfo.src geladen wird<\/a><\/noindex>. In einer weiteren Leistungsbewertung von Terminals <noindex><a rel=\"nofollow\" href=\"https:\/\/danluu.com\/term-latency\/\">Den Liu<\/a><\/noindex> verwendet eine Reihe zuf\u00e4lliger Bytes im base32-Format, die \u00fcber den Befehl cat im Terminal ausgegeben werden. Liu bezeichnet diesen Test als \"so nutzlos, wie man sich nur vorstellen kann\", und schl\u00e4gt vor, stattdessen die Terminalantwort als Hauptindikator zu verwenden. Dick bezeichnet seinen Test ebenfalls als irref\u00fchrend. Dennoch erkennen beide Autoren an, dass die Bandbreite des Terminalfensters problematisch sein kann. Liu hat ein Einfrieren von Emacs Eshell beim Anzeigen gro\u00dfer Dateien festgestellt, w\u00e4hrend Dick das Terminal optimiert hat, um die visuelle Tr\u00e4gheit von xterm zu beseitigen. Daher gibt es in diesem Test immer noch einen gewissen Sinn, aber da der Rendering-Prozess von Terminal zu Terminal stark variiert, kann er auch als Testkomponente zur \u00dcberpr\u00fcfung anderer Parameter verwendet werden.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/3231877fdcd7725c3248fb393185ece4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHier sehen wir, dass rxvt und st im Vergleich zu anderen Terminalemulatoren deutlich abstechen, gefolgt von dem deutlich neueren Alacritty, das mit einem starken Fokus auf Leistung entwickelt wurde. Danach kommen Xfce (VTE-Familie) und Konsole, die fast doppelt so schnell arbeiten. Am langsamsten ist xterm, das f\u00fcnfmal langsamer als rxvt ist. W\u00e4hrend des Tests zeigte xterm auch starke Verzerrungen, und es war schwierig, den durchlaufenden Text zu erkennen, selbst wenn es sich um denselben Satz handelte. Konsole erwies sich als schnell, hatte jedoch gelegentlich \u201eProbleme\u201c: Der Display frierte manchmal ein, sodass der Text teilweise oder gar nicht angezeigt wurde. Andere Terminals, einschlie\u00dflich st, Alacritty und rxvt, zeigten die Zeilen klar an.<\/p>\n<p>Diki erkl\u00e4rt, dass die Unterschiede in der Leistung mit dem Design der Bildlaufpuffer in den verschiedenen Terminals zusammenh\u00e4ngen. Insbesondere wirft er rxvt und anderen Terminals vor, dass sie \"die allgemeinen Regeln nicht einhalten\":<\/p>\n<blockquote><p>Im Gegensatz zu xterm hat rxvt nicht versucht, alle Aktualisierungen anzuzeigen. Wenn es hinterherhinkt, \u00fcberspringt es einige Aktualisierungen, um den R\u00fcckstand aufzuholen. Dies hatte einen gr\u00f6\u00dferen Einfluss auf die vermeintliche Scrollgeschwindigkeit als auf die Organisation des internen Speichers. Ein Nachteil war, dass die ASCII-Animation etwas ungenau war.<\/p><\/blockquote>\n<p>\nUm diese scheinbare Langsamkeit von xterm zu beheben, schl\u00e4gt Dick vor, die Ressource <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/manpage\/xterm.html#VT100-Widget-Resources:fastScroll\">fastScroll<\/a><\/noindex>, zu verwenden, die es xterm erm\u00f6glicht, einige Bildschirmaktualisierungen zu ignorieren, um im Fluss zu bleiben. Meine Tests best\u00e4tigen, dass fastScroll die Leistung steigert und xterm auf das Niveau von rxvt hebt. Dies ist jedoch ein recht grober Workaround, wie Dick selbst erkl\u00e4rt: \u201eManchmal scheint xterm \u2013 wie auch konsole \u2013 zu stoppen, da es auf einen neuen Satz von Bildschirmaktualisierungen wartet, nachdem einige von ihnen entfernt wurden.\u201c In diesem Zusammenhang scheint es, dass andere Terminals den besten Kompromiss zwischen Geschwindigkeit und Integrit\u00e4t der Anzeige gefunden haben.<\/p>\n<h4>Ressourcennutzung<\/h4>\n<p>\nUnabh\u00e4ngig von der Sinnhaftigkeit, die Scrollgeschwindigkeit als Leistungsma\u00dfstab zu betrachten, erm\u00f6glicht dieser Test eine Simulation der Belastung der Terminals, was es uns wiederum erlaubt, andere Parameter wie Speicher- oder Festplattennutzung zu messen. Die Metriken wurden durch die Ausf\u00fchrung des angegebenen Tests ermittelt. <b>seq<\/b> unter der \u00dcberwachung des Python-Prozesses. Er sammelte die Z\u00e4hlerdaten. <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man2\/getrusage.2.html\">getrusage()<\/a><\/noindex> f\u00fcr <b>ru_maxrss<\/b>, die Summe <b>ru_oublock<\/b> und <b>ru_inblock<\/b> und einen einfachen Zeit-Timer.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/df378c145a559ed4aad98fa70b58c72c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn diesem Test hat ST mit dem niedrigsten durchschnittlichen Speicherverbrauch von 8 MB den ersten Platz belegt, was nicht \u00fcberraschend ist, wenn man bedenkt, dass die Hauptidee des Projekts Einfachheit ist. Etwas mehr verbrauchen mlterm, xterm und rxvt \u2013 etwa 12 MB. Ein weiteres bemerkenswertes Ergebnis liefert Alacritty, das f\u00fcr den Betrieb 30 MB ben\u00f6tigt. Dann folgen die Terminals der VTE-Familie mit Verbrauchswerten von 40 bis 60 MB, was ziemlich viel ist. Ein derartiger Verbrauch l\u00e4sst sich erkl\u00e4ren, da diese Terminals h\u00f6here Bibliotheken wie GTK verwenden. Konsole belegt mit einem enormen Verbrauch von 65 MB w\u00e4hrend der Tests den letzten Platz, was jedoch durch eine recht umfangreiche Funktionsvielfalt gerechtfertigt werden kann.<\/p>\n<p>Im Vergleich zu den Ergebnissen von vor zehn Jahren verbrauchen alle Programme deutlich mehr Speicher. Fr\u00fcher ben\u00f6tigte Xterm 4 MB, jetzt sind es 15 MB nur zum Starten. Ein \u00e4hnlicher Anstieg ist bei rxvt zu beobachten, das mittlerweile standardm\u00e4\u00dfig 16 MB ben\u00f6tigt. Das Terminal Xfce belegt 34 MB, was dreimal so viel ist wie fr\u00fcher, w\u00e4hrend GNOME Terminal nur 20 MB ben\u00f6tigt. Nat\u00fcrlich wurden alle vorherigen Tests auf einer 32-Bit-Architektur durchgef\u00fchrt. Auf der LCA 2012 sagte Rusty Russell <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/477155\/\">berichtete<\/a><\/noindex>, dass es viele feinere Gr\u00fcnde gibt, die den Anstieg des Speicherverbrauchs erkl\u00e4ren k\u00f6nnen. In der heutigen Zeit leben wir jedoch mit mehreren Gigabyte an Speicher, sodass wir das schon irgendwie bew\u00e4ltigen werden.<\/p>\n<p>Dennoch habe ich das Gef\u00fchl, dass das Zuweisen von mehr Speicher f\u00fcr so grundlegende Software wie ein Terminal eine Verschwendung von Ressourcen ist. Diese Programme sollten die kleinsten der kleinen sein und selbst auf den einfachsten Ger\u00e4ten lauff\u00e4hig sein - sogar auf einem Schuhkarton, falls wir jemals dazu kommen, sie mit Linux-Systemen auszustatten (und Sie wissen, dass es so kommen wird). Aber mit diesen Zahlen wird der Speicherverbrauch in Zukunft ein Problem in jeder Umgebung darstellen, besonders beim Start mehrerer Terminals, abgesehen von den leichtesten und am st\u00e4rksten eingeschr\u00e4nkten. Um dem entgegenzuwirken, verf\u00fcgen GNOME Terminal, Konsole, urxvt, Terminator und Xfce Terminal \u00fcber einen Daemon-Modus, der es erm\u00f6glicht, mehrere Terminals \u00fcber einen Prozess zu verwalten, wodurch ihr Speicherverbrauch eingeschr\u00e4nkt wird.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber Terminalemulatoren\" src=\"\/wp-content\/uploads\/2019\/08\/65ade9cc81284f24f0c44322eec73ef0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW\u00e4hrend meiner Tests kam ich zu einem weiteren unerwarteten Ergebnis bez\u00fcglich des Lese- und Schreibvorgangs auf der Festplatte: Ich hatte erwartet, hier gar nichts zu sehen, aber tats\u00e4chlich schreiben einige Terminals die umfangreichsten Daten auf die Festplatte. So h\u00e4lt die VTE-Bibliothek tats\u00e4chlich einen Scrollpuffer auf der Festplatte (dieses Merkmal <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=631685\">wurde bereits im Jahr 2010 festgestellt<\/a><\/noindex>, und das passiert bis heute). Aber im Gegensatz zu den alten Implementierungen sind diese Daten jetzt zumindest mit AES256 GCM verschl\u00fcsselt (<noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=664611#c48\">seit Version 0.39.2<\/a><\/noindex>). Aber es stellt sich die berechtigte Frage, was so Besonderes an der VTE-Bibliothek ist, dass sie einen so unkonventionellen Ansatz f\u00fcr die Implementierung erfordert\u2026<\/p>\n<h4>Fazit<\/h4>\n<p>\nIm ersten Teil des Artikels haben wir festgestellt, dass VTE-basierte Terminals eine gute Auswahl an Funktionen bieten. Doch nun sehen wir, dass dies mit einigen Kosten zur Gew\u00e4hrleistung ihrer Leistung verbunden ist. Aktuell stellt der Speicher kein Problem dar, da alle VTE-Terminals \u00fcber einen Daemon-Prozess gesteuert werden, der ihren Ressourcenbedarf begrenzt. Dennoch k\u00f6nnten \u00e4ltere Systeme, die physikalische Einschr\u00e4nkungen bei der Menge an RAM und Kernel-Pufferspeicher aufweisen, weiterhin auf fr\u00fchere Versionen der Terminals angewiesen sein, da diese erheblich weniger Ressourcen verbrauchen. Obwohl sich die VTE-Terminals in Tests zur Durchsatzleistung (Scrolling) gut geschlagen haben, liegt ihre Datenanzeigeverz\u00f6gerung \u00fcber dem in den GNOME-Benutzerhandbuch festgelegten Grenzwert. Es w\u00e4re ratsam, dass die Entwickler von VTE dies ber\u00fccksichtigen. Angesichts der Tatsache, dass selbst f\u00fcr Anf\u00e4nger in Linux der Kontakt mit einem Terminal unvermeidlich ist, k\u00f6nnten sie es benutzerfreundlicher gestalten. F\u00fcr erfahrene Nerds kann der Wechsel vom Standardterminal sogar eine Reduzierung der Augenbelastung und die M\u00f6glichkeit vermeiden, zuk\u00fcnftige berufliche Verletzungen und Krankheiten durch l\u00e4ngere Arbeitssitzungen zu entwickeln. Leider bringen uns nur die alten xterm- und mlterm-Terminals an den magischen Ping-Grenzwert von 10 Millisekunden, was f\u00fcr viele inakzeptabel ist.<\/p>\n<p>Die Kontrollmessungen haben auch gezeigt, dass die Entwicklung grafischer Umgebungen in Linux die Entwickler zu einer Reihe von Kompromissen gezwungen hat. Einige Benutzer sollten einen Blick auf herk\u00f6mmliche Fenster-Manager werfen, da sie eine erhebliche Verringerung der Latenz bieten. Leider konnte die Verz\u00f6gerung bei Wayland nicht gemessen werden: Das Programm Typometer, das ich verwendet habe, wurde entwickelt, um das zu verhindern, was Wayland zu bek\u00e4mpfen versucht \u2013 das Ausspionieren anderer Fenster. Ich hoffe, dass das Compositing von Wayland in Bezug auf die Leistung besser ist als bei X.org, und ich hoffe auch, dass in Zukunft jemand einen Weg findet, die Verz\u00f6gerung in dieser Umgebung zu bewerten.<br \/>\n<br \/>Quelle: <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 4.9.10 - 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. \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\" \/>\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\/de\/blog\/administrirovanie\/obzor-emulyatorov-terminala\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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. \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/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\udd47\u00dcberblick \u00fcber Terminalemulatoren | ProHoster","description":"Ein paar Worte von unserem \u00dcbersetzungsb\u00fcro: In der Regel sind alle bestrebt, die aktuellsten Materialien und Publikationen zu \u00fcbersetzen, und wir sind da keine Ausnahme. Aber Terminals sind nicht die Art von Dingen, die einmal pro Woche aktualisiert werden. Daher haben wir f\u00fcr Sie den Artikel von Antoine Bopre \u00fcbersetzt, der im Fr\u00fchjahr 2018 ver\u00f6ffentlicht wurde: Trotz seines respektablen 'Alters', gemessen an modernen Standards, hat das Material unserer Meinung nach \u00fcberhaupt nicht an Relevanz verloren.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/obzor-emulyatorov-terminala","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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. \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","og:url":"https:\/\/prohoster.info\/de\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=37222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/27911"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=37222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=37222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=37222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}