{"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\/sk\/blog\/administrirovanie\/obzor-emulyatorov-terminala","title":{"rendered":"Preh\u013ead emul\u00e1torov termin\u00e1lu","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>P\u00e1r slov od na\u0161ej prekladovej agent\u00fary: zvy\u010dajne sa v\u0161etci sna\u017eia preklada\u0165 najnov\u0161ie materi\u00e1ly a publik\u00e1cie, a my nie sme v\u00fdnimkou. Av\u0161ak termin\u00e1ly nie s\u00fa nie\u010do, \u010do sa aktualizuje ka\u017ed\u00fd t\u00fd\u017ede\u0148. Preto sme pre v\u00e1s prelo\u017eili \u010dl\u00e1nok Antoine Bopre, publikovan\u00fd na jar 2018: napriek tomu, \u017ee m\u00e1 sol\u00eddny \u201evek\u201c pod\u013ea modern\u00fdch mierok, pod\u013ea n\u00e1\u0161ho n\u00e1zoru materi\u00e1l v\u00f4bec nestratil aktu\u00e1lnos\u0165. Okrem toho je v origin\u00e1le to s\u00e9ria dvoch \u010dl\u00e1nkov, ale rozhodli sme sa ich spoji\u0165 do jedn\u00e9ho ve\u013ek\u00e9ho pr\u00edspevku.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/23b2893d4d23ee402f42f8d686fec788.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTermin\u00e1ly zauj\u00edmaj\u00fa osobitn\u00e9 miesto v po\u010d\u00edta\u010dovej hist\u00f3rii, ale v posledn\u00fdch desa\u0165ro\u010diach museli doslova pre\u017ei\u0165 spolu s pr\u00edkazov\u00fdm riadkom na pozad\u00ed v\u0161adepr\u00edtomn\u00fdch grafick\u00fdch rozhran\u00ed. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Terminal_emulator\">Emul\u00e1tory termin\u00e1lov<\/a><\/noindex> nahradili svojich <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Computer_terminal\">hardv\u00e9rov\u00fdch bratov<\/a><\/noindex>, ktor\u00e9, na druhej strane, boli modifik\u00e1ciou syst\u00e9mov na perforovan\u00fdch kart\u00e1ch a prep\u00edna\u010doch. Modern\u00e9 distrib\u00facie prich\u00e1dzaj\u00fa s mno\u017estvom emul\u00e1torov termin\u00e1lu v\u0161etk\u00fdch tvarov a farieb. A zatia\u013e \u010do mnoh\u00ed sa spokojne uspokoja s be\u017en\u00fdm termin\u00e1lom, ktor\u00fd poskytuje ich pracovn\u00e9 prostredie, niektor\u00ed s hrdos\u0165ou pou\u017e\u00edvaj\u00fa otvorene exotick\u00fd softv\u00e9r na spustenie svojich ob\u013e\u00faben\u00fdch shellov alebo textov\u00fdch editorov. Ale, ako uvid\u00edme z tohto \u010dl\u00e1nku, nie v\u0161etky termin\u00e1ly boli vytvoren\u00e9 rovnako: v\u00fdrazne sa l\u00ed\u0161ia vo funk\u010dnosti, ve\u013ekosti a v\u00fdkonnosti.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Niektor\u00e9 termin\u00e1ly maj\u00fa priamo ohromuj\u00face bezpe\u010dnostn\u00e9 diery, plus v\u00e4\u010d\u0161ina z nich m\u00e1 \u00faplne odli\u0161n\u00fd set funkci\u00ed, od podpory rozhrania s kartami po skripty. Hoci sme <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/88161\/\">presk\u00famali emul\u00e1tory termin\u00e1lov v d\u00e1vnej minulosti<\/a><\/noindex>, tento \u010dl\u00e1nok je aktualiz\u00e1ciou predch\u00e1dzaj\u00faceho materi\u00e1lu, ktor\u00fd pom\u00f4\u017ee \u010ditate\u013eom ur\u010di\u0165, ak\u00fd termin\u00e1l pou\u017e\u00edva\u0165 v roku 2018. V prvej polovici \u010dl\u00e1nku sa porovn\u00e1vaj\u00fa funkcie, a v druhej sa hodnot\u00ed v\u00fdkon.<\/p>\n<p>Tu s\u00fa termin\u00e1ly, ktor\u00e9 som presk\u00famal:<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/be76032ca4392c23dd0c111a36b199ef.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMo\u017eno to nie s\u00fa najnov\u0161ie verzie, preto\u017ee som sa obmedzil na stabiln\u00e9 zostavy v \u010dase p\u00edsania materi\u00e1lu, ktor\u00e9 som dok\u00e1zal rozbehn\u00fa\u0165 na Debian 9 alebo Fedora 27. Jedinou v\u00fdnimkou je Alacritty. Je potomkom termin\u00e1lov s GPU akceler\u00e1ciou a je nap\u00edsan\u00fd v nezvy\u010dajnom a novom jazyku pre t\u00fato \u00falohu \u2014 Rust. Vyl\u00fa\u010dil som zo svojho preh\u013eadu webov\u00e9 termin\u00e1ly (vr\u00e1tane, a na <noindex><a rel=\"nofollow\" href=\"https:\/\/electronjs.org\/\">Electron<\/a><\/noindex>), preto\u017ee predbe\u017en\u00e9 testy uk\u00e1zali ich extr\u00e9mne n\u00edzku v\u00fdkonnos\u0165.<\/p>\n<h4>Podpora Unicode<\/h4>\n<p>\nSvoje testy som za\u010dal s podporou Unicode. Prv\u00fdm testom termin\u00e1lov bolo zobrazenie stringu o Unicode z <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Unicode#Web\">\u010dl\u00e1nku na Wikip\u00e9dii<\/a><\/noindex>: \u201e\u00e9, \u0394, \u0419, \u05e7, \u0645, \u0e57, \u3042, \u53f6, \u8449 a \ub9d0\u201c. Tento jednoduch\u00fd test ukazuje, \u010di termin\u00e1l m\u00f4\u017ee spr\u00e1vne fungova\u0165 po celom svete. Termin\u00e1l xterm nezobrazuje arabsk\u00fd znak <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mem\">Pam\u00e4\u0165<\/a><\/noindex> v predvolenej konfigur\u00e1cii:<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/92e1b9f6e7f3129a55d09cd48310c699.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPod\u013ea predvolen\u00e9ho nastavenia xterm pou\u017e\u00edva klasick\u00fd \u201efixn\u00fd\u201c font, ktor\u00fd, pod\u013ea <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Open-source_Unicode_typefaces\">toho ist\u00e9ho Wiki<\/a><\/noindex>, m\u00e1 \u201epodstatn\u00fd pokrytie Unicode od roku 1997\u201c. V tomto fonte sa deje nie\u010do, \u010do sp\u00f4sobuje, \u017ee znak sa zobrazuje ako pr\u00e1zdny r\u00e1m\u010dek a a\u017e pri zv\u00e4\u010d\u0161en\u00ed ve\u013ekosti textu na 20+ bodov sa znak kone\u010dne za\u010dne zobrazova\u0165 spr\u00e1vne. Av\u0161ak tak\u00fdto \u201eoprava\u201c pokaz\u00ed zobrazenie in\u00fdch znakov Unicode.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/4300f72d87bb9b729d4c682e876b4998.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTieto sn\u00edmky boli vyroben\u00e9 vo Fedore 27, preto\u017ee t\u00e1to verzia d\u00e1vala lep\u0161ie v\u00fdsledky ne\u017e Debian 9, kde niektor\u00e9 star\u0161ie verzie termin\u00e1lov (konkr\u00e9tne \u2014 mlterm) nemohli spr\u00e1vne fungova\u0165 s fontami. Na\u0161\u0165astie, to bolo opraven\u00e9 v nov\u0161\u00edch verzi\u00e1ch.<\/p>\n<p>Teraz si v\u0161imnite zobrazenie line v xterm. Zjavne, znak Mem a nasleduj\u00faci za n\u00edm Semitic <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Qoph\">Qoph<\/a><\/noindex> patria do sc\u00e9narov p\u00edsania RTL (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Right-to-left\">right-to-left<\/a><\/noindex>), tak\u017ee technicky by sa mali zobrazova\u0165 sprava do\u013eava. Webov\u00e9 prehliada\u010de, napr\u00edklad Firefox 57, spr\u00e1vne spracov\u00e1vaj\u00fa vy\u0161\u0161ie uveden\u00fd riadok. Jednoduch\u0161ou alternat\u00edvou pre RTL text je slovo \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Sarah\">S\u00e1ra<\/a><\/noindex>\u201c v hebrej\u010dine (<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\">Str\u00e1nka Wikip\u00e9die o obojsmern\u00fdch textoch<\/a><\/noindex> hovor\u00ed nasledovn\u00e9:<\/p>\n<blockquote><p>\u201eMnoho po\u010d\u00edta\u010dov\u00fdch programov nedok\u00e1\u017ee spr\u00e1vne zobrazi\u0165 obojsmern\u00fd text. Napr\u00edklad hebrejsk\u00e9 meno \u201eS\u00e1ra\u201c pozost\u00e1va zo znakov sin (\u05e9) (ktor\u00fd sa zobrazuje sprava), n\u00e1sledne re\u0161 (\u05e8) a nakoniec che (\u05d4) (ktor\u00fd by sa mal zobrazi\u0165 z\u013eava)\u201c.<\/p><\/blockquote>\n<p>\nMnoh\u00e9 termin\u00e1ly tento test nespl\u0148uj\u00ed: Alacritty, termin\u00e1ly odvozen\u00e9 od VTE pro Gnome a XFCE, urxvt, st a xterm zobrazuj\u00ed \u201eSara\u201c v obr\u00e1cen\u00e9m po\u0159ad\u00ed, jako by bylo toto jm\u00e9no zaps\u00e1no jako \u201eAras\u201c.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/9decee6d198bd9d3e4f4883a8f2b0da6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDal\u0161\u00edm probl\u00e9mem obousm\u011brn\u00fdch text\u016f je to, \u017ee je t\u0159eba n\u011bjak vyrovnat, zvl\u00e1\u0161t\u011b pokud jde o m\u00edsen\u00ed text\u016f RTL a LTR. Skripty RTL by m\u011bly za\u010d\u00ednat z prav\u00e9 strany okna termin\u00e1lu, ale co by se m\u011blo d\u00edt pro termin\u00e1ly, kter\u00e9 ve v\u00fdchoz\u00edm nastaven\u00ed pracuj\u00ed s LTR angli\u010dtinou? V\u011bt\u0161ina z nich nem\u00e1 \u017e\u00e1dn\u00e9 speci\u00e1ln\u00ed mechanismy a vyrovn\u00e1vaj\u00ed cel\u00fd text vlevo (v\u010detn\u011b Konsole). V\u00fdjimku tvo\u0159\u00ed pterm a mlterm, kter\u00e9 dodr\u017euj\u00ed standardy a vyrovn\u00e1vaj\u00ed takov\u00e9 \u0159\u00e1dky vpravo.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/a32675d44e7cadce6d197d6eb5c8d9e2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Ochrana proti vkl\u00e1d\u00e1n\u00ed<\/h4>\n<p>\nDal\u0161\u00ed kritick\u00e1 funkce, kterou jsem pro sebe ur\u010dil, je ochrana proti vkl\u00e1d\u00e1n\u00ed. I kdy\u017e je \u0161iroce zn\u00e1m\u00e9, \u017ee p\u0159\u00edkazy typu:<\/p>\n<pre><code class=\"plaintext\">$ curl http:\/\/example.com\/ | sh<\/code><\/pre>\n<p>\njsou p\u0159\u00edkazy pro vykon\u00e1n\u00ed k\u00f3du, m\u00e1lokdo v\u00ed, \u017ee skryt\u00e9 p\u0159\u00edkazy mohou proniknout do konzole p\u0159i kop\u00edrov\u00e1n\u00ed a vkl\u00e1d\u00e1n\u00ed z webov\u00e9ho prohl\u00ed\u017ee\u010de, dokonce i po pe\u010dliv\u00e9m prozkoum\u00e1n\u00ed. <noindex><a rel=\"nofollow\" href=\"http:\/\/thejh.net\/misc\/website-terminal-copy-paste\">Ov\u011b\u0159ovac\u00ed web Jana Horna<\/a><\/noindex> skv\u011ble ukazuje, jak nevinn\u011b vypadaj\u00edc\u00ed p\u0159\u00edkaz:<\/p>\n<pre><code class=\"plaintext\">git clone git:\/\/git.kernel.org\/pub\/scm\/utils\/kup\/kup.git<\/code><\/pre>\n<p>\nse p\u0159i vlo\u017een\u00ed ze str\u00e1nky Horna do termin\u00e1lu prom\u011bn\u00ed v takovou nep\u0159\u00edjemnost:<\/p>\n<pre><code class=\"plaintext\">git clone \/dev\/null;\n    clear;\n\techo -n \"Ahoj \";\n\twhoami|tr -d 'n';\n\techo -e '!nTo byla \u0161patn\u00e1 my\u0161lenka. Nekop\u00edrujte k\u00f3d z web\u016f, kter\u00fdm ned\u016fv\u011b\u0159ujete! \n\tZde je prvn\u00ed \u0159\u00e1dek va\u0161eho \/etc\/passwd: ';\n\thead -n1 \/etc\/passwd\n\tgit clone git:\/\/git.kernel.org\/pub\/scm\/utils\/kup\/kup.git<\/code><\/pre>\n<p>\nJak to funguje? \u0160kodliv\u00fd k\u00f3d je um\u00edst\u011bn do bloku <b><span><\/b>, kter\u00fd je CSS prost\u0159edky p\u0159esunut mimo zorn\u00e9 pole u\u017eivatele.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/cirw.in\/blog\/bracketed-paste\">Re\u017eim Bracketed paste<\/a><\/noindex> je jasn\u011b ur\u010den k neutralizaci podobn\u00fdch \u00fatok\u016f. V tomto re\u017eimu termin\u00e1ly uzav\u00edraj\u00ed vkl\u00e1dan\u00fd text do p\u00e1ru speci\u00e1ln\u00edch escape sekvenc\u00ed, aby informovaly shell o p\u016fvodu tohoto textu. Shell tak dostane sign\u00e1l, \u017ee m\u016f\u017ee ignorovat speci\u00e1ln\u00ed znaky, kter\u00e9 m\u016f\u017ee vkl\u00e1dan\u00fd text obsahovat. V\u0161echny termin\u00e1ly, a\u017e po venerovan\u00fd xterm, tuto funkci podporuj\u00ed, ale vkl\u00e1d\u00e1n\u00ed v re\u017eimu Bracketed vy\u017eaduje podporu shellu nebo aplikace spu\u0161t\u011bn\u00e9 na termin\u00e1lu. Nap\u0159\u00edklad software vyu\u017e\u00edvaj\u00edc\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/tiswww.case.edu\/php\/chet\/readline\/rltop.html\">GNU Readline<\/a><\/noindex> (to sam\u00e9 Bash), pot\u0159ebuje soubor <b>~\/ .inputrc<\/b>:<\/p>\n<pre><code class=\"plaintext\">set enable-bracketed-paste on<\/code><\/pre>\n<p>\nBohu\u017eia\u013e, testovacia str\u00e1nka Horn tie\u017e ukazuje, ako ob\u00eds\u0165 t\u00fato ochranu prostredn\u00edctvom samotn\u00e9ho form\u00e1tovania textu a pred\u010dasne ukon\u010di\u0165 aplik\u00e1ciu re\u017eimu uzavret\u00e9ho zoznamu. Funguje to, preto\u017ee niektor\u00e9 termin\u00e1ly nespr\u00e1vne filtruj\u00fa escape sekvencie pred pridan\u00edm vlastn\u00fdch. Napr\u00edklad, v mojich som sa nedok\u00e1zal \u00faspe\u0161ne dokon\u010di\u0165 testy Konsole ani pri spr\u00e1vnej konfigur\u00e1cii. <b>.inputrc<\/b> s\u00faboru. To znamen\u00e1, \u017ee si m\u00f4\u017eete \u013eahko po\u0161kodi\u0165 konfigur\u00e1ciu syst\u00e9mu kv\u00f4li nepodporovanej aplik\u00e1cii alebo nespr\u00e1vne nastaven\u00e9mu shellu. Najm\u00e4 nebezpe\u010dn\u00e9 je to pri pr\u00edstupe na vzdialen\u00e9 servery, kde d\u00f4kladn\u00e9 prepracovanie konfigur\u00e1cie sa vyskytuje menej \u010dasto, a to najm\u00e4 ak m\u00e1te ve\u013ea tak\u00fdchto vzdialen\u00fdch strojov.<\/p>\n<p>Dobr\u00e9 rie\u0161enie tohto probl\u00e9mu je plugin na potvrdenie vlo\u017eenia pre termin\u00e1l <b>urxvt<\/b>, ktor\u00fd jednoducho po\u017eaduje povolenie na vlo\u017eenie ak\u00e9hoko\u013evek textu, ktor\u00fd obsahuje nov\u00e9 riadky. Necital som nijak\u00fa bezpe\u010dnej\u0161iu alternat\u00edvu pre textov\u00fd \u00fatok pop\u00edsan\u00fd Hornom.<\/p>\n<h4>Z\u00e1lo\u017eky a profily<\/h4>\n<p>\nPopul\u00e1rnou funkciou je podpora rozhrania so z\u00e1lo\u017ekami, ktor\u00e9 budeme definova\u0165 ako jedno okno termin\u00e1lu, obsahuj\u00face nieko\u013eko \u010fal\u0161\u00edch termin\u00e1lov. Pre r\u00f4zne termin\u00e1ly sa t\u00e1to funkcia l\u00ed\u0161i a hoci tradi\u010dn\u00e9 termin\u00e1ly typu xterm v\u00f4bec nepodporuj\u00fa z\u00e1lo\u017eky, modernej\u0161ie varianty termin\u00e1lu ako Xfce Terminal, GNOME Terminal a Konsole t\u00fato funkciu maj\u00fa. Z\u00e1rove\u0148 Urxvt podporuje z\u00e1lo\u017eky, ale len pod podmienkou pou\u017eitia pluginu. Z h\u013eadiska podpory z\u00e1lo\u017eiek ako tak\u00fdch je bezpodmiene\u010dn\u00fdm l\u00eddrom Terminator: nielen\u017ee podporuje z\u00e1lo\u017eky, ale tie\u017e m\u00f4\u017ee umiest\u0148ova\u0165 termin\u00e1ly v n\u00e1hodnom porad\u00ed (pozrite si obr\u00e1zok ni\u017e\u0161ie).<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/5ac2cdbdd969420cd7c19597d20c8c35.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u010eal\u0161ou vlastnos\u0165ou Terminatoru je mo\u017enos\u0165 \u201eskupinova\u0165\u201c tieto z\u00e1lo\u017eky spolu a posiela\u0165 rovnak\u00e9 stla\u010denia kl\u00e1vesov na nieko\u013eko termin\u00e1lov s\u00fa\u010dasne, \u010do poskytuje hrub\u00fd n\u00e1stroj na vykon\u00e1vanie masov\u00fdch oper\u00e1ci\u00ed na nieko\u013ek\u00fdch serveroch naraz. Anal\u00f3gov\u00e1 funkcia je tie\u017e implementovan\u00e1 v Konsole. Na vyu\u017eitie tejto funkcie v in\u00fdch termin\u00e1loch je potrebn\u00e9 pou\u017ei\u0165 extern\u00fd softv\u00e9r, ako je <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> alebo <noindex><a rel=\"nofollow\" href=\"https:\/\/tmux.github.io\/\">tmux<\/a><\/noindex>.<\/p>\n<p>Zvl\u00e1\u0161\u0165 dobre funguj\u00fa karty v spolupr\u00e1ci s profilmi: napr\u00edklad m\u00f4\u017eete ma\u0165 jednu kartu pre e-mail, druh\u00fa pre chat a tak \u010falej. To dobre podporuj\u00fa termin\u00e1l Konsole a GNOME Terminal. Obe umo\u017e\u0148uj\u00fa, aby sa na ka\u017edej karte automaticky spustil svoj profil. Termin\u00e1tor tie\u017e podporuje profily, ale nena\u0161iel som sp\u00f4sob, ako automaticky spusti\u0165 ur\u010dit\u00e9 programy pri otvoren\u00ed ur\u010ditej karty. In\u00e9 termin\u00e1ly v\u00f4bec nemaj\u00fa pojem \u201eprofil\u201c.<\/p>\n<h4>Vol\u00e1niky<\/h4>\n<p>\nPosledn\u00e9, \u010do v prvej \u010dasti tohto \u010dl\u00e1nku presk\u00famam, je vzh\u013ead termin\u00e1lov. Napr\u00edklad GNOME, Xfce a urxvt podporuj\u00fa prieh\u013eadnos\u0165, ale ned\u00e1vno zrusili podporu pozad\u00ed, \u010do sp\u00f4sobilo, \u017ee niektor\u00ed pou\u017e\u00edvatelia pre\u0161li na termin\u00e1l. <noindex><a rel=\"nofollow\" href=\"https:\/\/gnunn1.github.io\/tilix-web\/\">Tilix<\/a><\/noindex>. Osobne mi vyhovuje a je to jednoduch\u00e9. <b>Xresources<\/b>, ktor\u00fd nastavuje z\u00e1kladn\u00fa sadu farieb pozadia pre urxvt. Av\u0161ak netradi\u010dn\u00e9 farebn\u00e9 t\u00e9my m\u00f4\u017eu sp\u00f4sobova\u0165 aj probl\u00e9my. Napr\u00edklad, <noindex><a rel=\"nofollow\" href=\"http:\/\/ethanschoonover.com\/solarized\">Solarized<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/altercation\/solarized\/issues\/220\">nefunguje<\/a><\/noindex> s aplik\u00e1ciami <noindex><a rel=\"nofollow\" href=\"http:\/\/hisham.hm\/htop\/\">htop<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"http:\/\/iptraf.seul.org\/\">IPTraf<\/a><\/noindex>, preto\u017ee u\u017e pou\u017e\u00edvaj\u00fa svoje vlastn\u00e9 farby.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/VT100\">P\u00f4vodn\u00fd termin\u00e1l VT100<\/a><\/noindex> nemal podporu farieb, a nov\u00e9 \u010dasto obmedzovali na paletu 256 farieb. Pre pokro\u010dil\u00fdch pou\u017e\u00edvate\u013eov, ktor\u00ed \u0161t\u00fdlizuj\u00fa svoje termin\u00e1ly \u017eiados\u0165ami shellu alebo riadkami stavu zlo\u017eit\u00fdmi sp\u00f4sobmi, to m\u00f4\u017ee by\u0165 nepr\u00edjemn\u00e9 obmedzenie. <noindex><a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/XVilka\/8346728\">Gist<\/a><\/noindex> sledovan\u00edm toho, ktor\u00e9 termin\u00e1ly maj\u00fa podporu \u201eTrue Color\u201c. Moje testovanie potvrdzuje, \u017ee st, Alacritty a termin\u00e1ly zalo\u017een\u00e9 na VTE v\u00fdborne podporuj\u00fa True Color. In\u00e9 termin\u00e1ly v tomto oh\u013eade nie s\u00fa ve\u013emi dobre a v skuto\u010dnosti nezobrazuj\u00fa ani 256 farieb. Ni\u017e\u0161ie m\u00f4\u017eete vidie\u0165 rozdiel medzi podporou True Color v GNOME, st a xterm, ktor\u00e9 si s touto \u00falohou poradia pomocou svojej 256-farebnej palety, a urxvt, ktor\u00fd nielen\u017ee test neprejde, ale dokonca zobrazuje nejak\u00e9 blikan\u00e9 symboly namiesto nich.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/bc6ceac84a1918b9bfa14a5cadd28746.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNiektor\u00e9 termin\u00e1ly tie\u017e analyzuj\u00fa text na pr\u00edtomnos\u0165 vzorov URL, aby urobili odkazy klikate\u013en\u00fdmi. To sa t\u00fdka v\u0161etk\u00fdch deriv\u00e1tov termin\u00e1lov VTE, zatia\u013e \u010do urxvt vy\u017eaduje \u0161peci\u00e1lny modul, ktor\u00fd by transformoval URL adresy na kliknutie alebo pomocou kl\u00e1vesovej skratky. In\u00e9 termin\u00e1ly, ktor\u00e9 som testoval, zobrazuj\u00fa URL adresy in\u00fdmi sp\u00f4sobmi.<\/p>\n<p>Kone\u010dne, nov\u00fd trend termin\u00e1lov \u2014 volite\u013enos\u0165 posuvn\u00e9ho p\u00e1ntu. Napr\u00edklad v st nie je posuvn\u00fd p\u00e1nt; predpoklad\u00e1 sa, \u017ee pou\u017e\u00edvate\u013e bude pou\u017e\u00edva\u0165 termin\u00e1lov\u00fd multiplexor, ako je tmux a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gnu.org\/software\/screen\/\">GNU Screen<\/a><\/noindex>.<\/p>\n<p>V Alacritty ch\u00fdbaj\u00fa aj sp\u00e4tn\u00e9 posuvn\u00e9 p\u00e1nty, ale <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/124\">\u010doskoro sa prid\u00e1<\/a><\/noindex> jeho podpora kv\u00f4li \u201erozsiahlom feedbacku\u201c na t\u00fato t\u00e9mu od pou\u017e\u00edvate\u013eov. Okrem t\u00fdchto v\u00fdnimiek, ka\u017ed\u00fd overen\u00fd termin\u00e1l, ktor\u00fd som mohol n\u00e1js\u0165, podporuje sp\u00e4tn\u00e9 pos\u00favanie.<\/p>\n<h4>Medzi\u010dasn\u00e9 hodnotenie<\/h4>\n<p>\nV druhej \u010dasti materi\u00e1lu (<i>v origin\u00e1le to boli dva r\u00f4zne \u010dl\u00e1nky \u2014 pozn. prekl.<\/i>) porovn\u00e1me v\u00fdkon, vyu\u017eitie pam\u00e4te a oneskorenie. Ale u\u017e vid\u00edme, \u017ee niektor\u00e9 z posudzovan\u00fdch termin\u00e1lov maj\u00fa v\u00e1\u017ene nedostatky. Napr\u00edklad pou\u017e\u00edvatelia, ktor\u00ed pravidelne pracuj\u00fa s RTL skriptami, m\u00f4\u017eu venova\u0165 pozornos\u0165 mlterm a pterm, preto\u017ee sa s tak\u00fdmito \u00falohami vyrovn\u00e1vaj\u00fa lep\u0161ie ako ostatn\u00ed. Konsole sa taktie\u017e osved\u010dil. Pou\u017e\u00edvatelia, ktor\u00ed nepracuj\u00fa s RTL skriptami, m\u00f4\u017eu zvoli\u0165 nie\u010do in\u00e9.<\/p>\n<p>Z h\u013eadiska ochrany pred vkladan\u00edm \u0161kodliv\u00e9ho k\u00f3du sa urxvt vyn\u00edma svojou \u0161peci\u00e1lnou implement\u00e1ciou ochrany proti tomuto typu \u00fatokov, ktor\u00e1 je ur\u010dite ve\u013emi praktick\u00e1. T\u00ed, ktor\u00ed h\u013eadaj\u00fa ak\u00e9ko\u013evek vylep\u0161enia, by sa mali pozrie\u0165 na Konsole. Nakoniec je potrebn\u00e9 poznamena\u0165, \u017ee VTE je vynikaj\u00faca z\u00e1klad\u0148a pre termin\u00e1ly, ktor\u00e1 zabezpe\u010duje podporu farieb, rozpozn\u00e1vanie URL a podobne. Na prv\u00fd poh\u013ead sa m\u00f4\u017ee predvolen\u00fd termin\u00e1l dod\u00e1van\u00fd s va\u0161ou ob\u013e\u00fabenou prostred\u00edm javi\u0165 ako dostato\u010dn\u00fd, ale t\u00fato ot\u00e1zku si nechajme otvoren\u00fa, k\u00fdm sa nezaober\u00e1me v\u00fdkonom.<\/p>\n<p><i><\/p>\n<h4>Pokra\u010dujeme v diskusii<\/h4>\n<p><\/i><br \/>\nVo v\u0161eobecnosti sa m\u00f4\u017ee v\u00fdkon termin\u00e1lov zda\u0165 ako umelo vyvolan\u00fd probl\u00e9m, av\u0161ak ako sa uk\u00e1zalo, niektor\u00e9 z nich vykazuj\u00fa neuverite\u013ene ve\u013ek\u00e9 oneskorenie pre softv\u00e9r tohto fundament\u00e1lneho typu. Taktie\u017e sa nesk\u00f4r pozrieme na to, \u010do sa tradi\u010dne naz\u00fdva \u201er\u00fdchlos\u0165ou\u201c (v skuto\u010dnosti je to r\u00fdchlos\u0165 pos\u00favania) a spotrebu pam\u00e4te termin\u00e1lom (s oh\u013eadom na to, \u017ee dnes to nie je tak kritick\u00e9, ako pred desa\u0165ro\u010diami).<\/p>\n<h4>Oneskorenie<\/h4>\n<p>\nPo d\u00f4kladnom presk\u00faman\u00ed v\u00fdkonu termin\u00e1lov som dospel k z\u00e1veru, \u017ee najd\u00f4le\u017eitej\u0161\u00edm parametrom v tomto oh\u013eade je ve\u013ekos\u0165 oneskorenia (ping). Vo svojom \u010dl\u00e1nku <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typing-with-pleasure\/\">\u201eP\u00ed\u0161eme s rados\u0165ou\u201c<\/a><\/noindex> Pavel Fatin presk\u00famal oneskorenie r\u00f4znych textov\u00fdch editorov a nazna\u010dil, \u017ee termin\u00e1ly m\u00f4\u017eu v tomto oh\u013eade pracova\u0165 pomal\u0161ie ako najr\u00fdchlej\u0161ie textov\u00e9 editory. Tento n\u00e1znak ma nakoniec priviedol k spusteniu vlastn\u00fdch testov a nap\u00edsaniu tohto \u010dl\u00e1nku.<\/p>\n<p>Ale \u010do to vlastne je oneskorenie a pre\u010do je d\u00f4le\u017eit\u00e9? Vo svojom \u010dl\u00e1nku Fatin definoval oneskorenie ako \u201eoneskorenie medzi stla\u010den\u00edm kl\u00e1vesy a zodpovedaj\u00facej aktualiz\u00e1cie obrazovky\u201c a citoval <noindex><a rel=\"nofollow\" href=\"https:\/\/books.google.com\/books\/about\/Handbook_of_Human_Computer_Interaction.html?id=WuQbERgXR10C&amp;redir_esc=y\">\u201ePr\u00edru\u010dku k interakcii \u010dloveka s po\u010d\u00edta\u010dom\u201c<\/a><\/noindex>, v ktorej sa uv\u00e1dza: \u201eOneskorenie vo vizu\u00e1lnej sp\u00e4tnej v\u00e4zbe na obrazovke po\u010d\u00edta\u010da m\u00e1 v\u00fdznamn\u00fd vplyv na spr\u00e1vanie typistky a jej spokojnos\u0165.\u201c<\/p>\n<p>Fatin vysvet\u013euje, \u017ee tak\u00e9to oneskorenie m\u00e1 hlb\u0161ie d\u00f4sledky ne\u017e len spokojnos\u0165: \u201ep\u00edsanie sa spoma\u013euje, vznik\u00e1 viac ch\u00fdb, zvy\u0161uje sa nap\u00e4tie o\u010d\u00ed a svalov.\u201c In\u00fdmi slovami, ve\u013ek\u00e9 oneskorenie m\u00f4\u017ee vies\u0165 k preklepom a zn\u00ed\u017eeniu kvality k\u00f3du, preto\u017ee sp\u00f4sobuje dodato\u010dn\u00e9 kognit\u00edvne za\u0165a\u017eenie mozgu. Ale \u010do je e\u0161te hor\u0161ie, oneskorenie \u201ezvy\u0161uje nap\u00e4tie o\u010d\u00ed a svalov\u201c, \u010do zjavne nazna\u010duje <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Repetitive_strain_injury\">rozvoj profesion\u00e1lnych zranen\u00ed<\/a><\/noindex> v bud\u00facnosti (<i>zjavne autor m\u00e1 na mysli probl\u00e9my so svalmi o\u010d\u00ed, chrbtom, rukami a, samozrejme, zrakom \u2014 pozn. prekladate\u013ea.<\/i>) kv\u00f4li opakovan\u00e9mu nap\u00e4tiu.<\/p>\n<p>Niektor\u00e9 z t\u00fdchto efektov s\u00fa zn\u00e1me u\u017e dlh\u0161ie a v\u00fdsledky <noindex><a rel=\"nofollow\" href=\"https:\/\/doi.org\/10.1080\/00140137608931531\">v\u00fdskumu<\/a><\/noindex>, publikovan\u00e9 u\u017e v roku 1976 v \u010dasopise Ergonomics, hovoria, \u017ee oneskorenie 100 milisek\u00fand \u201ev\u00fdrazne zhor\u0161uje r\u00fdchlos\u0165 p\u00edsania\u201c. Ned\u00e1vno bola do pou\u017e\u00edvate\u013eskej pr\u00edru\u010dky GNOME zahrnut\u00e1 <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.gnome.org\/hig-book\/3.12\/feedback-response-times.html.en\">akceptovate\u013en\u00e1 doba odozvy<\/a><\/noindex> 10 milisek\u00fand, a ak \u00eds\u0165 \u010falej, tak <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=vOvQCPLkPt4\">Microsoft Research<\/a><\/noindex> ukazuje, \u017ee ide\u00e1lom je 1 milisekunda.<\/p>\n<p>Fatin vykon\u00e1val svoje testy na textov\u00fdch editoroch; vytvoril prenosn\u00fd n\u00e1stroj nazvan\u00fd <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typometer\">Typometer<\/a><\/noindex>, ktor\u00fd som pou\u017eil na kontrolu pingu v emul\u00e1toroch termin\u00e1lu. Majte na pam\u00e4ti, \u017ee test bol vykonan\u00fd v simula\u010dnom re\u017eime: v skuto\u010dnosti mus\u00edme zoh\u013eadni\u0165 aj oneskorenie vstupu (kl\u00e1vesnica, USB ovl\u00e1da\u010d a tak \u010falej) a v\u00fdstupu (buffer grafickej karty, monitor). Pod\u013ea Fatina sa v typick\u00fdch konfigur\u00e1ci\u00e1ch pohybuje okolo 20 ms. Pri disponovan\u00ed hern\u00fdm zariaden\u00edm je mo\u017en\u00e9 dosiahnu\u0165 hodnotu len 3 milisekundy. Ke\u010f\u017ee u\u017e m\u00e1me tak\u00e9 r\u00fdchle zariadenie, aplik\u00e1cia by nemala sp\u00f4sobova\u0165 \u010fal\u0161ie oneskorenie. Cie\u013eom Fatina je zn\u00ed\u017ei\u0165 oneskorenie aplik\u00e1cie na 1 milisekundu, alebo dokonca dosiahnu\u0165 nastavenie bez <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jetbrains.com\/idea\/2015\/08\/experimental-zero-latency-typing-in-intellij-idea-15-eap\/\">zmerate\u013en\u00e9ho oneskorenia<\/a><\/noindex>, ako v <noindex><a rel=\"nofollow\" href=\"https:\/\/confluence.jetbrains.com\/display\/IDEADEV\/IDEA+15+EAP\">IntelliJ IDEA 15<\/a><\/noindex>.<\/p>\n<p>Tu s\u00fa v\u00fdsledky mojich meran\u00ed a niektor\u00e9 v\u00fdsledky Fatina, aby som uk\u00e1zal, \u017ee m\u00f4j experiment s\u00fahlas\u00ed s jeho testami:<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/d7ae46c8309e9cfd517164d5fed093f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrv\u00e1 vec, ktor\u00e1 ma prekvapila \u2014 je lep\u0161\u00ed \u010das odozvy star\u00fdch programov, ako s\u00fa xterm a mlterm. S najhor\u0161\u00edm oneskoren\u00edm registr\u00e1cie (2,4 ms) dosiahli lep\u0161\u00ed v\u00fdsledok ako najr\u00fdchlej\u0161\u00ed modern\u00fd termin\u00e1l (10,6 ms pre st). \u017diadny modern\u00fd termin\u00e1l sa nedost\u00e1va pod prah 10 milisek\u00fand. Konkr\u00e9tne Alacritty nesp\u013a\u0148a po\u017eiadavky na \"najr\u00fdchlej\u0161\u00ed z existuj\u00facich emul\u00e1torov termin\u00e1lu\", hoci jeho v\u00fdsledky sa zlep\u0161ili od prvej kontroly v roku 2017. Skuto\u010dne, autori projektu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/673\">s\u00fa si vedom\u00ed situ\u00e1cie<\/a><\/noindex> a pracuj\u00fa na zlep\u0161en\u00ed zobrazenia. Je tie\u017e potrebn\u00e9 poznamena\u0165, \u017ee Vim, ktor\u00fd pou\u017e\u00edva GTK3, je radovo pomal\u0161\u00ed ako jeho ekvivalent GTK2. Z toho mo\u017eno vyvodi\u0165, \u017ee GTK3 vytv\u00e1ra dodato\u010dn\u00e9 oneskorenie, a to sa odr\u00e1\u017ea na v\u0161etk\u00fdch ostatn\u00fdch termin\u00e1loch, ktor\u00e9 ho pou\u017e\u00edvaj\u00fa (Terminator, Xfce4 Terminal a GNOME Terminal).<\/p>\n<p>Av\u0161ak pre oko m\u00f4\u017eu by\u0165 rozdiely neznate\u013en\u00e9. Ako vysvet\u013euje Fatin: \"nie je potrebn\u00e9 si uvedomi\u0165 existenciu oneskorenia, aby malo na v\u00e1s vplyv\". Fatin tie\u017e varuje pred \u0161tandardnou odch\u00fdlkou: \"ak\u00e9kolvek poruchy v trvan\u00ed oneskorenia (trasenie) sp\u00f4sobuj\u00fa dodato\u010dn\u00fa z\u00e1\u0165a\u017e kv\u00f4li ich nepredv\u00eddate\u013enosti.\"<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/e128a7e6c32a1517c98ffc612fe09128.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGraf vy\u0161\u0161ie bol z\u00edskan\u00fd na \u010distom Debian 9 (stretch) s <noindex><a rel=\"nofollow\" href=\"https:\/\/i3wm.org\/\">i3 window manager<\/a><\/noindex>Tento prostredie dosahuje najlep\u0161ie v\u00fdsledky v testoch na ur\u010denie oneskorenia. Uk\u00e1zalo sa, \u017ee GNOME vytv\u00e1ra dodato\u010dn\u00fd ping 20 ms pre v\u0161etky merania. Mo\u017en\u00fdm vysvetlen\u00edm je pr\u00edtomnos\u0165 programov so synchronn\u00fdm spracovan\u00edm vstupn\u00fdch udalost\u00ed. Fatin uv\u00e1dza ako pr\u00edklad pre tak\u00fato situ\u00e1ciu <noindex><a rel=\"nofollow\" href=\"http:\/\/www.workrave.org\/\">Workrave<\/a><\/noindex>, ktor\u00fd prid\u00e1va oneskorenie spracovan\u00edm v\u0161etk\u00fdch vstupn\u00fdch udalost\u00ed synchronne. Predvolene je GNOME tie\u017e vybaven\u00fd spr\u00e1vcom okien <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mutter_(software)\">Mutter<\/a><\/noindex>, ktor\u00fd vytv\u00e1ra dodato\u010dn\u00fa vrstvu vyrovn\u00e1vacej pam\u00e4te, \u010do ovplyv\u0148uje ping a prid\u00e1va minim\u00e1lne 8 milisek\u00fand oneskorenia.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/3585d1edf4cee214d7a53858943b1845.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>R\u00fdchlos\u0165 pos\u00favania<\/h4>\n<p>\n\u010eal\u0161\u00ed test je tradi\u010dn\u00e1 kontrola \u201er\u00fdchlosti\u201c alebo \u201epriepustnosti\u201c, ktor\u00e1 meria, ako r\u00fdchlo m\u00f4\u017ee termin\u00e1l pos\u00fava\u0165 str\u00e1nku, zobrazuj\u00fac ve\u013ek\u00e9 mno\u017estvo textu na obrazovke. Mechanika testu sa l\u00ed\u0161i; p\u00f4vodn\u00fd test spo\u010d\u00edval v jednoduchej gener\u00e1cii tej istej textovej rady pomocou pr\u00edkazu seq. In\u00e9 testy zah\u0155\u0148aj\u00fa kontrolu Thomasa E. Dicka (sprev\u00e1dzaj\u00faceho xterm), v r\u00e1mci ktorej sa opakovane <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/xterm.faq.html#scroll_speed\">vyklad\u00e1 s\u00fabor terminfo.src<\/a><\/noindex>. V \u010fal\u0161om preh\u013eade v\u00fdkonu termin\u00e1lov <noindex><a rel=\"nofollow\" href=\"https:\/\/danluu.com\/term-latency\/\">Den Luu<\/a><\/noindex> pou\u017e\u00edva radu n\u00e1hodn\u00fdch bajtov v k\u00f3dovan\u00ed base32, ktor\u00e1 sa vypisuje do termin\u00e1lu pomocou pr\u00edkazu cat. Luu pova\u017euje tak\u00fdto test za \"takmer bezcenn\u00fd benchmark, ak\u00fd si len mo\u017eno predstavi\u0165\" a navrhuje pou\u017ei\u0165 namiesto toho reakciu termin\u00e1lu ako hlavn\u00fd ukazovate\u013e. Dick tie\u017e uv\u00e1dza, \u017ee jeho test m\u00f4\u017ee by\u0165 m\u00e4t\u00faci. Napriek tomu obaja autori uzn\u00e1vaj\u00fa, \u017ee priepustnos\u0165 okna termin\u00e1lu m\u00f4\u017ee by\u0165 probl\u00e9mom. Luu zistil zamrznutie Emacs Eshell pri zobrazovan\u00ed ve\u013ek\u00fdch s\u00faborov, zatia\u013e \u010do Dick optimalizoval termin\u00e1l, aby eliminoval vizu\u00e1lnu pomalos\u0165 xterm. Preto v tomto teste st\u00e1le existuje ur\u010dit\u00fd d\u00f4vod, ale preto\u017ee proces vykres\u013eovania sa v\u00fdrazne l\u00ed\u0161i z termin\u00e1lu na termin\u00e1l, m\u00f4\u017ee by\u0165 pou\u017eit\u00fd aj ako testovac\u00ed komponent pre overenie in\u00fdch parametrov.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/3231877fdcd7725c3248fb393185ece4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTu vid\u00edme, \u017ee rxvt a st sa dost\u00e1vaj\u00fa na vrchol v porovnan\u00ed s konkurenciou, za nimi nasleduje podstatne nov\u0161\u00ed Alacritty, ktor\u00fd sa vyv\u00edja s d\u00f4razom na r\u00fdchlos\u0165. Nasleduj\u00fa Xfce (rodina VTE) a Konsole, ktor\u00e9 pracuj\u00fa takmer dvakr\u00e1t r\u00fdchlej\u0161ie. Nakoniec je tu xterm, ktor\u00fd je p\u00e4\u0165kr\u00e1t pomal\u0161\u00ed ako rxvt. Po\u010das testu xterm tie\u017e ve\u013emi blikotal, prech\u00e1dzaj\u00faci text bolo \u0165a\u017ek\u00e9 zaostri\u0165, aj ke\u010f to bola jedna a t\u00e1 ist\u00e1 l\u00ednia. Konsole sa uk\u00e1zal by\u0165 r\u00fdchly, no ob\u010das \u201eklamal\u201c: displej sa ob\u010das zasekol a zobrazoval text \u010diasto\u010dne alebo ho v\u00f4bec nezobrazoval. In\u00e9 termin\u00e1ly jasne zobrazovali riadky, vr\u00e1tane st, Alacritty a rxvt.<\/p>\n<p>Diki vysvet\u013euje, \u017ee rozdiely vo v\u00fdkonnosti s\u00favisia s dizajnom posuvn\u00fdch bufferov v r\u00f4znych termin\u00e1loch. Konkr\u00e9tne obvi\u0148uje rxvt a \u010fal\u0161ie termin\u00e1ly z toho, \u017ee \u201enedodr\u017eiavaj\u00fa spolo\u010dn\u00e9 pravidl\u00e1\u201c:<\/p>\n<blockquote><p>\u201eNa rozdiel od xterm, rxvt sa nesna\u017eil zobrazi\u0165 v\u0161etky aktualiz\u00e1cie. Ak zaost\u00e1val, odmietal niektor\u00e9 aktualiz\u00e1cie, aby dobehol. To malo v\u00e4\u010d\u0161\u00ed dopad na zd\u00e1nliv\u00fa r\u00fdchlos\u0165 pos\u00favania ne\u017e na organiz\u00e1ciu vn\u00fatornej pam\u00e4te. Jednou nev\u00fdhodou bolo, \u017ee anim\u00e1cia ASCII bola niekedy trochu nepresn\u00e1.\u201c<\/p><\/blockquote>\n<p>\nAby sa napravila t\u00e1to zd\u00e1nliv\u00e1 pomalos\u0165 xterm, Diki navrhuje pou\u017ei\u0165 zdroj <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/manpage\/xterm.html#VT100-Widget-Resources:fastScroll\">fastScroll<\/a><\/noindex>, ktor\u00fd umo\u017e\u0148uje xterm ignorova\u0165 niektor\u00e9 aktualiz\u00e1cie obrazovky, aby nezaost\u00e1val za tokom. Moje testy potvrdzuj\u00fa, \u017ee fastScroll zvy\u0161uje v\u00fdkonnos\u0165 a pos\u00fava xterm na \u00farove\u0148 rxvt. To je v\u0161ak dos\u0165 hrub\u00e9 obch\u00e1dzanie, ako s\u00e1m Diki vysvet\u013euje: \u201eNiekedy sa xterm \u2014 ako aj konsole \u2014 zd\u00e1, \u017ee sa zastavil, ke\u010f \u010dak\u00e1 na nov\u00fd s\u00fabor aktualiz\u00e1ci\u00ed obrazovky po tom, \u010do niektor\u00e9 z nich boli vymazan\u00e9.\u201c V tomto kontexte sa zd\u00e1, \u017ee in\u00e9 termin\u00e1ly na\u0161li najlep\u0161\u00ed kompromis medzi r\u00fdchlos\u0165ou a celistvos\u0165ou displeja.<\/p>\n<h4>Spotreba zdrojov<\/h4>\n<p>\nBez oh\u013eadu na rozumnos\u0165 zva\u017eovania r\u00fdchlosti pos\u00favania ako ukazovate\u013ea v\u00fdkonu, tento test umo\u017e\u0148uje simulova\u0165 za\u0165a\u017eenie termin\u00e1lov, \u010do zase umo\u017e\u0148uje mera\u0165 in\u00e9 parametre, ako je vyu\u017eitie pam\u00e4te alebo disku. Met\u00f3dy boli z\u00edskan\u00e9 vykonan\u00edm uveden\u00e9ho testu <b>seq<\/b> pod doh\u013eadom procesu Python. Zhroma\u017e\u010foval \u00fadaje o \u010d\u00edta\u010doch <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man2\/getrusage.2.html\">getrusage ()<\/a><\/noindex> pre <b>ru_maxrss<\/b>, s\u00fa\u010det <b>ru_oublock<\/b> a <b>ru_inblock<\/b> a jednoduch\u00fd \u010dasova\u010d.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/df378c145a559ed4aad98fa70b58c72c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV tomto teste ST obsadila prv\u00e9 miesto s najni\u017e\u0161ou priemernou spotrebou pam\u00e4te 8 MB, \u010do nie je prekvapuj\u00face, ke\u010f zoh\u013eadn\u00edme, \u017ee hlavnou my\u0161lienkou projektu je jednoduchos\u0165. Trochu viac spotreb\u00fava mlterm, xterm a rxvt - okolo 12 MB. \u010eal\u0161\u00ed pozoruhodn\u00fd v\u00fdsledok m\u00e1 Alacritty, ktor\u00e1 na svoju \u010dinnos\u0165 potrebuje 30 MB. N\u00e1sledne prich\u00e1dzaj\u00fa termin\u00e1ly zo skupiny VTE s hodnotami od 40 do 60 MB, \u010do je dos\u0165 ve\u013ea. Tak\u00fato spotrebu mo\u017eno vysvetli\u0165 t\u00fdm, \u017ee tieto termin\u00e1ly pou\u017e\u00edvaj\u00fa vy\u0161\u0161ie kni\u017enice, napr\u00edklad GTK. Konsole skon\u010dilo posledn\u00e9 s kolos\u00e1lnou spotrebou 65 MB pam\u00e4te po\u010das testovania, hoci to mo\u017eno ospravedlni\u0165 jeho ve\u013emi \u0161irok\u00fdm s\u00faborom funkci\u00ed.<\/p>\n<p>V porovnan\u00ed s predch\u00e1dzaj\u00facimi v\u00fdsledkami z\u00edskan\u00fdmi pred desiatimi rokmi v\u0161etky programy za\u010dali spotreb\u00fava\u0165 v\u00fdrazne viac pam\u00e4te. Predt\u00fdm Xterm vy\u017eadoval 4 MB, teraz - 15 MB len na spustenie. Podobn\u00e9 zv\u00fd\u0161enie spotreby m\u00e1 aj rxvt, ktor\u00fd teraz z boxu vy\u017eaduje 16 MB. Termin\u00e1l Xfce zaber\u00e1 34 MB, \u010do je trikr\u00e1t viac ako predt\u00fdm, zatia\u013e \u010do GNOME Terminal vy\u017eaduje len 20 MB. Samozrejme, v\u0161etky predch\u00e1dzaj\u00face testy sa vykon\u00e1vali na 32-bitovej architekt\u00fare. Na LCA 2012 Rastislav Russell <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/477155\/\">povedal<\/a><\/noindex>, existuje mno\u017estvo jemnej\u0161\u00edch pr\u00ed\u010din, ktor\u00e9 m\u00f4\u017eu vysvetli\u0165 rast spotreby pam\u00e4te. Napriek tomu teraz \u017eijeme v \u010dasoch, ke\u010f m\u00e1me cel\u00e9 gigabajty pam\u00e4te, tak\u017ee nejak\u00fdm sp\u00f4sobom sa s t\u00fdm vysporiadame.<\/p>\n<p>Napriek tomu m\u00e1m pocit, \u017ee pridelenie v\u00e4\u010d\u0161ieho mno\u017estva pam\u00e4te pre tak\u00e9 z\u00e1kladn\u00e9 softv\u00e9rov\u00e9 vybavenie, ako s\u00fa termin\u00e1ly, je plytvanie zdrojmi. Tieto programy by mali by\u0165 najmen\u0161\u00edmi z najmen\u0161\u00edch, mali by by\u0165 schopn\u00e9 fungova\u0165 na akomko\u013evek \u201eboxe\u201c, dokonca i na obuvi, ak sa niekedy dostaneme do situ\u00e1cie, kedy ich bude treba vybavi\u0165 syst\u00e9mami Linux (a viete, \u017ee to sa stane). Ale s t\u00fdmito \u010d\u00edslami sa spotreba pam\u00e4te stane v bud\u00facnosti probl\u00e9mom v akomko\u013evek prostred\u00ed pri spusten\u00ed nieko\u013ek\u00fdch termin\u00e1lov, okrem situ\u00e1cie s nieko\u013ek\u00fdmi naj\u013eah\u0161\u00edmi a obmedzen\u00fdmi mo\u017enos\u0165ami. Na kompenz\u00e1ciu tohto GNOME Terminal, Konsole, urxvt, Terminator a Xfce Terminal maj\u00fa Daemon-re\u017eim, ktor\u00fd umo\u017e\u0148uje spravova\u0165 viac termin\u00e1lov cez jeden proces, \u010do obmedzuje ich spotrebu pam\u00e4te.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead emul\u00e1torov termin\u00e1lu\" src=\"\/wp-content\/uploads\/2019\/08\/65ade9cc81284f24f0c44322eec73ef0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPo\u010das svojich testov som pri\u0161iel k \u010fal\u0161iemu prekvapuj\u00facemu v\u00fdsledku t\u00fdkaj\u00facemu sa \u010d\u00edtania a p\u00edsania na disku: o\u010dak\u00e1val som, \u017ee tu ni\u010d neuvid\u00edm, ale uk\u00e1zalo sa, \u017ee niektor\u00e9 termin\u00e1ly zapisuj\u00fa najv\u00e4\u010d\u0161ie d\u00e1ta na disk. Tak, kni\u017enica VTE fakticky dr\u017e\u00ed na disku buffer pos\u00favania (t\u00e1to vlastnos\u0165 <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=631685\">bola zaznamenan\u00e1 u\u017e v roku 2010<\/a><\/noindex>, a to sa deje dodnes). Ale na rozdiel od star\u00fdch realiz\u00e1ci\u00ed, teraz s\u00fa aspo\u0148 tieto d\u00e1ta \u0161ifrovan\u00e9 pomocou AES256 GCM (<noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=664611#c48\">od verzie 0.39.2<\/a><\/noindex>). Ale vyvst\u00e1va rozumn\u00e1 ot\u00e1zka, \u010do je na kni\u017enici VTE tak\u00e9 zvl\u00e1\u0161tne, \u017ee si vy\u017eaduje tak\u00fd netradi\u010dn\u00fd pr\u00edstup k implement\u00e1cii\u2026<\/p>\n<h4>Z\u00e1ver<\/h4>\n<p>\nV prvej \u010dasti \u010dl\u00e1nku sme zistili, \u017ee termin\u00e1ly na b\u00e1ze VTE maj\u00fa dobr\u00fa sadu funkci\u00ed, ale teraz vid\u00edme, \u017ee to s\u00favis\u00ed s ur\u010dit\u00fdmi n\u00e1kladmi na zabezpe\u010denie ich v\u00fdkonu. Teraz pam\u00e4\u0165 nie je probl\u00e9m, preto\u017ee v\u0161etky VTE termin\u00e1ly je mo\u017en\u00e9 spravova\u0165 prostredn\u00edctvom Daemon procesu, ktor\u00fd obmedzuje ich apet\u00edt. Napriek tomu star\u00e9 syst\u00e9my, ktor\u00e9 maj\u00fa fyzick\u00e9 obmedzenia z h\u013eadiska po\u010dtu opera\u010dnej pam\u00e4te a bufferu jadra, m\u00f4\u017eu st\u00e1le potrebova\u0165 star\u0161ie verzie termin\u00e1lov, preto\u017ee spotrebuj\u00fa ove\u013ea menej zdrojov. Hoci termin\u00e1ly VTE preuk\u00e1zali dobr\u00e9 v\u00fdsledky v testoch propustnosti (pos\u00favanie), ich oneskorenie zobrazenia \u00fadajov na displeji je vy\u0161\u0161ie ako stanoven\u00fd prah v u\u017e\u00edvate\u013eskej pr\u00edru\u010dke GNOME. Pravdepodobne by si v\u00fdvoj\u00e1ri VTE mali toto uvedomi\u0165. Ak vezmeme do \u00favahy, \u017ee aj pre za\u010diato\u010dn\u00edkov na Linuxe je stretnutie s termin\u00e1lom nevyhnutn\u00e9, mohli by tento termin\u00e1l spravi\u0165 viac priate\u013esk\u00fdm pre pou\u017e\u00edvate\u013eov. Pre sk\u00fasen\u00fdch geekov m\u00f4\u017ee prechod z predvolen\u00e9ho termin\u00e1lu znamena\u0165 dokonca zn\u00ed\u017eenie za\u0165a\u017eenia zraku a mo\u017enos\u0165 vyhn\u00fa\u0165 sa profesion\u00e1lnym zraneniam a ochoreniam v bud\u00facnosti kv\u00f4li dlh\u00fdm pracovn\u00fdm f\u00e1zam. Bohu\u017eia\u013e, len star\u00e9 xterm a mlterm n\u00e1s pribli\u017euj\u00fa k magick\u00e9mu prahu pingovania 10 milisek\u00fand, \u010do je pre mnoh\u00fdch neprijate\u013en\u00e9.<\/p>\n<p>Kontroln\u00e9 merania tie\u017e uk\u00e1zali, \u017ee kv\u00f4li rozvoju grafick\u00fdch prostred\u00ed Linux museli v\u00fdvoj\u00e1ri prist\u00fapi\u0165 k nieko\u013ek\u00fdm kompromisom. Niektor\u00ed pou\u017e\u00edvatelia by mali zv\u00e1\u017ei\u0165 tradi\u010dn\u00e9 spr\u00e1vca okien, preto\u017ee pon\u00fakaj\u00fa v\u00fdznamn\u00e9 zn\u00ed\u017eenie latencie. Ob\u00e1vam sa v\u0161ak, \u017ee pre Wayland sa mi nepodarilo zmera\u0165 oneskorenie: program Typometer, ktor\u00fd som pou\u017eil, bol navrhnut\u00fd na to, aby zabr\u00e1nil tomu, \u010do Wayland m\u00e1 zabr\u00e1ni\u0165 \u2014 \u0161pehovaniu in\u00fdch okien. D\u00fafam, \u017ee v\u00fdkon kompoz\u00edcie v Waylande je lep\u0161\u00ed ako v X.org, a tie\u017e d\u00fafam, \u017ee v bud\u00facnosti niekto n\u00e1jde sp\u00f4sob, ako pos\u00fadi\u0165 \u00farove\u0148 latencie v tomto prostred\u00ed.<br \/>\n<br \/>Zdroj: <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.4 - 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\/sk\/blog\/administrirovanie\/obzor-emulyatorov-terminala\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\/sk\/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\udd47Preh\u013ead emul\u00e1torov termin\u00e1lu | ProHoster","description":"P\u00e1r slov od na\u0161ej prekladate\u013eskej kancel\u00e1rie: zvy\u010dajne sa v\u0161etci sna\u017e\u00edme preklada\u0165 najnov\u0161ie materi\u00e1ly a publik\u00e1cie, a my nie sme v\u00fdnimkou. Ale termin\u00e1ly nie s\u00fa nie\u010do, \u010do by sa aktualizovalo ka\u017ed\u00fdch p\u00e1r t\u00fd\u017ed\u0148ov.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/obzor-emulyatorov-terminala","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/37222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=37222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/37222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/27911"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=37222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=37222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=37222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}