{"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\/et\/blog\/administrirovanie\/obzor-emulyatorov-terminala","title":{"rendered":"Terminalide emulaatorite \u00fclevaade","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>M\u00f5ned s\u00f5nad meie t\u00f5lkeb\u00fcroost: tavaliselt p\u00fc\u00fctakse t\u00f5lkida k\u00f5ige uuemaid materjale ja avaldusi, ning me ei ole erand. Kuid terminalid ei ole asi, mis uuendatakse iga n\u00e4dal. Seet\u00f5ttu t\u00f5lkisime teile Antoine Bopre'i artikli, mis avaldati 2018. aasta kevadel: vaatamata kaasaegsete m\u00f5\u00f5tmete j\u00e4rgi \"vanusele\" pole meie arvates materjal kaotanud oma aktuaalsust. Lisaks on originaalis tegemist kahe artikli sarjaga, kuid otsustasime need \u00fchte suure postitusse koondada.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/23b2893d4d23ee402f42f8d686fec788.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTerminalid omavad arvutiajaloos erilist kohta, kuid viimastel aastak\u00fcmnetel on nad pidanud s\u00f5na otseses m\u00f5ttes koos k\u00e4sureaga ellu j\u00e4\u00e4ma laialdaselt levinud graafiliste liidesete taustal. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Terminal_emulator\">Terminali emulaatorid<\/a><\/noindex> asendasid oma <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Computer_terminal\">riistvaralised kolleegid<\/a><\/noindex>, mis omakorda olid perforaarkaardis\u00fcsteemide ja l\u00fclitite modifikatsioon. Kaasaegsed distribtsioonid tulevad koos hulga erinevate terminali emulaatoritega, mis on igasuguste vormide ja v\u00e4rvidega. Ja seni kui paljud on rahul oma t\u00f6\u00f6keskkonna pakutava standardsel terminaliga, siis m\u00f5ned uhkelt kasutavad t\u00f5eliselt eksootilist tarkvara oma lemmikterminali v\u00f5i tekstiredaktori k\u00e4ivitamiseks. Kuid nagu me n\u00e4eme sellest artiklist, ei ole k\u00f5ik terminalid loodud \u00fchtemoodi: nad erinevad omavahel oluliselt funktsionaalsuse, suuruse ja j\u00f5udluse poolest.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>M\u00f5ned terminalid omavad otseselt h\u00e4mmastavaid turvaauke, lisaks on enamikul neist t\u00e4iesti erinev funktsioonide komplekt, alates vahetustega liidese toimest kuni skriptideni. Kuigi me <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/88161\/\">vaatasime terminali emulaatoreid kauges minevikus<\/a><\/noindex>, on see artikkel varasema materjali ajakohastamine, mis aitab lugejatel m\u00e4\u00e4rata, millist terminali kasutada 2018. aastal. Artikli esimeses osas v\u00f5rreldakse funktsioone ja teises hinnatakse j\u00f5udlust.<\/p>\n<p>Siin on minu k\u00e4sitletud terminalid:<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/be76032ca4392c23dd0c111a36b199ef.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00f5imalik, et need ei ole k\u00f5ige v\u00e4rskemaid versioone, kuna ma piirdusin stabiilsete kogumitega selle sisu kirjutamise hetkel, mis mul \u00f5nnestus paigaldada Debian 9-le v\u00f5i Fedora 27-le. Ainsaks erandiks on Alacritty. See on GPU-kiirendusega terminalide j\u00e4reltulija ja on kirjutatud selle \u00fclesande jaoks uues ja ebatavalises keeles - Rust. Ma ei toonud oma \u00fclevaatesse veebiterminale (sealhulgas ka) <noindex><a rel=\"nofollow\" href=\"https:\/\/electronjs.org\/\">Electron<\/a><\/noindex>), sest eelteated n\u00e4itasid nende ekstremalselt madalat j\u00f5udlust.<\/p>\n<h4>Unicode'i tugi<\/h4>\n<p>\nOma testid alustasin Unicode'i toega. Esimene terminalide test oli nende v\u00f5ime kuvada Unicode'i rida, mille sain <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Unicode#Web\">Wikipeedia artiklist<\/a><\/noindex>: \u201e\u00e9, \u0394, \u0419, \u05e7, \u0645, \u0e57, \u3042, \u53f6, \u8449 ja \ub9d0\u201c. See lihtne test n\u00e4itab, kas terminal suudab \u00fcle maailma korrektselt t\u00f6\u00f6tada. Terminal xterm ei kuva araabia s\u00fcmbolit <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mem\">Mem<\/a><\/noindex> vaikimisi seadistustes:<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/92e1b9f6e7f3129a55d09cd48310c699.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVaikimisi kasutab xterm klassikalist \"fikseeritud\" fonte, mis, nagu v\u00e4idab <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Open-source_Unicode_typefaces\">sama Wikipeedia<\/a><\/noindex>, omab \u201eolulist Unicode'i katvust alates 1997. aastast\u201c. Selles fondis toimub midagi, mis p\u00f5hjustab s\u00fcmboli kuvamise t\u00fchja raamina ja ainult siis, kui teksti fonti suurendada 20+ punktini, hakkab s\u00fcmbol l\u00f5puks \u00f5igesti kuvatama. Kuid selline \"parandus\" rikub teiste Unicode'i s\u00fcmbolite kuvamist:<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/4300f72d87bb9b729d4c682e876b4998.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNeed ekraanipildid tehti Fedora 27-s, kuna see andis paremaid tulemusi v\u00f5rreldes Debian 9-ga, kus m\u00f5ned vanemad terminalid (konkreetsemalt - mlterm) ei suutnud korralikult fonte t\u00f6\u00f6delda. \u00d5nneks parandati see hilisemates versioonides.<\/p>\n<p>N\u00fc\u00fcd p\u00f6\u00f6rake t\u00e4helepanu real xterm-is. Selgub, et s\u00fcmbol Mem ja selle j\u00e4rel olev semitiline <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Qoph\">Qoph<\/a><\/noindex> kuulu RTS-i (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Right-to-left\">right-to-left<\/a><\/noindex>), seega peaksid nad tehniliselt olema kuvatud paremalt vasakule. Veebibrauserid, nagu n\u00e4iteks Firefox 57, t\u00f6\u00f6tlevad eelnevalt toodud rida \u00f5igesti. Lihtsamaks RTL-teksti n\u00e4iteks on s\u00f5na \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Sarah\">Sara<\/a><\/noindex>\u201c heebrea keeles (<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\">Wikipeedia leht kahe suunda tekste<\/a><\/noindex> \u00fctleb j\u00e4rgmist:<\/p>\n<blockquote><p>\u201ePaljud arvutiprogrammid ei suuda \u00f5igesti kuvada kahe suunda teksti. N\u00e4iteks heebrea nimi \u201eSara\u201c koosneb s\u00fcmbolitest sin (\u05e9) (mis ilmub paremale), seej\u00e4rel resh (\u05e8) ja l\u00f5puks he (\u05d4) (mis peaks ilmuma vasakule).\u201c<\/p><\/blockquote>\n<p>\nPaljud terminalid ei l\u00e4bi seda testi: Alacritty, Gnome ja XFCE VTE-p\u00f5hised terminalid, urxvt, st ja xterm kuvavad 'Sara' tagurpidi, justkui oleksime seda nime kirjutanud kui 'Aras'.<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/9decee6d198bd9d3e4f4883a8f2b0da6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTeine kaheastmeliste tekstide probleem on see, et neid tuleb kuidagi joondada, eriti kui segatakse RTL ja LTR tekste. RTL-skeemid peaksid algama terminali akna paremal poolel, kuid mis peaks toimuma terminalides, mis vaikimisi t\u00f6\u00f6tavad LTR-inglise keeles? Enamik neist ei oma mingeid erilisi mehhanisme ning joondavad kogu teksti vasakule (sealhulgas Konsole'is). Eranditeks on pterm ja mlterm, mis j\u00e4rgivad standardeid ning joondavad sellised read paremale.<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/a32675d44e7cadce6d197d6eb5c8d9e2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Kleepimisvastane kaitse<\/h4>\n<p>\nJ\u00e4rgmine kriitiline omadus, mille ma endale defineerisin, on kleepimisvastane kaitse. Kuigi on laialt tuntud, et j\u00e4rgmised k\u00e4sud:<\/p>\n<pre><code class=\"plaintext\">$ curl http:\/\/example.com\/ | sh<\/code><\/pre>\n<p>\non koodi k\u00e4itamise push-k\u00e4sud, siis v\u00e4he teatakse, et varjatud k\u00e4sud v\u00f5ivad kopeerimise ja kleepimise k\u00e4igus veebibrauserist konsooli p\u00e4\u00e4seda, isegi p\u00e4rast p\u00f5hjalikku kontrollimist. <noindex><a rel=\"nofollow\" href=\"http:\/\/thejh.net\/misc\/website-terminal-copy-paste\">Janna Horne'i kontrollitud veebisait<\/a><\/noindex> n\u00e4itab, kuidas esmapilgul kahjutu k\u00e4sk:<\/p>\n<pre><code class=\"plaintext\">git clone git:\/\/git.kernel.org\/pub\/scm\/utils\/kup\/kup.git<\/code><\/pre>\n<p>\nmuutub Horne'i saidilt kleebitud kust 'paha asja' terminali selliseks:<\/p>\n<pre><code class=\"plaintext\">git clone \/dev\/null;\n    clear;\n\techo -n \"Hello \";\n\twhoami|tr -d 'n';\n\techo -e '!nSee oli halb m\u00f5te. \u00c4ra kopeeri koodi saitidelt, mida sa ei usalda! \n\tSiin on sinu \/etc\/passwd esimene rida: ';\n\thead -n1 \/etc\/passwd\n\tgit clone git:\/\/git.kernel.org\/pub\/scm\/utils\/kup\/kup.git<\/code><\/pre>\n<p>\nKuidas see t\u00f6\u00f6tab? Kahjulik kood on viidud plokki <b><span><\/b>, mis on CSS-i abil kasutaja silmist eemaldatud.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/cirw.in\/blog\/bracketed-paste\">Bracketed paste re\u017eiim<\/a><\/noindex> on selgelt loodud sarnaste r\u00fcnnakute neutraliseerimiseks. Selles re\u017eiimis \u00fcmbritsevad terminalid kleepitava teksti spetsiaalsete escape-j\u00e4rjestuste paariga, et teavitada shelli selle teksti p\u00e4ritolust. Nii saab shell signaali, et see v\u00f5ib ignoreerida spetsiaalseid m\u00e4rke, mida kleepitav tekst sisaldab. K\u00f5ik terminalid, sealhulgas austatud xterm, toetavad seda funktsiooni, kuid Bracketed-re\u017eiimis kleepimine vajab shelli v\u00f5i terminalis k\u00e4ivitatud rakenduse toetust. N\u00e4iteks GNU Readline'iga (sama Bash) t\u00f6\u00f6tav tarkvara vajab faili <noindex><a rel=\"nofollow\" href=\"https:\/\/tiswww.case.edu\/php\/chet\/readline\/rltop.html\">~ \/.inputrc<\/a><\/noindex> set enable-bracketed-paste on <b>~ \/ .inputrc<\/b>:<\/p>\n<pre><code class=\"plaintext\">set enable-bracketed-paste on<\/code><\/pre>\n<p>\nKahjuks n\u00e4itab Horni testidesait ka seda, kuidas seda kaitset tekstivorminduse kaudu ringi hiilida ja Bracketed-re\u017eiimi enneaegset rakendamist l\u00f5petada. See toimib, kuna m\u00f5ned terminalid filtreerivad escape-j\u00e4rjestusi valesti enne, kui lisavad oma. N\u00e4iteks ei suutnud ma oma Konsole testide edukat l\u00f5petamist isegi p\u00e4rast \u00f5iget seadistamist. <b>.inputrc<\/b> fail. See t\u00e4hendab, et v\u00f5ite kergesti saada s\u00fcsteemi konfiguratsiooni kahjustusi, tulenevalt mitte toetatud rakendusest v\u00f5i valesti seadistatud kestast. See on eriti ohtlik kaugetele serveritele sisenemisel, kus p\u00f5hjalikku seadistamist kohatakse harvem, eriti kui teil on palju selliseid kaugeid masinaid.<\/p>\n<p>Hea lahendus sellele probleemile on terminali kleepimise kinnituse plugin <b>urxvt<\/b>, mis lihtsalt k\u00fcsib luba mistahes tekstide kleepimiseks, mis sisaldavad uusi ridu. Ma ei leidnud turvalisemat varianti Horni kirjeldatud tekstir\u00fcnnaku jaoks.<\/p>\n<h4>Vahekaardid ja profiilid<\/h4>\n<p>\nPraegu populaarne funktsioon on vahekaartide toe olemasolu, mida me defineerime kui \u00fcht terminali akent, mis sisaldab veel mitmeid terminale. See funktsioon erineb erinevates terminalides, ja kuigi traditsioonilised xterm t\u00fc\u00fcpi terminalid ei toeta vahekaarte, on selle funktsiooni olemasolevad kaasaegsed terminalid nagu Xfce Terminal, GNOME Terminal ja Konsole. Urxvt toetab samuti vahekaarte, kuid ainult plugina kasutamisel. Samuti on vahekaartide poolest absoluutne liider Terminator: see mitte ainult ei toeta vahekaarte, vaid suudab ka terminale paigutada vabalt (vt allolevat pilti).<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/5ac2cdbdd969420cd7c19597d20c8c35.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTeine Terminatori omadus on v\u00f5imalus \u201egrupida\u201d need vahekaardid kokku ja saata sama klahvivajutuse mitmele terminalile korraga, pakkudes toorest t\u00f6\u00f6riista massiliste toimingute teostamiseks mitmel serveril korraga. Sarnane funktsioon on rakendatud ka Konsole'is. Selle funktsiooni kasutamiseks teistes terminalides on vajalik kolmanda osapoole tarkvara, nagu <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> v\u00f5i <noindex><a rel=\"nofollow\" href=\"https:\/\/tmux.github.io\/\">tmux<\/a><\/noindex>.<\/p>\n<p>Erakordne on see, et kaardid t\u00f6\u00f6tavad koos profiilidega: n\u00e4iteks v\u00f5ib teil olla \u00fcks kaart e-posti jaoks, teine vestluse jaoks ja nii edasi. Seda toetavad h\u00e4sti Konsole ja GNOME Terminal. M\u00f5lemad v\u00f5imaldavad igal kaardil automaatselt k\u00e4ivitada oma profiili. Terminator toetab samuti profiile, kuid ma ei suutnud leida viisi, kuidas teatud programme automaatselt avada, kui avada konkreetne kaart. Teised terminalid ei tunne \u00fcldse \"profiili\" m\u00f5istet.<\/p>\n<h4>Volang<\/h4>\n<p>\nViimase asjana, mida ma selle artikli esimeses osas k\u00e4sitlen, on terminalide v\u00e4limus. N\u00e4iteks GNOME, Xfce ja urxvt toetavad l\u00e4bipaistvust, kuid hiljuti l\u00f5petasid nad taustapiltide toe, mis sundis m\u00f5nda kasutajat \u00fclemineku terminalile. <noindex><a rel=\"nofollow\" href=\"https:\/\/gnunn1.github.io\/tilix-web\/\">Tilix<\/a><\/noindex>. Isiklikult mulle piisab sellest lihtsalt. <b>Xresources<\/b>, mis seab urxvt jaoks p\u00f5hi taustav\u00e4rvide komplekti. Siiski v\u00f5ivad mitte-standardsed v\u00e4rviteemad tekitada probleeme. N\u00e4iteks <noindex><a rel=\"nofollow\" href=\"http:\/\/ethanschoonover.com\/solarized\">Solarized<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/altercation\/solarized\/issues\/220\">ei t\u00f6\u00f6ta<\/a><\/noindex> rakendustega <noindex><a rel=\"nofollow\" href=\"http:\/\/hisham.hm\/htop\/\">htop<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"http:\/\/iptraf.seul.org\/\">IPTraf<\/a><\/noindex>, kuna need kasutavad juba oma v\u00e4rve.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/VT100\">Originaalne VT100 terminal<\/a><\/noindex> ei toetanud v\u00e4rve, samas kui uued olid sageli piiratud 256 v\u00e4rvi paletiga. Kogenud kasutajatele, kes kohandavad oma terminale, v\u00f5ivad keerukate skriptide v\u00f5i olekuread olla ebameeldivaks piiramise allikaks. <noindex><a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/XVilka\/8346728\">Gist<\/a><\/noindex> j\u00e4lgib, millised terminalid toetavad \"True Color\"-it. Minu testid kinnitavad, et st, Alacritty ja VTE-p\u00f5hised terminalid toetavad suurep\u00e4raselt True Colorit. Teised terminalid ei toimi sellega h\u00e4sti ja ei n\u00e4ita isegi 256 v\u00e4rvi. Allpool n\u00e4ete erinevust True Colori toetuses GNOME, st ja xterm terminalide vahel, mis teevad oma 256 v\u00e4rvi paletiga head t\u00f6\u00f6d, ja urxvt, mis mitte ainult ei l\u00e4bi testi, vaid n\u00e4itab isegi vilkuvaid m\u00e4rke nende asemel.<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/bc6ceac84a1918b9bfa14a5cadd28746.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nM\u00f5ned terminalid anal\u00fc\u00fcsivad ka teksti URL-mallide osas, et muuta lingid klikatavaks. See kehtib k\u00f5igi VTE-p\u00f5histe terminalide kohta, samas kui urxvt vajab spetsiaalset pistikprogrammi, mis muudab URL-aadressid klikitavateks v\u00f5i otseteede abil. Muud testitud terminalid n\u00e4itavad URL-aadresse muude viiside kaudu.<\/p>\n<p>L\u00f5finally, uus trend terminalides on kerimispuu valikuline olemasolu. N\u00e4iteks st ei sisalda kerimispuhvrit; eeldatakse, et kasutaja kasutab terminali multiplexerit nagu tmux ja <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gnu.org\/software\/screen\/\">GNU Screen<\/a><\/noindex>.<\/p>\n<p>Alacritty's puuduvad ka tagasikerimispuhvrid, kuid <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/124\">see lisatakse peagi<\/a><\/noindex> tema tugi t\u00f5ttu \"ulatuslikule tagasisidele\" selle teemaga seoses kasutajatelt. Peale nende erandite toetab iga terminal, mida olen suutnud leida, tagasikerimist.<\/p>\n<h4>Vahekokkuv\u00f5te<\/h4>\n<p>\nTeise osa materjalist (<i>alguses olid need kaks erinevat artiklit \u2014 toimetaja m\u00e4rkus<\/i>) v\u00f5rdleme j\u00f5udlust, m\u00e4lukasutust ja viivitust. Kuid me n\u00e4eme juba, et m\u00f5ned arutletud terminalid omavad t\u00f5siseid puudusi. N\u00e4iteks v\u00f5ivad kasutajad, kes regulaarselt t\u00f6\u00f6tavad RTL-skriptidega, p\u00f6\u00f6rata t\u00e4helepanu mltermile ja ptermile, kuna need teevad sarnaste \u00fclesannete t\u00e4itmisel paremat t\u00f6\u00f6d. Konsole on samuti h\u00e4sti esinenud. RTL-skriptidega mitte tegelevad kasutajad v\u00f5ivad valida midagi muud.<\/p>\n<p>Kaitstuse osas kuritegevuse kodeerimise vastu eristub urxvt oma erilise kaitse realiseerimise t\u00f5ttu, mis tundub mulle kindlasti mugav. Neile, kes otsivad mingit s\u00e4ra, tasub vaadata Konsole\u2019i. L\u00f5puks peab m\u00e4rkima, et VTE on suurep\u00e4rane baas terminalide jaoks, mis garanteerib v\u00e4rvide toe, URL-ide tuvastamise jpm. Esmapilgul v\u00f5ib teie lemmikkeskkonna vaike-terminal vastata k\u00f5igile n\u00f5udmistele, kuid j\u00e4tame selle k\u00fcsimuse avatuks seni, kuni oleme j\u00f5udluse kohta rohkem teada saanud.<\/p>\n<p><i><\/p>\n<h4>J\u00e4tkame juttu<\/h4>\n<p><\/i><br \/>\n\u00dcldiselt v\u00f5ib terminalide j\u00f5udlus iseenesest tunduda liialdatud probleemina, kuid \u00fcllataval kombel n\u00e4itavad m\u00f5ned neist \u00fcllatavalt suurt viivitust sellise fundamentaalse tarkvara jaoks. Samuti vaatame l\u00e4hemalt seda, mida traditsiooniliselt nimetatakse \u201ekiirusel\u201c (t\u00f5epoolest, see on kerimise kiirus) ja terminalide m\u00e4lukasutust (vaadates, et see ei ole t\u00e4na nii kriitiline kui dekadeid tagasi).<\/p>\n<h4>Viivitus<\/h4>\n<p>\nP\u00e4rast terminalide j\u00f5udluse p\u00f5hjalikku uurimist olen j\u00f5udnud j\u00e4reldusele, et sellel alal on k\u00f5ige olulisem parameeter viivituse suurus (ping). Ometi on oma artiklis <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typing-with-pleasure\/\">\u201eKirjutame r\u00f5\u00f5muga\u201c<\/a><\/noindex> Pavel Fatin vaatas erinevate tekstiredaktorite viivitusi ja vihjas, et terminalid v\u00f5ivad selles osas t\u00f6\u00f6tada aeglasemalt kui k\u00f5ige kiiremad tekstiredaktorid. Just see vihje viis mind l\u00f5puks oma testide k\u00e4ivitamise ja selle artikli kirjutamiseni.<\/p>\n<p>Aga mis on viivitus ja miks see on nii oluline? Oma artiklis m\u00e4\u00e4ratles Fatin selle kui \u201eviivituse klahvi vajutamise ja vastava ekraani uuendamise vahel\u201c ja tsiteeris <noindex><a rel=\"nofollow\" href=\"https:\/\/books.google.com\/books\/about\/Handbook_of_Human_Computer_Interaction.html?id=WuQbERgXR10C&amp;redir_esc=y\">\u201eInimese ja arvuti interaktsiooni juhend\u201c<\/a><\/noindex>, kus \u00f6eldakse: \u201eViivitus visuaalses tagasisides arvuti ekraanil m\u00f5jutab olulisel m\u00e4\u00e4ral kirjutaja k\u00e4itumist ja tema rahulolu\u201c.<\/p>\n<p>Fatin selgitab, et sellisel pingel on s\u00fcgavamad tagaj\u00e4rjed kui lihtsalt rahulolu: \u201ekirjutamine muutub aeglasemaks, vigu tekib rohkem, silmade ja lihaste pinget suureneb\u201c. Teisis\u00f5nu, suurem viivitus v\u00f5ib viia tr\u00fckivigadeni ja ka koodi kvaliteedi languseni, kuna see tekitab ajus t\u00e4iendavat kognitiivset koormust. Kuid mis veel hullem, pinget \u201esuureneb silmade ja lihaste pinge\u201c, mis n\u00e4ib viitavat <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Repetitive_strain_injury\">ametialastele vigastustele<\/a><\/noindex> tulevikus (<i>ilmselt peab autor silmas silmade, selja, k\u00e4te ja loomulikult n\u00e4gemisega seotud probleeme, \u2014 toimetaja m\u00e4rk.<\/i>) korduva pingete t\u00f5ttu.<\/p>\n<p>M\u00f5ned neist m\u00f5judest on teada juba pikka aega ja tulemused <noindex><a rel=\"nofollow\" href=\"https:\/\/doi.org\/10.1080\/00140137608931531\">uuringud<\/a><\/noindex>, mis avaldati juba 1976. aastal ajakirjas Ergonomics, n\u00e4itavad, et 100 millisekundi viivitus \u201ehalvendab oluliselt sisestamise kiirus\u201c. <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.gnome.org\/hig-book\/3.12\/feedback-response-times.html.en\">Hiljuti lisati GNOME'i kasutajajuhendisse<\/a><\/noindex> vastuv\u00f5etav reageerimisaeg <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=vOvQCPLkPt4\">10 millisekundit, ja kui minna kaugemale, siis<\/a><\/noindex> Microsoft Research<\/p>\n<p>n\u00e4itab, et ideaalne on 1 millisekund. <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typometer\">Fatin tegi oma testid tekstiredaktorites; ta l\u00f5i portatiivse t\u00f6\u00f6riista nimega<\/a><\/noindex>, mida kasutasin terminali emulatorite pingide kontrollimiseks. Pidage meeles, et test viidi l\u00e4bi simuleerimisre\u017eiimis: reaalsuses tuleb arvesse v\u00f5tta ka sisendi (klaviatuur, USB-kontroller jne) ja v\u00e4ljundi (videokaardi puhvers\u00e4lu, monitor) viivitust. Fatini s\u00f5nul on t\u00fc\u00fcpilistes konfiguratsioonides see umbes 20 ms. Gamerite varustuse olemasolul v\u00f5ib saavutada vaid 3 millisekundi n\u00e4itaja. Kuna meil on juba selline kiire varustus, ei tohiks rakendus oma viivitust lisada. Fatini eesm\u00e4rk on viia rakenduse viivitus 1 millisekundini v\u00f5i t\u00e4ielikult viivitusteta komplekti saavutamisele. <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jetbrains.com\/idea\/2015\/08\/experimental-zero-latency-typing-in-intellij-idea-15-eap\/\">m\u00f5\u00f5detava viivitusega<\/a><\/noindex>, nagu <noindex><a rel=\"nofollow\" href=\"https:\/\/confluence.jetbrains.com\/display\/IDEADEV\/IDEA+15+EAP\">IntelliJ IDEA 15<\/a><\/noindex>.<\/p>\n<p>Siin on minu m\u00f5\u00f5tmiste tulemused, samuti m\u00f5ned Fatini tulemused, et n\u00e4idata, et minu eksperiment on koosk\u00f5las tema testidega:<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/d7ae46c8309e9cfd517164d5fed093f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEsimene asi, mis mind \u00fcllatas, oli vanade programmide, nagu xterm ja mlterm, parem reageerimisaeg. Halvema registra viivitusega (2,4 ms) n\u00e4itasid nad paremat tulemust kui k\u00f5ige kiirem kaasaegne terminal (10,6 ms st jaoks). \u00dckski kaasaegne terminal ei ulatu alla 10 millisekundi piiri. Eelk\u00f5ige ei vasta Alacritty n\u00f5uetele \u201ek\u00f5ige kiiremal olemasoleval terminali emulatoril\u201c, ehkki selle tulemused on alates esimesest kontrollist 2017. aastal paranenud. T\u00f5epoolest, projekti autorid <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/673\">on teadlikud olukorrast<\/a><\/noindex> ja t\u00f6\u00f6tavad kuvamise parandamise nimel. Oluline on m\u00e4rkida, et Vim, mis kasutab GTK3, on oma GTK2 analoogist m\u00e4rgatavalt aeglasem. Sellest v\u00f5ib j\u00e4reldada, et GTK3 tekitab t\u00e4iendavat viivitust, ja see kajastub k\u00f5igis teistes terminalides, mis seda kasutavad (Terminator, Xfce4 Terminal ja GNOME Terminal).<\/p>\n<p>Kuid silmale v\u00f5ivad erinevused j\u00e4\u00e4da m\u00e4rkamatuks. Nagu selgitab Fatin: \u201eei ole tingimata vajalik viivitust teadvustada, et sellel oleks teile m\u00f5ju\u201c. Fatin hoiatab ka standardh\u00e4lbe eest: \u201ek\u00f5ik viivituse pikkuse (v\u00f5nkumine) h\u00e4ired lisavad t\u00e4iendavat koormust nende ettearvamatuse t\u00f5ttu\u201c.<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/e128a7e6c32a1517c98ffc612fe09128.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00dclaltoodud graafik on saadud puhtal Debian 9 (stretch) koos <noindex><a rel=\"nofollow\" href=\"https:\/\/i3wm.org\/\">i3 aknahalduriga<\/a><\/noindex>. See keskkond annab parimaid tulemusi viivituskatsete korral. Selgus, et GNOME tekitab k\u00f5igi m\u00f5\u00f5tmiste jaoks 20 ms lisaviivituse. \u00dcks v\u00f5imalik seletus on see, et t\u00f6\u00f6tavad programmid, mis t\u00f6\u00f6tlevad sisend\u00fcritusi s\u00fcnkroonselt. Fatin toob sellise juhtumi jaoks v\u00e4lja <noindex><a rel=\"nofollow\" href=\"http:\/\/www.workrave.org\/\">Workrave<\/a><\/noindex>, mille t\u00f5ttu tekib viivitus, sest k\u00f5ik sisend\u00fcritused t\u00f6\u00f6deldakse s\u00fcnkroonselt. Vaikimisi on GNOME varustatud ka aknahalduriga <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mutter_(software)\">Mutter<\/a><\/noindex>, mis loob lisataseme puhvrisse, mis m\u00f5jutab viivitust ning lisab v\u00e4hemalt 8 millisekundi viivituse.<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/3585d1edf4cee214d7a53858943b1845.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Kerimiskiirus<\/h4>\n<p>\nJ\u00e4rgmine katse on traditsiooniline \"kiirus\" v\u00f5i \"l\u00e4bivoolu\" kontroll, mis m\u00f5\u00f5dab, kui kiiresti terminal suudab lehte kerida, kuvades suurt hulka teksti ekraanil. Katse mehhanika varieerub; algne test seisnes lihtsalt sama teksti rea genereerimises seq k\u00e4suga. Muud testid h\u00f5lmavad Thomas E. Dicki testi (xterm'i kaaslane), millega korduvalt <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/xterm.faq.html#scroll_speed\">v\u00e4ljastatakse fail terminfo.src<\/a><\/noindex>. Veel \u00fches terminallide j\u00f5udlus\u00fclevaates <noindex><a rel=\"nofollow\" href=\"https:\/\/danluu.com\/term-latency\/\">Den Luu<\/a><\/noindex> kasutab juhuslike baitide rida base32 kodeeringus, mis edastatakse terminalile cat abil. Luu peab sellist testi \"nii kasutu standardiks, kui seda ette kujutada saab\" ja soovitab kasutada terminali vastust peamise n\u00e4itajana. Dick nimetab ka oma testi eksitavaks. Sellegipoolest tunnustavad m\u00f5lemad autorid, et terminali akna l\u00e4bilaskvus v\u00f5ib olla probleem. Luu leidis, et Emacs Eshell hangub suurte failide kuvamisel, ja Dick optimeeris terminali, et vabaneda xterm'i visuaalsest aeglusest. Seet\u00f5ttu on selles testis endiselt m\u00f5ningane m\u00f5te, kuid kuna renderdusprotsess erineb terminalist terminali, saab seda kasutada ka testikomponendina teiste parameetrite kontrollimiseks.<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/3231877fdcd7725c3248fb393185ece4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSiin n\u00e4eme, et rxvt ja st t\u00f5ukavad konkurentidest ette, seej\u00e4rel tuleb palju uuem Alacritty, mis on v\u00e4lja t\u00f6\u00f6tatud j\u00f5udlusele keskendudes. J\u00e4rgnevateks on Xfce (VTE perekond) ja Konsole, mis t\u00f6\u00f6tavad peaaegu kaks korda kiiremini. Viimasena on xterm, mille tulemus on viis korda aeglasem kui rxvt. Testi k\u00e4igus k\u00f5ikus xterm ka tugevalt, liikuv tekst oli raske lugeda, isegi kui see oli sama rida. Konsole osutus kiireks, kuid m\u00f5nikord \u201etrikitas\u201c: ekraan seisis aeg-ajalt, n\u00e4idates teksti osaliselt v\u00f5i mitte n\u00e4idates seda \u00fcldse. Teised terminalid, sealhulgas st, Alacritty ja rxvt, esitasid read selgelt.<\/p>\n<p>Diki selgitab, et j\u00f5udluse erinevused on seotud erinevate terminalide kerimisbufferite disainiga. Eelk\u00f5ige s\u00fc\u00fcdistab ta rxvt-d ja teisi terminale selles, et nad \u201eei j\u00e4rgi \u00fcldisi reegleid\u201c:<\/p>\n<blockquote><p>\u201eErinevalt xtermist ei p\u00fc\u00fcdnud rxvt kuvada k\u00f5iki uuendusi. Kui ta j\u00e4i maha, loobus ta m\u00f5nest uuendusest, et j\u00e4rele j\u00f5uda. See m\u00f5jutas rohkem n\u00e4ilist kerimiskiirus, kui sisemiste m\u00e4lude korraldamine. \u00dche miinusena oli ASCII animatsioon veidi ebat\u00e4pne.\u201c<\/p><\/blockquote>\n<p>\nSelle n\u00e4iliselt aeglase xterm'i parandamiseks soovitab Diki kasutada ressurssi <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/manpage\/xterm.html#VT100-Widget-Resources:fastScroll\">fastScroll<\/a><\/noindex>, mis v\u00f5imaldab xterm'il ekraani m\u00f5ned uuendused k\u00f5rvaldada, et mitte j\u00e4\u00e4da voost maha. Minu testid kinnitavad, et fastScroll parandab j\u00f5udlust ja viib xterm'i rxvt tasemele. Kuid see on \u00fcsna kark, nagu Diki ise selgitab: \u201em\u00f5nikord xterm - nagu ka konsole - n\u00e4ib seisvat, kuna ta ootab uut ekraaniuuenduste komplekti p\u00e4rast seda, kui m\u00f5ned neist on eemaldatud\u201c. Sellega seoses tundub, et teised terminalid on leidnud parima kompromissi kiirus ja ekraani terviklikkuse vahel.<\/p>\n<h4>Ressursitarbimine<\/h4>\n<p>\nOlenemata selle praktikalisusest, kas k\u00e4imise kiirus on j\u00f5udlusn\u00e4itaja, v\u00f5imaldab see test simuleerida koormust terminalides, mis omakorda v\u00f5imaldab meil m\u00f5\u00f5ta teisi parameetreid, nagu m\u00e4lu- v\u00f5i ketta kasutamine. m\u00f5\u00f5dikud saadi antud testi k\u00e4ivitamisega <b>seq<\/b> Python protsessi j\u00e4lgimise all. See kogus loendurite andmeid <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man2\/getrusage.2.html\">getrusage ()<\/a><\/noindex> jaoks <b>ru_maxrss<\/b>, summa <b>ru_oublock<\/b> ja <b>ru_inblock<\/b> ja lihtne ajataimer.<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/df378c145a559ed4aad98fa70b58c72c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelles testis saavutab ST esikoha, tarbides keskmiselt vaid 8 MB m\u00e4lu, mis pole \u00fcllatav, arvestades, et projekti p\u00f5hidee on lihtsus. Veidi rohkem vajavad mlterm, xterm ja rxvt \u2014 umbes 12 MB. M\u00e4rkimisv\u00e4\u00e4rne tulemus on ka Alacritty, mille t\u00f6\u00f6ks on vaja 30 MB. J\u00e4rgmistena on VTE perekonna terminalid, mille n\u00e4itajad ulatuvad 40-60 MB-ni, mis on \u00fcsna palju. Sellist tarbimist saab seletada sellega, et need terminalid kasutavad k\u00f5rgema taseme teeke, nagu GTK. Konsole on viimane, tarbides testide ajal hiiglaslikku 65 MB m\u00e4lu, kuigi seda saab \u00f5igustada selle \u00fcsna ulatusliku funktsioonide kogumiga.<\/p>\n<p>V\u00f5rreldes k\u00fcmne aasta taguste tulemustega on k\u00f5ik programmid hakkanud tarbima m\u00e4rgatavalt rohkem m\u00e4lu. Varem n\u00f5udis Xterm 4 MB, n\u00fc\u00fcd aga 15 MB lihtsalt k\u00e4ivitamiseks. Sarnane tarbimise t\u00f5us on ka rxvt-l, mis n\u00f5uab n\u00fc\u00fcd kastist v\u00e4lja tulles 16 MB. Xfce terminal kulutab 34 MB, mis on kolm korda rohkem kui varem, samas GNOME Terminal n\u00f5uab vaid 20 MB. Muidugi viidi k\u00f5ik eelnevad testid l\u00e4bi 32-bitise arhitektuuri peal. LCA 2012 Rasti Russell <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/477155\/\">r\u00e4\u00e4kis<\/a><\/noindex>, on palju peenemaid p\u00f5hjuseid, mis v\u00f5ivad selgitada m\u00e4lu tarbimise kasvu. Sellegipoolest elame n\u00fc\u00fcd ajal, mil meil on terveid gigabaite m\u00e4lu, nii et me saame sellega hakkama.<\/p>\n<p>K\u00fcll aga ei saa ma rahuldust, et sellise fundamentaalse tarkvara nagu terminal jaoks suurema m\u00e4lu eraldamine on ressursside raiskamine. Need programmid peaksid olema v\u00e4iksemad kui k\u00f5ige v\u00e4iksemad, olema v\u00f5imelised t\u00f6\u00f6tama igasugustes \"karpidest\", isegi kingakarbid, kui peaksime kunagi j\u00f5udma selleni, et neid tuleb varustada Linuxi s\u00fcsteemidega (ja teate, et see nii ka on). Selliste numbritega muutub m\u00e4lu kasutamine tulevikus probleemiks igas keskkonnas mitme terminali k\u00e4ivitamisel, v\u00e4lja arvatud olukordades, kus on mitu k\u00f5ige kergemat ja piiratud v\u00f5imalustega. Selle kompenseerimiseks on GNOME Terminalil, Konsole'il, urxvt-l, Terminatoril ja Xfce Terminalil Deemon-re\u017eiim, mis v\u00f5imaldab hallata mitmeid terminale \u00fche protsessi kaudu, piirates nende m\u00e4lu tarbimist.<\/p>\n<p><img decoding=\"async\" alt=\"Terminalide emulaatorite \u00fclevaade\" src=\"\/wp-content\/uploads\/2019\/08\/65ade9cc81284f24f0c44322eec73ef0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTestide k\u00e4igus j\u00f5udsin ma veel \u00fche ootamatu tulemuse juurde seoses ketta lugemise ja kirjutamisega: ootasin, et siin ei n\u00e4e ma \u00fcldse midagi, kuid selgus, et m\u00f5ned terminalid kirjutavad k\u00f5ige mahukamaid andmeid kettale. Nii hoiab VTE teek tegelikult kettal kerimispuud; see omadus <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=631685\">oli m\u00e4rgatud juba 2010. aastal<\/a><\/noindex>, ja see toimub siiani). Kuid erinevalt vanadest teostustest on n\u00fc\u00fcd, v\u00e4hemalt, need andmed AES256 GCM abil kr\u00fcpteeritud (<noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=664611#c48\">versioonist 0.39.2<\/a><\/noindex>). Kuid tekib p\u00f5hjendatud k\u00fcsimus, mis on siis niiv\u00f5rd erilist biblioteegis VTE, et see n\u00f5uab sellist ebastandardset l\u00e4henemist\u2026<\/p>\n<h4>Kokkuv\u00f5te<\/h4>\n<p>\nArtikli esimeses osas avastasime, et VTE-baasil terminalidel on hea funktsioonide kogum, kuid n\u00fc\u00fcd n\u00e4eme, et see on seotud m\u00f5ningate kuludega nende soorituse tagamiseks. Praegu ei ole m\u00e4lu probleemiks, kuna k\u00f5iki VTE-terminalide saab hallata Daemon-protsessi kaudu, mis piirab nende isu. Siiski v\u00f5ivad vanad s\u00fcsteemid, millel on f\u00fc\u00fcsilised piirangud operatiivm\u00e4lu ja tuuma vahem\u00e4lu kogusele, endiselt vajada varasemaid terminalide versioone, kuna need tarbivad oluliselt v\u00e4hem ressursse. Kuigi VTE-terminalid on osutunud h\u00e4sti l\u00e4bilaskev\u00f5imetest (kerimine) testides, on nende andmete kuvamise viivitus ekraanil k\u00f5rgem kui GNOME-i kasutusjuhendi kehtestatud l\u00e4vi. T\u00f5en\u00e4oliselt peaksid VTE arendajad seda arvesse v\u00f5tma. Arvestades, et isegi algajatele Linuxi kasutajatele on terminaliga kohtumine v\u00e4ltimatu, v\u00f5iksid nad muuta selle kasutajas\u00f5bralikumaks. Kogenud geekide jaoks v\u00f5ib vaikimisi terminalilt \u00fcleminek t\u00e4hendada isegi koormuse v\u00e4henemist silmadele ja v\u00f5imalust v\u00e4ltida tulevasi ametikahjustusi ja -haigusi pikaajaliste t\u00f6\u00f6seansside t\u00f5ttu. Kahjuks toovad meid vaid vanad xterm ja mlterm maagilise 10 millisekundi pingi l\u00e4vepunkti, mis on paljudele vastuv\u00f5etamatu.<\/p>\n<p>Kontrollm\u00f5\u00f5tmised n\u00e4itasid ka, et Linuxi graafiliste keskkondade arengu t\u00f5ttu pidid arendajad tegema mitu kompromissi. M\u00f5ned kasutajad peaksid vaatama tavap\u00e4raseid aknahaldureid, kuna need pakuvad m\u00e4rkimisv\u00e4\u00e4rset pingelangust. Kahjuks ei \u00f5nnestunud Waylandi viivitust m\u00f5\u00f5ta: Typometeri programm, mida kasutasin, oli loodud selleks, et Wayland peaks takistama \u2014 teiste akende nuhkimist. Lootan, et Waylandi kompositsioon on j\u00f5udluselt parem kui X.org, ja loodan ka, et tulevikus leiab keegi viisi selle keskkonna viivituse taseme hindamiseks.<br \/>\n<br \/>Allikas: <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.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0430\u0440\u0430 \u0441\u043b\u043e\u0432 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e translate-\u0431\u044e\u0440\u043e: \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u0441\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0441\u0432\u0435\u0436\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438 \u043c\u044b \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u041d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-emulyatorov-terminala\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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\udd47Terminali emulaatorite \u00fclevaade | ProHoster","description":"M\u00f5ned s\u00f5nad meie t\u00f5lkeb\u00fcroolt: tavaliselt p\u00fc\u00fctakse t\u00f5lkida k\u00f5ige v\u00e4rskemaid materjale ja publikatsioone, ning me ei ole erand. Aga terminalid ei ole midagi, mis uuendatakse kord n\u00e4dalas.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-emulyatorov-terminala","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/37222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=37222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/27911"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=37222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=37222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=37222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}