{"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\/cs\/blog\/administrirovanie\/obzor-emulyatorov-terminala","title":{"rendered":"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>P\u00e1r slov od na\u0161eho p\u0159ekladatelsk\u00e9ho studia: obvykle se v\u0161ichni sna\u017e\u00ed p\u0159ekl\u00e1dat nejnov\u011bj\u0161\u00ed materi\u00e1ly a publikace, a my nejsme v\u00fdjimkou. Av\u0161ak termin\u00e1ly nejsou n\u011bco, co se aktualizuje ka\u017ed\u00fdch p\u00e1r t\u00fddn\u016f. Proto jsme pro v\u00e1s p\u0159elo\u017eili \u010dl\u00e1nek Antoina Boprea, publikovan\u00fd na ja\u0159e 2018: p\u0159esto\u017ee je jeho 'v\u011bk' podle sou\u010dasn\u00fdch m\u011b\u0159\u00edtek solidn\u00ed, podle na\u0161eho n\u00e1zoru materi\u00e1l neztratil na aktu\u00e1lnosti. Nav\u00edc, v origin\u00e1le se jedn\u00e1 o s\u00e9rii dvou \u010dl\u00e1nk\u016f, ale rozhodli jsme se je slou\u010dit do jednoho velk\u00e9ho p\u0159\u00edsp\u011bvku.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/23b2893d4d23ee402f42f8d686fec788.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTermin\u00e1ly zauj\u00edmaj\u00ed zvl\u00e1\u0161tn\u00ed m\u00edsto v historii v\u00fdpo\u010detn\u00ed techniky, ale v posledn\u00edch desetilet\u00edch byly doslova nuceny p\u0159e\u017e\u00edt spolu s p\u0159\u00edkazov\u00fdm \u0159\u00e1dkem na pozad\u00ed roz\u0161\u00ed\u0159en\u00fdch grafick\u00fdch rozhran\u00ed. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Terminal_emulator\">Emul\u00e1tory termin\u00e1l\u016f<\/a><\/noindex> nahradily sv\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Computer_terminal\">hardwarov\u00e9 prot\u011bj\u0161ky<\/a><\/noindex>, kter\u00e9 byly zase modifikacemi syst\u00e9m\u016f na d\u011brn\u00fdch \u0161t\u00edtc\u00edch a p\u0159ep\u00edna\u010d\u00edch. Modern\u00ed distribuce p\u0159ich\u00e1zej\u00ed s celou \u0159adou emul\u00e1tor\u016f termin\u00e1lu v\u0161ech tvar\u016f a barev. A zat\u00edmco mnoz\u00ed spokojeni pou\u017e\u00edvaj\u00ed standardn\u00ed termin\u00e1l, kter\u00fd poskytuje jejich pracovn\u00ed prost\u0159ed\u00ed, n\u011bkte\u0159\u00ed s hrdost\u00ed pou\u017e\u00edvaj\u00ed otev\u0159en\u011b exotick\u00fd software pro spu\u0161t\u011bn\u00ed sv\u00e9 obl\u00edben\u00e9 shell nebo textov\u00e9ho editoru. Ale, jak uvid\u00edme v tomto \u010dl\u00e1nku, ne v\u0161echny termin\u00e1ly byly vytvo\u0159eny podle jednoho vzoru: v\u00fdrazn\u011b se li\u0161\u00ed co do funkcionality, velikosti a v\u00fdkonu.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>N\u011bkter\u00e9 termin\u00e1ly maj\u00ed p\u0159\u00edmo ohromuj\u00edc\u00ed bezpe\u010dnostn\u00ed d\u00edry, nav\u00edc v\u011bt\u0161ina m\u00e1 naprosto odli\u0161nou sadu funkc\u00ed, od podpory v\u00edcero oken po skripty. A\u010dkoli jsme <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/88161\/\">zkoumali emul\u00e1tory termin\u00e1l\u016f v d\u00e1vn\u00e9 minulosti<\/a><\/noindex>, tento \u010dl\u00e1nek je aktualizac\u00ed p\u0159edchoz\u00edho materi\u00e1lu, kter\u00fd pom\u016f\u017ee \u010dten\u00e1\u0159\u016fm ur\u010dit, kter\u00fd termin\u00e1l pou\u017e\u00edt v roce 2018. V prvn\u00ed polovin\u011b \u010dl\u00e1nku se porovn\u00e1vaj\u00ed funkce, zat\u00edmco ve druh\u00e9 se hodnot\u00ed v\u00fdkon.<\/p>\n<p>Zde jsou termin\u00e1ly, kter\u00e9 jsem zkoumal:<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/be76032ca4392c23dd0c111a36b199ef.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMo\u017en\u00e1 to nejsou nejnov\u011bj\u0161\u00ed verze, proto\u017ee jsem se omezil na stabiln\u00ed sestaven\u00ed k okam\u017eiku psan\u00ed materi\u00e1lu, kter\u00e1 jsem mohl nainstalovat na Debian 9 nebo Fedora 27. Jedinou v\u00fdjimkou je Alacritty. Je potomkem termin\u00e1l\u016f s GPU akcelerac\u00ed a je naps\u00e1n na neobvykl\u00e9m a nov\u00e9m jazyce pro tento \u00fakol \u2014 Rust. Vylou\u010dil jsem z m\u00e9ho p\u0159ehledu webov\u00e9 termin\u00e1ly (v\u010detn\u011b na <noindex><a rel=\"nofollow\" href=\"https:\/\/electronjs.org\/\">Electron<\/a><\/noindex>), proto\u017ee p\u0159edb\u011b\u017en\u00e9 testy uk\u00e1zaly jejich extr\u00e9mn\u011b n\u00edzkou v\u00fdkonnost.<\/p>\n<h4>Podpora Unicode<\/h4>\n<p>\nSv\u016fj test jsem za\u010dal s podporou Unicode. Prvn\u00edm testem termin\u00e1l\u016f bylo zobrazen\u00ed \u0159et\u011bzce o Unicode z <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Unicode#Web\">\u010dl\u00e1nku na Wikipedii<\/a><\/noindex>: \u201e\u00e9, \u0394, \u0419, \u05e7, \u0645, \u0e57, \u3042, \u53f6, \u8449 a \ub9d0\u201c. Tento jednoduch\u00fd test ukazuje, zda termin\u00e1l spr\u00e1vn\u011b funguje na cel\u00e9m sv\u011bt\u011b. Termin\u00e1l xterm nezobrazuje arabsk\u00fd symbol <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mem\">RAM<\/a><\/noindex> v z\u00e1kladn\u00ed konfiguraci:<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/92e1b9f6e7f3129a55d09cd48310c699.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPodle defaultu xterm pou\u017e\u00edv\u00e1 klasick\u00e9 \u201epevn\u00e9\u201c p\u00edsmo, kter\u00e9, podle <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Open-source_Unicode_typefaces\">takt\u00e9\u017e stejn\u00e9 Wiki<\/a><\/noindex>, m\u00e1 \u201epodstatn\u00fd pokryt\u00ed Unicode od roku 1997\u201c. V tomto p\u00edsmu se n\u011bco d\u011bje, co zp\u016fsobuje, \u017ee symbol se zobrazuje jako pr\u00e1zdn\u00fd r\u00e1me\u010dek, a a\u017e p\u0159i zv\u00fd\u0161en\u00ed velikosti textu na 20+ bod\u016f se symbol kone\u010dn\u011b za\u010dne spr\u00e1vn\u011b zobrazovat. Ov\u0161em takov\u00fd \u201eoprava\u201c naru\u0161uje zobrazen\u00ed dal\u0161\u00edch symbol\u016f Unicode:<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/4300f72d87bb9b729d4c682e876b4998.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTyto sn\u00edmky obrazovky byly po\u0159\u00edzeny na Fedo\u0159e 27, jeliko\u017e ta poskytovala lep\u0161\u00ed v\u00fdsledky ne\u017e Debian 9, kde n\u011bkter\u00e9 star\u00e9 verze termin\u00e1l\u016f (konkr\u00e9tn\u011b \u2014 mlterm) nemohly spr\u00e1vn\u011b fungovat s p\u00edsmem. Na\u0161t\u011bst\u00ed to bylo opraveno v nov\u011bj\u0161\u00edch verz\u00edch.<\/p>\n<p>Nyn\u00ed si v\u0161imn\u011bte zobrazen\u00ed \u0159et\u011bzce v xterm. Ukazuje se, \u017ee symbol Mem a n\u00e1sleduj\u00edc\u00ed po n\u011bm Semitic <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Qoph\">Qoph<\/a><\/noindex> pat\u0159\u00ed do sc\u00e9n\u00e1\u0159\u016f psan\u00ed RTL (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Right-to-left\">right-to-left<\/a><\/noindex>), tak\u017ee technicky by m\u011bly b\u00fdt zobrazeny zprava doleva. Webov\u00e9 prohl\u00ed\u017ee\u010de, nap\u0159\u00edklad Firefox 57, spr\u00e1vn\u011b zpracov\u00e1vaj\u00ed v\u00fd\u0161e uveden\u00fd \u0159et\u011bzec. Jednodu\u0161\u0161\u00edm p\u0159\u00edkladem textu RTL je slovo \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Sarah\">\u05e9\u05c2\u05b8\u05e8\u05b8\u05d4<\/a><\/noindex>\u201c na hebrej\u0161tin\u011b (<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\">Wiki str\u00e1nka o obousm\u011brn\u00e9m textu<\/a><\/noindex> \u0159\u00edk\u00e1 n\u00e1sleduj\u00edc\u00ed:<\/p>\n<blockquote><p>\u201eMnoho po\u010d\u00edta\u010dov\u00fdch program\u016f nedok\u00e1\u017ee spr\u00e1vn\u011b zobrazovat obousm\u011brn\u00fd text. Nap\u0159\u00edklad hebrejsk\u00e9 jm\u00e9no \u201eSara\u201c se skl\u00e1d\u00e1 ze znak\u016f sin (\u05e9) (kter\u00fd se zobrazuje zprava), pak re\u0161 (\u05e8) a nakonec chej (\u05d4) (kter\u00fd by se m\u011bl zobrazit zleva)\u201c.<\/p><\/blockquote>\n<p>\nMnoho termin\u00e1l\u016f tento test neprojde: Alacritty, VTE-deriv\u00e1ty termin\u00e1l\u016f Gnome a XFCE, urxvt, st a xterm zobrazuj\u00ed \u201eSara\u201c obr\u00e1cen\u011b, jako by bylo toto jm\u00e9no naps\u00e1no jako \u201eAras.\u201c<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" 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, \u017ee je nutn\u00e9 je n\u011bjak vyrovnat, zvl\u00e1\u0161\u0165 pokud se mluv\u00ed o kombinaci RTL a LTR text\u016f. Sc\u00e9n\u00e1\u0159e RTL by m\u011bly za\u010d\u00ednat z prav\u00e9 strany okna termin\u00e1lu, ale co by se m\u011blo d\u00edt v termin\u00e1lech, 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 zarovn\u00e1v\u00e1 cel\u00fd text na lev\u00fd okraj (v\u010detn\u011b Konsole). Vynikaj\u00ed pterm a mlterm, kter\u00e9 dodr\u017euj\u00ed standardy a zarovn\u00e1vaj\u00ed takov\u00e9 \u0159\u00e1dky na prav\u00fd okraj.<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/a32675d44e7cadce6d197d6eb5c8d9e2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Ochrana p\u0159ed vkl\u00e1d\u00e1n\u00edm<\/h4>\n<p>\nDal\u0161\u00ed kritick\u00e1 vlastnost, kterou jsem pro sebe ur\u010dil, je ochrana p\u0159ed vkl\u00e1d\u00e1n\u00edm. A\u010dkoli je v\u0161eobecn\u011b zn\u00e1mo, \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 spu\u0161t\u011bn\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, i po d\u016fkladn\u00e9 prohl\u00eddce. <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 bezobslu\u017en\u00fd 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 po vlo\u017een\u00ed ze str\u00e1nek Horna v 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\tToto 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 vyta\u017een do bloku <b><span><\/b>, kter\u00fd je p\u0159esunut z dohledu u\u017eivatele pomoc\u00ed CSS.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/cirw.in\/blog\/bracketed-paste\">Re\u017eim Bracketed paste<\/a><\/noindex> je ur\u010dena k neutralizaci podobn\u00fdch \u00fatok\u016f. V tomto re\u017eimu termin\u00e1ly obklopuj\u00ed vkl\u00e1dan\u00fd text p\u00e1rem speci\u00e1ln\u00edch escape sekvenc\u00ed, aby informovaly shell o p\u016fvodu tohoto textu. T\u00edmto zp\u016fsobem shell dost\u00e1v\u00e1 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 v\u00e1\u017een\u00fd xterm, tuto funkci podporuj\u00ed, ale vkl\u00e1d\u00e1n\u00ed v re\u017eimu Bracketed pot\u0159ebuje podporu shellu nebo aplikace, kter\u00e1 b\u011b\u017e\u00ed na termin\u00e1lu. Nap\u0159\u00edklad software pou\u017e\u00edvaj\u00edc\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/tiswww.case.edu\/php\/chet\/readline\/rltop.html\">GNU Readline<\/a><\/noindex> (stejn\u00e9 Bash), pot\u0159ebuje soubor <b>~\/ .inputrc<\/b>:<\/p>\n<pre><code class=\"plaintext\">set enable-bracketed-paste on<\/code><\/pre>\n<p>\nBohu\u017eel, testovac\u00ed str\u00e1nka Horna tak\u00e9 ukazuje, jak obej\u00edt tuto ochranu prost\u0159ednictv\u00edm form\u00e1tov\u00e1n\u00ed textu a p\u0159ed\u010dasn\u011b ukon\u010dit aplikaci re\u017eimu Bracketed. Funguje to, proto\u017ee n\u011bkter\u00e9 termin\u00e1ly nespr\u00e1vn\u011b filtruj\u00ed \u00fanikov\u00e9 sekvence p\u0159ed p\u0159id\u00e1n\u00edm sv\u00fdch vlastn\u00edch. Nap\u0159\u00edklad v m\u00fdch pokusech jsem nebyl schopen \u00fasp\u011b\u0161n\u011b dokon\u010dit testy Konsole, i p\u0159i spr\u00e1vn\u00e9 konfiguraci. <b>.inputrc<\/b> souboru. To znamen\u00e1, \u017ee m\u016f\u017eete snadno po\u0161kodit konfiguraci syst\u00e9mu kv\u016fli nepodporovan\u00e9 aplikaci nebo nespr\u00e1vn\u011b nastaven\u00e9 shell. To je obzvl\u00e1\u0161\u0165 nebezpe\u010dn\u00e9 p\u0159i p\u0159ihla\u0161ov\u00e1n\u00ed na vzd\u00e1len\u00e9 servery, kde pe\u010dliv\u00e9 zpracov\u00e1n\u00ed konfigurace je m\u00e9n\u011b b\u011b\u017en\u00e9, zvl\u00e1\u0161\u0165 pokud m\u00e1te v\u00edce takov\u00fdch vzd\u00e1len\u00fdch stroj\u016f.<\/p>\n<p>Dobr\u00e9 \u0159e\u0161en\u00ed tohoto probl\u00e9mu je plugin pro potvrzen\u00ed vkl\u00e1d\u00e1n\u00ed pro termin\u00e1l <b>urxvt<\/b>, kter\u00fd jednodu\u0161e po\u017eaduje povolen\u00ed k vlo\u017een\u00ed jak\u00e9hokoli textu obsahuj\u00edc\u00edho nov\u00e9 \u0159\u00e1dky. Nena\u0161el jsem bezpe\u010dn\u011bj\u0161\u00ed variantu pro popisovanou textovou \u00fatok Horna.<\/p>\n<h4>Z\u00e1lo\u017eky a profily<\/h4>\n<p>\nPopul\u00e1rn\u00ed funkc\u00ed v sou\u010dasnosti je podpora rozhran\u00ed se z\u00e1lo\u017ekami, kter\u00e9 definujeme jako jedno okno termin\u00e1lu obsahuj\u00edc\u00ed v\u00edce termin\u00e1l\u016f. Tato funkce se li\u0161\u00ed mezi r\u016fzn\u00fdmi termin\u00e1ly a zat\u00edmco tradi\u010dn\u00ed termin\u00e1ly jako xterm tuto funkci v\u016fbec nepodporuj\u00ed, modern\u011bj\u0161\u00ed verze termin\u00e1l\u016f jako Xfce Terminal, GNOME Terminal a Konsole tuto funkci maj\u00ed. Tak\u00e9 Urxvt podporuje z\u00e1lo\u017eky, ale pouze za podm\u00ednky pou\u017eit\u00ed pluginu. Z hlediska podpory z\u00e1lo\u017eek je bezesporu l\u00eddrem Terminator: nejen \u017ee podporuje z\u00e1lo\u017eky, ale tak\u00e9 m\u016f\u017ee rozm\u00edstit termin\u00e1ly v libovoln\u00e9m uspo\u0159\u00e1d\u00e1n\u00ed (viz obr\u00e1zek n\u00ed\u017ee).<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/5ac2cdbdd969420cd7c19597d20c8c35.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDal\u0161\u00ed zaj\u00edmavost\u00ed Terminatoru je mo\u017enost \"skupinovat\" tyto z\u00e1lo\u017eky dohromady a pos\u00edlat stejn\u00e9 stisky kl\u00e1ves na v\u00edce termin\u00e1l\u016f sou\u010dasn\u011b, co\u017e poskytuje hrub\u00fd n\u00e1stroj pro prov\u00e1d\u011bn\u00ed hromadn\u00fdch operac\u00ed na v\u00edce serverech soub\u011b\u017en\u011b. Podobn\u00e1 funkce je tak\u00e9 realizov\u00e1na v Konsole. K pou\u017eit\u00ed t\u00e9to funkce v jin\u00fdch termin\u00e1lech je nutn\u00e9 pou\u017e\u00edt t\u0159et\u00ed software, jako 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> nebo <noindex><a rel=\"nofollow\" href=\"https:\/\/tmux.github.io\/\">tmux<\/a><\/noindex>.<\/p>\n<p>Zvl\u00e1\u0161\u0165 dob\u0159e funguj\u00ed panely ve spojen\u00ed s profily: nap\u0159\u00edklad m\u016f\u017eete m\u00edt jednu kartu pro e-mail, dal\u0161\u00ed pro chat a tak d\u00e1le. To dob\u0159e podporuj\u00ed termin\u00e1ly Konsole a GNOME Terminal. Oba umo\u017e\u0148uj\u00ed, aby ka\u017ed\u00e1 karta automaticky spou\u0161t\u011bla sv\u016fj profil. Terminator tak\u00e9 podporuje profily, ale nedok\u00e1zal jsem naj\u00edt zp\u016fsob, jak automaticky spou\u0161t\u011bt ur\u010dit\u00e9 programy p\u0159i otev\u0159en\u00ed ur\u010dit\u00e9 karty. Ostatn\u00ed termin\u00e1ly nemaj\u00ed pojmy o 'profilu' v\u016fbec.<\/p>\n<h4>Ryb\u00ed filetky<\/h4>\n<p>\nPosledn\u00ed, co budu zkoumat v prvn\u00ed \u010d\u00e1sti tohoto \u010dl\u00e1nku, je vzhled termin\u00e1l\u016f. Nap\u0159\u00edklad GNOME, Xfce a urxvt podporuj\u00ed pr\u016fhlednost, ale ned\u00e1vno ukon\u010dili podporu pozad\u00ed obr\u00e1zk\u016f, co\u017e donutilo n\u011bkter\u00e9 u\u017eivatele p\u0159ej\u00edt na jin\u00fd termin\u00e1l. <noindex><a rel=\"nofollow\" href=\"https:\/\/gnunn1.github.io\/tilix-web\/\">Tilix<\/a><\/noindex>. Osobn\u011b mi sta\u010d\u00ed a jednodu\u0161e <b>Xresources<\/b>, kter\u00fd nastavuje z\u00e1kladn\u00ed sadu barev pozad\u00ed pro urxvt. Nicm\u00e9n\u011b nestandardn\u00ed barevn\u00e9 t\u00e9mata mohou zp\u016fsobovat probl\u00e9my. Nap\u0159\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 aplikacemi <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>, proto\u017ee ji\u017e pou\u017e\u00edvaj\u00ed sv\u00e9 vlastn\u00ed barvy.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/VT100\">Origin\u00e1ln\u00ed termin\u00e1l VT100<\/a><\/noindex> nepodporoval barvy, a nov\u00e9 \u010dasto omezovaly na paletu 256 barev. Pro zku\u0161en\u00e9 u\u017eivatele, kte\u0159\u00ed stylizuj\u00ed sv\u00e9 termin\u00e1ly pomoc\u00ed slo\u017eit\u00fdch zp\u016fsob\u016f, m\u016f\u017ee b\u00fdt tohle nep\u0159\u00edjemn\u00e9 omezen\u00ed. <noindex><a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/XVilka\/8346728\">Gist<\/a><\/noindex> sledoval, kter\u00e9 termin\u00e1ly maj\u00ed podporu 'True Color'. M\u00e9 testy potvrzuj\u00ed, \u017ee st, Alacritty a termin\u00e1ly na b\u00e1zi VTE skv\u011ble podporuj\u00ed True Color. Ostatn\u00ed termin\u00e1ly si v tomhle ohledu nevedou p\u0159\u00edli\u0161 dob\u0159e a ve skute\u010dnosti neukazuj\u00ed ani 256 barev. N\u00ed\u017ee m\u016f\u017eete vid\u011bt rozd\u00edl mezi podporou True Color v termin\u00e1lech GNOME, st a xterm, kter\u00e9 se t\u00edmto \u00fakolem zdatn\u011b vypo\u0159\u00e1d\u00e1vaj\u00ed pomoc\u00ed sv\u00e9 palety 256 barev, a urxvt, kter\u00fd nejen \u017ee testem neproch\u00e1z\u00ed, ale dokonce ukazuje n\u011bjak\u00e9 blikaj\u00edc\u00ed symboly m\u00edsto nich.<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/bc6ceac84a1918b9bfa14a5cadd28746.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u011bkter\u00e9 termin\u00e1ly tak\u00e9 analyzuj\u00ed text na p\u0159\u00edtomnost URL vzor\u016f, aby odkazy byly klikateln\u00e9. To plat\u00ed pro v\u0161echny odvozen\u00e9 termin\u00e1ly od VTE, zat\u00edmco urxvt vy\u017eaduje speci\u00e1ln\u00ed plugin, kter\u00fd by transformoval URL adresy po kliknut\u00ed nebo pomoc\u00ed kl\u00e1vesov\u00e9 zkratky. Ostatn\u00ed termin\u00e1ly, kter\u00e9 jsem testoval, zobrazuj\u00ed URL adresy jin\u00fdmi zp\u016fsoby.<\/p>\n<p>Nakonec je tu nov\u00fd trend termin\u00e1l\u016f \u2013 voliteln\u00fd posuvn\u00edk. Nap\u0159\u00edklad v st nen\u00ed \u017e\u00e1dn\u00fd posuvn\u00edk; p\u0159edpokl\u00e1d\u00e1 se, \u017ee u\u017eivatel bude pou\u017e\u00edvat termin\u00e1lov\u00fd multiplexor, jako je tmux a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gnu.org\/software\/screen\/\">GNU Screen<\/a><\/noindex>.<\/p>\n<p>V Alacritty tak\u00e9 chyb\u00ed zp\u011btn\u00e9 posuvn\u00edky, ale <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/124\">brzy bude p\u0159id\u00e1na<\/a><\/noindex> podpora kv\u016fli \"rozs\u00e1hl\u00e9 zp\u011btn\u00e9 vazb\u011b\" na toto t\u00e9ma od u\u017eivatel\u016f. Krom\u011b t\u011bchto v\u00fdjimek, ka\u017ed\u00fd termin\u00e1l, kter\u00fd jsem na\u0161el, podporuje zp\u011btn\u00e9 posouv\u00e1n\u00ed.<\/p>\n<h4>Meziv\u00fdsledky<\/h4>\n<p>\nVe druh\u00e9 \u010d\u00e1sti materi\u00e1lu (<i>v origin\u00e1le to byly dva r\u016fzn\u00e9 \u010dl\u00e1nky, \u2014 pozn. red.<\/i>) porovn\u00e1me v\u00fdkon, vyu\u017eit\u00ed pam\u011bti a latenci. Ale u\u017e vid\u00edme, \u017ee n\u011bkter\u00e9 z prob\u00edran\u00fdch termin\u00e1l\u016f maj\u00ed z\u00e1va\u017en\u00e9 nedostatky. Nap\u0159\u00edklad u\u017eivatel\u00e9, kte\u0159\u00ed pravideln\u011b pracuj\u00ed s RTL skripty, by m\u011bli v\u011bnovat pozornost mlterm a pterm, proto\u017ee si s t\u011bmito \u00falohami porad\u00ed l\u00e9pe ne\u017e ostatn\u00ed. Konsole se tak\u00e9 osv\u011bd\u010dila. U\u017eivatel\u00e9, kte\u0159\u00ed nepracuj\u00ed s RTL skripty, si mohou vybrat n\u011bco jin\u00e9ho.<\/p>\n<p>Z pohledu ochrany p\u0159ed vkl\u00e1d\u00e1n\u00edm \u0161kodliv\u00e9ho k\u00f3du se urxvt vyzna\u010duje svou jedine\u010dnou realizac\u00ed ochrany proti tomuto typu \u00fatok\u016f, co\u017e mi p\u0159ipad\u00e1 rozhodn\u011b u\u017eite\u010dn\u00e9. Ti, kte\u0159\u00ed hledaj\u00ed n\u011bjak\u00e9 vymo\u017eenosti, by m\u011bli pod\u00edvat na Konsole. Nakonec stoj\u00ed za zm\u00ednku, \u017ee VTE \u2013 skv\u011bl\u00e1 z\u00e1kladna pro termin\u00e1ly, zaru\u010duje podporu barev, rozpozn\u00e1v\u00e1n\u00ed URL a tak d\u00e1le. Na prvn\u00ed pohled m\u016f\u017ee v\u00fdchoz\u00ed termin\u00e1l dod\u00e1van\u00fd s va\u0161\u00ed obl\u00edbenou pracovn\u00ed plochou splnit v\u0161echny po\u017eadavky, ale tuto ot\u00e1zku nech\u00e1me otev\u0159enou, dokud neprozkoum\u00e1me v\u00fdkon.<\/p>\n<p><i><\/p>\n<h4>Pokra\u010dujeme v diskusi<\/h4>\n<p><\/i><br \/>\nV\u00fdkon termin\u00e1l\u016f se na prvn\u00ed pohled m\u016f\u017ee zd\u00e1t jako um\u011bl\u00fd probl\u00e9m, av\u0161ak jak se uk\u00e1zalo, n\u011bkter\u00e9 z nich vykazuj\u00ed p\u0159ekvapiv\u011b vysokou latenci pro tak z\u00e1sadn\u00ed typ softwaru. Tak\u00e9 se d\u00e1le pod\u00edv\u00e1me na to, co se obvykle naz\u00fdv\u00e1 \"rychlost\u00ed\" (ve skute\u010dnosti je to rychlost posouv\u00e1n\u00ed) a na spot\u0159ebu pam\u011bti termin\u00e1lem (s ohledem na to, \u017ee dnes to nen\u00ed tak kritick\u00e9, jak tomu bylo p\u0159ed desetilet\u00edmi).<\/p>\n<h4>Zpo\u017ed\u011bn\u00ed<\/h4>\n<p>\nPo d\u016fkladn\u00e9m prozkoum\u00e1n\u00ed v\u00fdkonu termin\u00e1l\u016f jsem dosp\u011bl k z\u00e1v\u011bru, \u017ee nejd\u016fle\u017eit\u011bj\u0161\u00edm parametrem v tomto ohledu je velikost latentnosti (ping). Ve sv\u00e9m \u010dl\u00e1nku <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typing-with-pleasure\/\">\u201eP\u00ed\u0161eme s pot\u011b\u0161en\u00edm\u201c<\/a><\/noindex> Pavel Fatin prozkoumal zpo\u017ed\u011bn\u00ed r\u016fzn\u00fdch textov\u00fdch editor\u016f a nazna\u010dil, \u017ee termin\u00e1ly v tomto ohledu mohou fungovat pomaleji ne\u017e nejrychlej\u0161\u00ed textov\u00e9 editory. Pr\u00e1v\u011b toto nazna\u010den\u00ed m\u011b nakonec vedlo k proveden\u00ed vlastn\u00edch test\u016f a naps\u00e1n\u00ed tohoto \u010dl\u00e1nku.<\/p>\n<p>Ale co je to zpo\u017ed\u011bn\u00ed a pro\u010d je tak d\u016fle\u017eit\u00e9? Ve sv\u00e9m \u010dl\u00e1nku Fatin definoval zpo\u017ed\u011bn\u00ed jako \u201eodstup mezi stisknut\u00edm kl\u00e1vesy a odpov\u00eddaj\u00edc\u00ed aktualizac\u00ed na obrazovce\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\">\u201eP\u0159\u00edru\u010dku pro interakci \u010dlov\u011bka s po\u010d\u00edta\u010dem\u201c<\/a><\/noindex>, ve kter\u00e9 se uv\u00e1d\u00ed: \u201eZpo\u017ed\u011bn\u00ed ve vizu\u00e1ln\u00ed odezv\u011b na displeji po\u010d\u00edta\u010de m\u00e1 v\u00fdznamn\u00fd dopad na chov\u00e1n\u00ed p\u00edsa\u0159e a jeho spokojenost.\u201c<\/p>\n<p>Fatin vysv\u011btluje, \u017ee takov\u00fd ping m\u00e1 hlub\u0161\u00ed d\u016fsledky ne\u017e pouh\u00e1 spokojenost: \u201epsan\u00ed se zpomaluje, vznik\u00e1 v\u00edce chyb, zvy\u0161uje se nap\u011bt\u00ed o\u010d\u00ed a sval\u016f\u201c. Jin\u00fdmi slovy, v\u011bt\u0161\u00ed zpo\u017ed\u011bn\u00ed m\u016f\u017ee v\u00e9st k p\u0159eklep\u016fm a tak\u00e9 ke sn\u00ed\u017een\u00ed kvality k\u00f3du, proto\u017ee zvy\u0161uje kognitivn\u00ed z\u00e1t\u011b\u017e na mozek. Co je ale je\u0161t\u011b hor\u0161\u00ed, ping \u201ezvy\u0161uje nap\u011bt\u00ed o\u010d\u00ed a sval\u016f\u201c, co\u017e z\u0159ejm\u011b nazna\u010duje <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Repetitive_strain_injury\">rozvoj profesion\u00e1ln\u00edch zran\u011bn\u00ed<\/a><\/noindex> v budoucnu (<i>z\u0159ejm\u011b autor m\u00e1 na mysli probl\u00e9my s o\u010dima, z\u00e1dy, rukama a samoz\u0159ejm\u011b se zrakem, \u2013 pozn. p\u0159.<\/i>) kv\u016fli opakovan\u00e9mu nap\u011bt\u00ed.<\/p>\n<p>N\u011bkter\u00e9 z t\u011bchto efekt\u016f jsou zn\u00e1m\u00e9 d\u00e1vno, a v\u00fdsledky <noindex><a rel=\"nofollow\" href=\"https:\/\/doi.org\/10.1080\/00140137608931531\">v\u00fdzkumy<\/a><\/noindex>, publikovan\u00e9 ji\u017e v roce 1976 v \u010dasopise Ergonomics, ukazuj\u00ed, \u017ee zpo\u017ed\u011bn\u00ed o 100 milisekund \u201ev\u00fdznamn\u011b zhor\u0161uje rychlost psan\u00ed\u201c. Ned\u00e1vno byl do u\u017eivatelsk\u00e9 p\u0159\u00edru\u010dky GNOME p\u0159id\u00e1n <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.gnome.org\/hig-book\/3.12\/feedback-response-times.html.en\">p\u0159ijateln\u00fd \u010das odezvy<\/a><\/noindex> o 10 milisekund, a pokud budeme pokra\u010dovat d\u00e1le, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=vOvQCPLkPt4\">Microsoft Research<\/a><\/noindex> ukazuje, \u017ee ide\u00e1lem je 1 milisekunda.<\/p>\n<p>Fatin prov\u00e1d\u011bl sv\u00e9 testy na textov\u00fdch editorech; vytvo\u0159il p\u0159enosn\u00fd n\u00e1stroj nazvan\u00fd <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typometer\">Typometer<\/a><\/noindex>, kter\u00fd jsem pou\u017eil k testov\u00e1n\u00ed pingu v emul\u00e1torech termin\u00e1lu. M\u011bjte na pam\u011bti, \u017ee test byl proveden v simula\u010dn\u00edm re\u017eimu: ve skute\u010dnosti mus\u00edme br\u00e1t v \u00favahu i zpo\u017ed\u011bn\u00ed vstupu (kl\u00e1vesnice, USB ovlada\u010d atd.) a v\u00fdstupu (buffer grafick\u00e9 karty, monitor). Podle Fatina je v b\u011b\u017en\u00fdch konfigurac\u00edch p\u0159ibli\u017en\u011b 20 ms. P\u0159i pou\u017eit\u00ed hern\u00edho vybaven\u00ed lze dos\u00e1hnout hodnoty pouze 3 milisekundy. Proto\u017ee u\u017e m\u00e1me tak rychl\u00e9 vybaven\u00ed, aplikace by nem\u011bla p\u0159id\u00e1vat dal\u0161\u00ed zpo\u017ed\u011bn\u00ed. Fatina c\u00edl\u00ed na sn\u00ed\u017een\u00ed zpo\u017ed\u011bn\u00ed aplikace na 1 milisekundu, nebo dokonce na dosa\u017een\u00ed bez <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jetbrains.com\/idea\/2015\/08\/experimental-zero-latency-typing-in-intellij-idea-15-eap\/\">m\u011b\u0159iteln\u00e9ho zpo\u017ed\u011bn\u00ed<\/a><\/noindex>, jako v <noindex><a rel=\"nofollow\" href=\"https:\/\/confluence.jetbrains.com\/display\/IDEADEV\/IDEA+15+EAP\">IntelliJ IDEA 15<\/a><\/noindex>.<\/p>\n<p>A tady jsou v\u00fdsledky m\u00fdch m\u011b\u0159en\u00ed a tak\u00e9 n\u011bkter\u00e9 v\u00fdsledky Fatina, abych uk\u00e1zal, \u017ee m\u016fj experiment souhlas\u00ed s jeho testy:<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/d7ae46c8309e9cfd517164d5fed093f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrvn\u00ed, co m\u011b p\u0159ekvapilo, bylo lep\u0161\u00ed reak\u010dn\u00ed \u010das u star\u00fdch program\u016f, jako jsou xterm a mlterm. S nejhor\u0161\u00edm zpo\u017ed\u011bn\u00edm registrace (2,4 ms) dos\u00e1hly lep\u0161\u00edho v\u00fdsledku ne\u017e nejrychlej\u0161\u00ed modern\u00ed termin\u00e1l (10,6 ms pro st). \u017d\u00e1dn\u00fd modern\u00ed termin\u00e1l se nedost\u00e1v\u00e1 pod hranici 10 milisekund. Concret\u011b, Alacritty nespl\u0148uje po\u017eadavky na \"nejrychlej\u0161\u00ed z existuj\u00edc\u00edch emul\u00e1tor\u016f termin\u00e1lu\", a\u010dkoli jeho v\u00fdsledky se zlep\u0161ily od prvn\u00edho testov\u00e1n\u00ed v roce 2017. Opravdu, auto\u0159i projektu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/673\">jsou si v\u011bdomi situace<\/a><\/noindex> a pracuj\u00ed na zlep\u0161en\u00ed vykreslov\u00e1n\u00ed. Tak\u00e9 je nutn\u00e9 poznamenat, \u017ee Vim, kter\u00fd pou\u017e\u00edv\u00e1 GTK3, je mnohem pomalej\u0161\u00ed ne\u017e jeho prot\u011bj\u0161ek GTK2. Z toho lze usoudit, \u017ee GTK3 vytv\u00e1\u0159\u00ed dal\u0161\u00ed zpo\u017ed\u011bn\u00ed, a to se odr\u00e1\u017e\u00ed na v\u0161ech ostatn\u00edch termin\u00e1lech, kter\u00e9 jej pou\u017e\u00edvaj\u00ed (Terminator, Xfce4 Terminal a GNOME Terminal).<\/p>\n<p>Nicm\u00e9n\u011b pro oko nemus\u00ed b\u00fdt rozd\u00edly patrn\u00e9. Jak vysv\u011btluje Fatina: \"nen\u00ed nutn\u00e9 b\u00fdt si v\u011bdom p\u0159\u00edtomnosti zpo\u017ed\u011bn\u00ed, aby to na v\u00e1s m\u011blo efekt\". Fatina tak\u00e9 varuje p\u0159ed standardn\u00ed odchylkou: \"jak\u00e9koli odchylky v d\u00e9lce zpo\u017ed\u011bn\u00ed (chv\u011bn\u00ed) vytv\u00e1\u0159ej\u00ed dal\u0161\u00ed z\u00e1t\u011b\u017e kv\u016fli sv\u00e9 nep\u0159edv\u00eddatelnosti.\"<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/e128a7e6c32a1517c98ffc612fe09128.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGraf v\u00fd\u0161e byl z\u00edsk\u00e1n na \u010dist\u00e9m Debianu 9 (stretch) s <noindex><a rel=\"nofollow\" href=\"https:\/\/i3wm.org\/\">spr\u00e1vcem oken i3<\/a><\/noindex>. Toto prost\u0159ed\u00ed poskytuje nejlep\u0161\u00ed v\u00fdsledky v testech latence. Jak se uk\u00e1zalo, GNOME vytv\u00e1\u0159\u00ed dodate\u010dn\u00fd ping o 20 ms pro v\u0161echna m\u011b\u0159en\u00ed. Mo\u017en\u00fdm vysv\u011btlen\u00edm je, \u017ee existuj\u00ed aplikace se synchronn\u00edm zpracov\u00e1n\u00edm vstupn\u00edch ud\u00e1lost\u00ed. Fat\u00edn uv\u00e1d\u00ed k takov\u00e9mu p\u0159\u00edpadu p\u0159\u00edklad <noindex><a rel=\"nofollow\" href=\"http:\/\/www.workrave.org\/\">Workrave<\/a><\/noindex>, kter\u00fd p\u0159id\u00e1v\u00e1 zpo\u017ed\u011bn\u00ed zpracov\u00e1n\u00edm v\u0161ech input ud\u00e1lost\u00ed synchronn\u011b. Ve v\u00fdchoz\u00edm nastaven\u00ed je GNOME tak\u00e9 vybaveno spr\u00e1vcem oken <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mutter_(software)\">Mutter<\/a><\/noindex>, kter\u00fd vytv\u00e1\u0159\u00ed dal\u0161\u00ed \u00farove\u0148 vyrovn\u00e1vac\u00ed pam\u011bti, co\u017e ovliv\u0148uje ping a p\u0159id\u00e1v\u00e1 minim\u00e1ln\u011b 8 milisekund zpo\u017ed\u011bn\u00ed.<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/3585d1edf4cee214d7a53858943b1845.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Rychlost posunu<\/h4>\n<p>\nN\u00e1sledn\u00fd test je tradi\u010dn\u00ed kontrola \"rychlosti\" nebo \"propustnosti\", kter\u00e1 m\u011b\u0159\u00ed, jak rychle m\u016f\u017ee termin\u00e1l posouvat str\u00e1nku, zobrazuj\u00edc\u00ed velk\u00e9 mno\u017estv\u00ed textu na obrazovce. Mechanika testu se li\u0161\u00ed; p\u016fvodn\u00ed test spo\u010d\u00edval v tom, \u017ee se jednodu\u0161e generoval stejn\u00fd textov\u00fd \u0159et\u011bzec pomoc\u00ed p\u0159\u00edkazu seq. Dal\u0161\u00ed testy zahrnuj\u00ed kontrolu Thomase E. Dickse (doprovod\u00edc\u00ed xterm), v r\u00e1mci kter\u00e9 se opakovan\u011b <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/xterm.faq.html#scroll_speed\">vykl\u00e1d\u00e1 soubor terminfo.src<\/a><\/noindex>. V dal\u0161\u00edm p\u0159ehledu v\u00fdkonu termin\u00e1l\u016f <noindex><a rel=\"nofollow\" href=\"https:\/\/danluu.com\/term-latency\/\">Den Luu<\/a><\/noindex> pou\u017e\u00edv\u00e1 \u0159et\u011bzec n\u00e1hodn\u00fdch byt\u016f v k\u00f3dov\u00e1n\u00ed base32, kter\u00fd se zobrazuje v termin\u00e1lu pomoc\u00ed cat. Luu pova\u017euje tento test za \"tak bezv\u00fdznamn\u00fd benchmark, jak\u00fd si lze p\u0159edstavit\" a navrhuje m\u00edsto toho pou\u017e\u00edvat odezvu termin\u00e1lu jako hlavn\u00ed metriku. Dick tak\u00e9 ozna\u010duje sv\u016fj test za zav\u00e1d\u011bj\u00edc\u00ed. P\u0159esto oba auto\u0159i uzn\u00e1vaj\u00ed, \u017ee propustnost okna termin\u00e1lu m\u016f\u017ee b\u00fdt probl\u00e9mem. Luu zjistil zpo\u017ed\u011bn\u00ed Emacs Eshell p\u0159i zobrazov\u00e1n\u00ed velk\u00fdch soubor\u016f, zat\u00edmco Dick optimalizoval termin\u00e1l, aby se zbavil vizu\u00e1ln\u00ed pomalosti xtermu. Tud\u00ed\u017e m\u00e1 tento test st\u00e1le ur\u010dit\u00e9 opodstatn\u011bn\u00ed, ale proto\u017ee proces vykreslov\u00e1n\u00ed se zna\u010dn\u011b li\u0161\u00ed od termin\u00e1lu k termin\u00e1lu, m\u016f\u017ee b\u00fdt pou\u017eit jako testovac\u00ed komponent pro kontrolu dal\u0161\u00edch parametr\u016f.<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/3231877fdcd7725c3248fb393185ece4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZde vid\u00edme, \u017ee rxvt a st vy\u010dn\u00edvaj\u00ed na pozad\u00ed konkurence, za nimi n\u00e1sleduje mnohem nov\u011bj\u0161\u00ed Alacritty, vyv\u00edjen\u00fd s d\u016frazem na rychlost. Dal\u0161\u00ed jsou Xfce (rodina VTE) a Konsole, kter\u00e9 funguj\u00ed t\u00e9m\u011b\u0159 dvakr\u00e1t rychleji. Na posledn\u00edm m\u00edst\u011b je xterm s v\u00fdkonem p\u011btkr\u00e1t pomalej\u0161\u00edm ne\u017e rxvt. B\u011bhem testu xterm tak\u00e9 siln\u011b blikalo, proch\u00e1zej\u00edc\u00ed text bylo t\u011b\u017ek\u00e9 rozpoznat, i kdy\u017e to byla stejn\u00e1 \u0159\u00e1dka. Konsole se uk\u00e1zal b\u00fdt rychl\u00fdm, ale ob\u010das \u201e\u0161vindloval\u201c: displej ob\u010das zamrzl, ukazuj\u00edc\u00ed text \u010d\u00e1ste\u010dn\u011b nebo ho v\u016fbec nezobrazoval. Ostatn\u00ed termin\u00e1ly zobrazovaly \u0159\u00e1dky jasn\u011b, v\u010detn\u011b st, Alacritty a rxvt.<\/p>\n<p>Diki vysv\u011btluje, \u017ee rozd\u00edly v v\u00fdkonu souvisej\u00ed s n\u00e1vrhem buffer\u016f rolov\u00e1n\u00ed v r\u016fzn\u00fdch termin\u00e1lech. P\u0159edev\u0161\u00edm obvi\u0148uje rxvt a dal\u0161\u00ed termin\u00e1ly, \u017ee \u201en\u00e1sleduj\u00ed obecn\u00e1 pravidla\u201c:<\/p>\n<blockquote><p>\u201eNa rozd\u00edl od xtermu, rxvt se nesna\u017eil zobrazit v\u0161echny aktualizace. Pokud zaostal, vzd\u00e1 se n\u011bkter\u00fdch aktualizac\u00ed, aby dohnal zpo\u017ed\u011bn\u00ed. To m\u011blo v\u011bt\u0161\u00ed vliv na zd\u00e1nlivou rychlost rolov\u00e1n\u00ed ne\u017e na organizaci intern\u00ed pam\u011bti. Jedinou nev\u00fdhodou bylo, \u017ee animace ASCII byla pon\u011bkud nep\u0159esn\u00e1.\u201c<\/p><\/blockquote>\n<p>\nAbychom tuto zd\u00e1nlivou pomalost xtermu napravili, Diki navrhuje pou\u017e\u00edt zdroj <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/manpage\/xterm.html#VT100-Widget-Resources:fastScroll\">fastScroll<\/a><\/noindex>, kter\u00fd umo\u017e\u0148uje xtermu ignorovat n\u011bkter\u00e9 aktualizace obrazovky, aby nezaost\u00e1val za tokem. M\u00e9 testy potvrzuj\u00ed, \u017ee fastScroll zvy\u0161uje v\u00fdkon a dost\u00e1v\u00e1 xterm na \u00farove\u0148 rxvt. Toto je v\u0161ak pom\u011brn\u011b hrub\u00e9 \u0159e\u0161en\u00ed, jak s\u00e1m Diki vysv\u011btluje: \u201en\u011bkdy xterm \u2013 stejn\u011b jako konsole \u2013 vypad\u00e1, \u017ee se zastavil, proto\u017ee \u010dek\u00e1 na novou sadu aktualizac\u00ed obrazovky pot\u00e9, co n\u011bkter\u00e9 z nich byly odstran\u011bny\u201c. V tomto ohledu se zd\u00e1, \u017ee ostatn\u00ed termin\u00e1ly na\u0161ly nejlep\u0161\u00ed kompromis mezi rychlost\u00ed a integritou displeje.<\/p>\n<h4>Spot\u0159eba zdroj\u016f<\/h4>\n<p>\nBez ohledu na to, zda je smyslupln\u00e9 zv\u00e1\u017eit rychlost rolov\u00e1n\u00ed jako ukazatel v\u00fdkonu, tento test umo\u017e\u0148uje simulovat zat\u00ed\u017een\u00ed termin\u00e1l\u016f, co\u017e n\u00e1m zase umo\u017e\u0148uje m\u011b\u0159it dal\u0161\u00ed parametry, jako je vyu\u017eit\u00ed pam\u011bti nebo disku. Metriky byly z\u00edsk\u00e1ny spu\u0161t\u011bn\u00edm uveden\u00e9ho testu <b>seq<\/b> pod monitorov\u00e1n\u00edm procesu Python. Shroma\u017e\u010foval data \u010d\u00edta\u010d\u016f <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man2\/getrusage.2.html\">getrusage ()<\/a><\/noindex> pro <b>ru_maxrss<\/b>, sou\u010det <b>ru_oublock<\/b> a <b>ru_inblock<\/b> a jednoduch\u00fd \u010dasova\u010d.<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/df378c145a559ed4aad98fa70b58c72c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV tomto testu ST zauj\u00edm\u00e1 prvn\u00ed m\u00edsto s nejni\u017e\u0161\u00ed pr\u016fm\u011brnou spot\u0159ebou pam\u011bti 8 MB, co\u017e nen\u00ed p\u0159ekvapiv\u00e9, kdy\u017e vezmeme v \u00favahu, \u017ee hlavn\u00ed my\u0161lenkou projektu je jednoduchost. O n\u011bco v\u00edce spot\u0159ebov\u00e1v\u00e1 mlterm, xterm a rxvt \u2013 kolem 12 MB. Dal\u0161\u00edm v\u00fdrazn\u00fdm v\u00fdsledkem je Alacritty, kter\u00fd pot\u0159ebuje 30 MB k provozu. N\u00e1sleduj\u00ed termin\u00e1ly rodiny VTE s ukazateli od 40 do 60 MB, co\u017e je pom\u011brn\u011b hodn\u011b. Takov\u00e1 spot\u0159eba m\u016f\u017ee b\u00fdt vysv\u011btlena t\u00edm, \u017ee tyto termin\u00e1ly pou\u017e\u00edvaj\u00ed knihovny vy\u0161\u0161\u00ed \u00farovn\u011b, jako je GTK. Konsole kon\u010d\u00ed s obrovskou spot\u0159ebou 65 MB pam\u011bti b\u011bhem test\u016f, a\u010dkoliv to lze obh\u00e1jit jeho velmi \u0161irok\u00fdm souborem funkc\u00ed.<\/p>\n<p>Ve srovn\u00e1n\u00ed s p\u0159edchoz\u00edmi v\u00fdsledky z p\u0159ed deseti let v\u0161echny programy za\u010daly spot\u0159ebov\u00e1vat znateln\u011b v\u00edce pam\u011bti. D\u0159\u00edve Xterm vy\u017eadoval 4 MB, nyn\u00ed v\u0161ak 15 MB pouze na spu\u0161t\u011bn\u00ed. Podobn\u00e9 zv\u00fd\u0161en\u00ed spot\u0159eby se objevilo tak\u00e9 u rxvt, kter\u00fd nyn\u00ed z krabice vy\u017eaduje 16 MB. Termin\u00e1l Xfce zab\u00edr\u00e1 34 MB, co\u017e je t\u0159ikr\u00e1t v\u00edce ne\u017e d\u0159\u00edve, zat\u00edmco GNOME Terminal pot\u0159ebuje pouze 20 MB. Samoz\u0159ejm\u011b, v\u0161echny p\u0159edchoz\u00ed testy byly prov\u00e1d\u011bny na 32bitov\u00e9 architektu\u0159e. Na LCA 2012 Rasty Russell <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/477155\/\">\u0159ekl<\/a><\/noindex>, \u017ee existuje mnoho subtiln\u011bj\u0161\u00edch p\u0159\u00ed\u010din, kter\u00e9 mohou vysv\u011btlit r\u016fst spot\u0159eby pam\u011bti. P\u0159esto nyn\u00ed \u017eijeme v \u010dasech, kdy m\u00e1me cel\u00e9 gigabajty pam\u011bti, tak\u017ee si n\u011bjak porad\u00edme.<\/p>\n<p>Nicm\u00e9n\u011b, nemohu se zbavit pocitu, \u017ee p\u0159id\u011blov\u00e1n\u00ed v\u011bt\u0161\u00edho mno\u017estv\u00ed pam\u011bti pro tak z\u00e1kladn\u00ed software, jako je termin\u00e1l, je zbyte\u010dn\u00e9 pl\u00fdtv\u00e1n\u00ed zdroji. Tyto programy by m\u011bly b\u00fdt co nejmen\u0161\u00ed, m\u011bly by b\u00fdt schopny fungovat na jak\u00e9mkoliv \u201eboxu\u201c, dokonce i na bot\u011b, pokud n\u011bkdy dojdeme k tomu, \u017ee je budeme muset vybavovat Linuxov\u00fdmi syst\u00e9my (a v\u00edte, \u017ee to tak bude). Ale s t\u011bmito \u010d\u00edsly se spot\u0159eba pam\u011bti stane v budoucnosti probl\u00e9mem v jak\u00e9mkoliv prost\u0159ed\u00ed p\u0159i spu\u0161t\u011bn\u00ed n\u011bkolika termin\u00e1l\u016f, krom\u011b situace s t\u011bmi nejleh\u010d\u00edmi a nejv\u00edce omezen\u00fdmi mo\u017enostmi. Aby to kompenzovaly, GNOME Terminal, Konsole, urxvt, Terminator a Xfce Terminal maj\u00ed Daemon-re\u017eim, kter\u00fd umo\u017e\u0148uje spravovat n\u011bkolik termin\u00e1l\u016f skrze jeden proces, \u010d\u00edm\u017e se omezuje jejich spot\u0159eba pam\u011bti.<\/p>\n<p><img decoding=\"async\" alt=\"P\u0159ehled termin\u00e1lov\u00fdch emul\u00e1tor\u016f\" src=\"\/wp-content\/uploads\/2019\/08\/65ade9cc81284f24f0c44322eec73ef0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nB\u011bhem sv\u00fdch test\u016f jsem narazil na dal\u0161\u00ed p\u0159ekvapiv\u00fd v\u00fdsledek t\u00fdkaj\u00edc\u00ed se diskov\u00e9ho \u010dten\u00ed a z\u00e1pisu: o\u010dek\u00e1val jsem, \u017ee tu nic neobjev\u00edm, ale uk\u00e1zalo se, \u017ee n\u011bkter\u00e9 termin\u00e1ly zapisuj\u00ed nejv\u011bt\u0161\u00ed objemy dat na disk. Knihovna VTE v podstat\u011b uchov\u00e1v\u00e1 na disku buffer pro scrolling (tato vlastnost <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=631685\">byla zaznamen\u00e1na ji\u017e v roce 2010<\/a><\/noindex>, a to se d\u011bje dodnes). Ale na rozd\u00edl od star\u00fdch implementac\u00ed, nyn\u00ed jsou alespo\u0148 tato data \u0161ifrov\u00e1na pomoc\u00ed AES256 GCM (<noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=664611#c48\">od verze 0.39.2<\/a><\/noindex>). Ale vyvst\u00e1v\u00e1 logick\u00e1 ot\u00e1zka, co je na knihovn\u011b VTE tak v\u00fdjime\u010dn\u00e9ho, \u017ee vy\u017eaduje tak netradi\u010dn\u00ed p\u0159\u00edstup k implementaci\u2026<\/p>\n<h4>Z\u00e1v\u011br<\/h4>\n<p>\nV prvn\u00ed \u010d\u00e1sti \u010dl\u00e1nku jsme zjistili, \u017ee termin\u00e1ly zalo\u017een\u00e9 na VTE maj\u00ed dobr\u00fd soubor funkc\u00ed, ale nyn\u00ed vid\u00edme, \u017ee to souvis\u00ed s n\u011bkter\u00fdmi n\u00e1klady na zaji\u0161t\u011bn\u00ed jejich v\u00fdkonu. V sou\u010dasnosti pam\u011b\u0165 nep\u0159edstavuje probl\u00e9m, proto\u017ee v\u0161echny termin\u00e1ly VTE mohou b\u00fdt spravov\u00e1ny prost\u0159ednictv\u00edm Daemon procesu, kter\u00fd omezuje jejich spot\u0159ebu. Nicm\u00e9n\u011b star\u00e9 syst\u00e9my s fyzick\u00fdmi omezen\u00edmi ohledn\u011b mno\u017estv\u00ed opera\u010dn\u00ed pam\u011bti a bufferu j\u00e1dra mohou st\u00e1le pot\u0159ebovat star\u0161\u00ed verze termin\u00e1l\u016f, jeliko\u017e spot\u0159ebov\u00e1vaj\u00ed v\u00fdrazn\u011b m\u00e9n\u011b zdroj\u016f. A\u010dkoli termin\u00e1ly VTE se osv\u011bd\u010dily v testech propustnosti (scrolling), jejich latence zobrazen\u00ed dat na displeji p\u0159esahuje stanoven\u00fd pr\u00e1h v u\u017eivatelsk\u00e9 p\u0159\u00edru\u010dce GNOME. Je pravd\u011bpodobn\u00e9, \u017ee v\u00fdvoj\u00e1\u0159i VTE by si toho m\u011bli b\u00fdt v\u011bdomi. Pokud vezmeme v \u00favahu, \u017ee i pro za\u010d\u00ednaj\u00edc\u00ed u\u017eivatele Linuxu je setk\u00e1n\u00ed s termin\u00e1lem nevyhnuteln\u00e9, mohli by ho u\u010dinit p\u0159\u00edv\u011btiv\u011bj\u0161\u00edm pro u\u017eivatele. Pro zku\u0161en\u00e9 geeky m\u016f\u017ee p\u0159echod z v\u00fdchoz\u00edho termin\u00e1lu znamenat dokonce sn\u00ed\u017een\u00ed z\u00e1t\u011b\u017ee na zrak a mo\u017enost vyhnout se profesion\u00e1ln\u00edm \u00faraz\u016fm a nemocem v budoucnu zp\u016fsoben\u00fdm dlouh\u00fdmi pracovn\u00edmi sezen\u00edmi. Bohu\u017eel pouze star\u00e9 xterm a mlterm n\u00e1s p\u0159iv\u00e1d\u011bj\u00ed k magick\u00e9 latenci 10 milisekund, co\u017e je pro mnoho nep\u0159ijateln\u00e9.<\/p>\n<p>Kontroln\u00ed m\u011b\u0159en\u00ed tak\u00e9 uk\u00e1zala, \u017ee v d\u016fsledku v\u00fdvoje grafick\u00fdch prost\u0159ed\u00ed Linuxu museli v\u00fdvoj\u00e1\u0159i u\u010dinit \u0159adu kompromis\u016f. N\u011bkter\u00fdm u\u017eivatel\u016fm se doporu\u010duje pod\u00edvat se na b\u011b\u017en\u00e9 spr\u00e1vce oken, proto\u017ee ty zaji\u0161\u0165uj\u00ed zna\u010dn\u00e9 sn\u00ed\u017een\u00ed pingu. Bohu\u017eel pro Wayland se nepoda\u0159ilo zm\u011b\u0159it zpo\u017ed\u011bn\u00ed: program Typometer, kter\u00fd jsem pou\u017e\u00edval, byl vytvo\u0159en pr\u00e1v\u011b pro to, co m\u00e1 Wayland zamezit \u2014 \u0161pehov\u00e1n\u00ed ostatn\u00edch oken. Douf\u00e1m, \u017ee kompozice Wayland bude v\u00fdkonn\u011bj\u0161\u00ed ne\u017e X.org, a tak\u00e9 douf\u00e1m, \u017ee v budoucnu n\u011bkdo najde zp\u016fsob, jak vyhodnotit \u00farove\u0148 zpo\u017ed\u011bn\u00ed v tomto prost\u0159ed\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.3 - 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\/cs\/blog\/administrirovanie\/obzor-emulyatorov-terminala\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47P\u0159ehled emul\u00e1tor\u016f termin\u00e1l\u016f | ProHoster","description":"P\u00e1r slov od na\u0161eho p\u0159ekladatelsk\u00e9ho studia: obvykle se v\u0161ichni sna\u017e\u00ed p\u0159ekl\u00e1dat nejnov\u011bj\u0161\u00ed materi\u00e1ly a publikace, a my nejsme v\u00fdjimkou. Ale termin\u00e1ly to nen\u00ed n\u011bco, co se aktualizuje ka\u017ed\u00fdch p\u00e1r t\u00fddn\u016f.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/obzor-emulyatorov-terminala","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/37222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=37222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/37222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/27911"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=37222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=37222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=37222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}