{"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\/lv\/blog\/administrirovanie\/obzor-emulyatorov-terminala","title":{"rendered":"Termin\u0101\u013cu emulatoru apskats","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>V\u0101rds no m\u016bsu tulko\u0161anas biroja: parasti visi cen\u0161as tulkot jaun\u0101kos materi\u0101lus un publik\u0101cijas, un m\u0113s neesam iz\u0146\u0113mums. Ta\u010du termin\u0101\u013ci nav tie, kas tiek atjaunin\u0101ti katru ned\u0113\u013cu. T\u0101p\u0113c m\u0113s esam tulkoju\u0161i jums Anton\u012bna Bopre rakstu, kas public\u0113ts 2018. gada pavasar\u012b: neskatoties uz to, ka tam ir iev\u0113rojams 'vecums' m\u016bsdienu izpratn\u0113, m\u016bsupr\u0101t, materi\u0101ls nav zaud\u0113jis savu aktualit\u0101ti. Turkl\u0101t ori\u0123in\u0101li tas ir divu rakstu s\u0113rija, ta\u010du m\u0113s nol\u0113m\u0101m apvienot tos vien\u0101 liel\u0101 ierakst\u0101.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/23b2893d4d23ee402f42f8d686fec788.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTermin\u0101\u013ci ie\u0146em \u012bpa\u0161u vietu datoru v\u0113stur\u0113, ta\u010du p\u0113d\u0113jo desmitga\u017eu laik\u0101 tie ir biju\u0161i \u2018spiesti\u2019 izdz\u012bvot kop\u0101 ar komandrindas saskarn\u0113m, kam\u0113r visur izplat\u012bj\u0101s grafisk\u0101s saskarnes. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Terminal_emulator\">Termin\u0101\u013cu emulatori<\/a><\/noindex> aizvietoja savus <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Computer_terminal\">apar\u0101tiskos kol\u0113\u0123us<\/a><\/noindex>, kuri, savuk\u0101rt, bija modific\u0113tas sist\u0113mas, kas balst\u012bj\u0101s uz perfor\u0113t\u0101m kart\u0113m un sl\u0113d\u017eiem. M\u016bsdienu distrib\u016bcijas tiek pieg\u0101d\u0101tas ar daudzveid\u012bgiem termin\u0101\u013cu emulatoriem vis\u0101s form\u0101s un kr\u0101s\u0101s. Un, kam\u0113r daudzi mier\u012bgi apmierin\u0101s ar standarta termin\u0101li, ko pied\u0101v\u0101 vi\u0146u darba vide, citi ar lepnumu izmanto ac\u012bmredzami eksotisko programmat\u016bru, lai palaistu savu iecien\u012bto apvalku vai teksta redaktoru. Ta\u010du, k\u0101 m\u0113s redz\u0113sim \u0161aj\u0101 rakst\u0101, ne visi termin\u0101\u013ci ir rad\u012bti p\u0113c viena un t\u0101 pa\u0161a parauga: to funkcionalit\u0101te, izm\u0113rs un ra\u017e\u012bgums iev\u0113rojami at\u0161\u0137iras.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Da\u017ei termin\u0101\u013ci ir ar tie\u0161\u0101m p\u0101rsteidzo\u0161\u0101m dro\u0161\u012bbas nepiln\u012bb\u0101m, plus vairums no tiem pied\u0101v\u0101 piln\u012bgi at\u0161\u0137ir\u012bgu funkciju kopumu - no cil\u0146u saskarnes atbalsta l\u012bdz skriptiem. Lai gan m\u0113s <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/88161\/\">apskat\u012bj\u0101m termin\u0101\u013cu emulatorus t\u0101laj\u0101 pag\u0101tn\u0113<\/a><\/noindex>, \u0161is raksts ir iepriek\u0161\u0113j\u0101 materi\u0101la atjaunin\u0101jums, kas pal\u012bdz\u0113s las\u012bt\u0101jiem noteikt, kuru termin\u0101li izmantot 2018. gad\u0101. Raksta pirmaj\u0101 pus\u0113 tiek sal\u012bdzin\u0101tas funkcijas, bet otraj\u0101 - nov\u0113rt\u0113ta veiktsp\u0113ja.<\/p>\n<p>\u0160eit ir termin\u0101\u013ci, kurus es apskat\u012bju:<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/be76032ca4392c23dd0c111a36b199ef.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIesp\u0113jams, \u0161\u012bs nav vissvaig\u0101k\u0101s versijas, jo es ierobe\u017eojos pie stabilajiem izlaidumiem br\u012bd\u012b, kad rakst\u012bju materi\u0101lu, kurus man izdev\u0101s uzinstal\u0113t Debian 9 vai Fedora 27. Vien\u012bgais iz\u0146\u0113mums ir Alacritty. Tas ir GPU pa\u0101trin\u0101tu termin\u0101lu p\u0113cte\u010ds un ir uzrakst\u012bts neparast\u0101 un jaun\u0101 \u0161im uzdevumam valod\u0101 \u2014 Rust. Es izsl\u0113dzu no savas apskata t\u012bmek\u013ca termin\u0101lus (ieskaitot, un uz <noindex><a rel=\"nofollow\" href=\"https:\/\/electronjs.org\/\">Electron<\/a><\/noindex>), jo iepriek\u0161\u0113jie testi par\u0101d\u012bja to \u0101rk\u0101rt\u012bgi zemo veiktsp\u0113ju.<\/p>\n<h4>Atbalsts Unicode<\/h4>\n<p>\nSavus testus es s\u0101ku ar Unicode atbalstu. Pirmais termin\u0101lu tests bija att\u0113lot Unicode virkni no <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Unicode#Web\">raksta Vikip\u0113dij\u0101<\/a><\/noindex>: \u00ab\u00e9, \u0394, \u0419, \u05e7, \u0645, \u0e57, \u3042, \u53f6, \u8449 un \ub9d0\u00bb. \u0160is vienk\u0101r\u0161ais tests par\u0101da, vai termin\u0101ls var pareizi darboties vis\u0101 pasaul\u0113. Termin\u0101ls xterm ner\u0101da ar\u0101bu simbolu <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mem\">Mem<\/a><\/noindex> p\u0113c noklus\u0113juma iestat\u012bjumiem:<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/92e1b9f6e7f3129a55d09cd48310c699.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNoklus\u0113juma xterm izmanto klasisko \u00abfiks\u0113to\u00bb fontu, kura, saska\u0146\u0101 ar <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Open-source_Unicode_typefaces\">to pa\u0161u Vikip\u0113diju<\/a><\/noindex>, ir \u00abb\u016btisks Unicode p\u0101rkl\u0101jums kop\u0161 1997. gada\u00bb. \u0160aj\u0101 font\u0101 notiek kaut kas, kas liek simbolam tikt att\u0113lotam k\u0101 tuk\u0161a kaste, un tikai palielinot teksta fontu l\u012bdz 20+ punktiem simbols beidzot s\u0101k pareizi att\u0113loties. Tom\u0113r \u0161\u0101ds \u00abfix\u00bb izjauc citu Unicode simbolu att\u0113lo\u0161anu:<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/4300f72d87bb9b729d4c682e876b4998.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0160ie ekr\u0101nuz\u0146\u0113mumi tika veikti Fedora 27, jo tie\u0161i t\u0101 sniedza lab\u0101kos rezult\u0101tus nek\u0101 Debian 9, kur da\u017eas vec\u0101kas termin\u0101lu versijas (proti \u2014 mlterm) nesp\u0113ja pareizi darboties ar fontiem. Par laimi, tas tika labots jaun\u0101kaj\u0101s versij\u0101s.<\/p>\n<p>Tagad piev\u0113rsiet uzman\u012bbu virknes att\u0113lojumam xterm. Izr\u0101d\u0101s, simbols Mem un tam sekojo\u0161ais semitiskais <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Qoph\">Qoph<\/a><\/noindex> attiec\u0101s uz RTL (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Right-to-left\">no lab\u0101s uz kreiso<\/a><\/noindex>), t\u0101p\u0113c tehniski tiem vajadz\u0113tu tikt att\u0113lotiem no lab\u0101s uz kreiso. T\u012bmek\u013ca p\u0101rl\u016bkprogrammas, piem\u0113ram, Firefox 57, pareizi apstr\u0101d\u0101 iepriek\u0161 min\u0113to virkni. Vienk\u0101r\u0161\u0101ks RTL teksta variants ir v\u0101rds \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Sarah\">S\u0101ra<\/a><\/noindex>\u00bb ivrit\u0101 (<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\">Vikip\u0113dijas lapa par divvirzienu tekstiem<\/a><\/noindex> teic sekojo\u0161o:<\/p>\n<blockquote><p>\u00abDaudzas datorprogrammas nesp\u0113j pareizi att\u0113lot divvirzienu tekstu. Piem\u0113ram, ebreju v\u0101rds \u00abS\u0101ra\u00bb sast\u0101v no simboliem sin (\u05e9) (kas par\u0101d\u0101s no lab\u0101s puses), tad re\u0161 (\u05e8) un, visbeidzot, he (\u05d4) (kas b\u016btu j\u0101par\u0101d\u0101s no kreis\u0101s puses)\u00bb.<\/p><\/blockquote>\n<p>\nDaudzi termin\u0101\u013ci neiztur \u0161o testu: Alacritty, Gnome un XFCE atvasin\u0101tie VTE termin\u0101\u013ci, urxvt, st un xterm att\u0113lo \"Saru\" pret\u0113j\u0101 sec\u012bb\u0101, it k\u0101 m\u0113s \u0161o v\u0101rdu b\u016btu pierakst\u012bju\u0161i k\u0101 \"Aras\".<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/9decee6d198bd9d3e4f4883a8f2b0da6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u0113l viena probl\u0113ma ar divvirzienu tekstiem ir t\u0101, ka tie j\u0101izl\u012bdzina, \u012bpa\u0161i, ja runa ir par RTL un LTR tekstu sajauk\u0161anu. RTL scen\u0101rijiem j\u0101uzs\u0101k darbs no termin\u0101la loga lab\u0101s puses, bet kas notiek ar termin\u0101\u013ciem, kas noklus\u0113jum\u0101 str\u0101d\u0101 ar LTR ang\u013cu valodu? Liel\u0101k\u0101 da\u013ca no tiem nepiem\u012bt nek\u0101diem \u012bpa\u0161iem meh\u0101nismiem un izl\u012bdzina visu tekstu pa kreisi (taj\u0101 skait\u0101 ar\u012b Konsole). Iz\u0146\u0113mums ir pterm un mlterm, kas iev\u0113ro standartus un t\u0101das rindas izl\u012bdzina pa labi.<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/a32675d44e7cadce6d197d6eb5c8d9e2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Ievades aizsardz\u012bba<\/h4>\n<p>\nN\u0101kam\u0101 kritisk\u0101 funkcija, ko es sev defin\u0113ju, ir ievades aizsardz\u012bba. Lai gan ir pla\u0161i zin\u0101ms, ka \u0161\u0101di r\u012bkojumi:<\/p>\n<pre><code class=\"plaintext\">$ curl http:\/\/example.com\/ | sh<\/code><\/pre>\n<p>\nir koda izpildes virz\u012bt\u0101jkomandas, maz kas zina, ka sl\u0113ptie komandas var iek\u013c\u016bt konsol\u0113, kop\u0113jot un iel\u012bm\u0113jot no t\u012bmek\u013ca p\u0101rl\u016bka, pat p\u0113c r\u016bp\u012bgas p\u0101rbaudes. <noindex><a rel=\"nofollow\" href=\"http:\/\/thejh.net\/misc\/website-terminal-copy-paste\">D\u017eana Horna p\u0101rbaudes vietne<\/a><\/noindex> izcili par\u0101da, k\u0101 izskat\u0101s nevain\u012bga komanda:<\/p>\n<pre><code class=\"plaintext\">git clone git:\/\/git.kernel.org\/pub\/scm\/utils\/kup\/kup.git<\/code><\/pre>\n<p>\nievietojot to no Horna vietnes termin\u0101l\u012b, p\u0101rv\u0113r\u0161as \u0161\u0101d\u0101 nepatik\u0161an\u0101:<\/p>\n<pre><code class=\"plaintext\">git clone \/dev\/null;\n    clear;\n\techo -n \"Sveiks \";\n\twhoami|tr -d 'n';\n\techo -e '!nTas bija slikta ideja. Ne\u0146emiet kodu no vietn\u0113m, kam neuzticaties! \n\t\u0160eit ir j\u016bsu pirm\u0101 rinda no j\u016bsu \/etc\/passwd: ';\n\thead -n1 \/etc\/passwd\n\tgit clone git:\/\/git.kernel.org\/pub\/scm\/utils\/kup\/kup.git<\/code><\/pre>\n<p>\nK\u0101 tas darbojas? V\u012brusu kods ir izvirz\u012bts blok\u0101 <b><span><\/b>, kas ar CSS l\u012bdzek\u013ciem ir p\u0101rvietots no lietot\u0101ja redzesloka.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/cirw.in\/blog\/bracketed-paste\">Bracketed paste re\u017e\u012bms<\/a><\/noindex> ir \u012bpa\u0161i paredz\u0113ts, lai neitraliz\u0113tu \u0161\u0101dus uzbrukumus. \u0160aj\u0101 re\u017e\u012bm\u0101 termin\u0101\u013ci iek\u013cauj ievietoto tekstu p\u0101ris \u012bpa\u0161\u0101s escape sec\u012bb\u0101s, lai inform\u0113tu apvalku par \u0161\u012b teksta izcelsmi. T\u0101d\u0113j\u0101di apvalks sa\u0146em sign\u0101lu, ka var ignor\u0113t speci\u0101los simbolus, kurus var satur\u0113t ievietotais teksts. Visi termin\u0101\u013ci, s\u0101kot no cien\u012bjam\u0101 xterm, atbalsta \u0161o funkciju, ta\u010du iel\u012bm\u0113\u0161ana Bracketed re\u017e\u012bm\u0101 prasa atbalstu no apvalka vai lietojumprogrammas, kas darbojas termin\u0101l\u012b. Piem\u0113ram, programmat\u016bra, kas izmanto <noindex><a rel=\"nofollow\" href=\"https:\/\/tiswww.case.edu\/php\/chet\/readline\/rltop.html\">GNU Readline<\/a><\/noindex> (t\u0101 pati Bash), prasa failu <b>~\/.inputrc<\/b>:<\/p>\n<pre><code class=\"plaintext\">set enable-bracketed-paste on<\/code><\/pre>\n<p>\nDiem\u017e\u0113l Horne testa vietne ar\u012b par\u0101da, k\u0101 apiet \u0161o aizsardz\u012bbu, izmantojot teksta format\u0113\u0161anu un pirmslaic\u012bgu Bracketed re\u017e\u012bma piem\u0113ro\u0161anas p\u0101rtrauk\u0161anu. Tas darbojas, jo da\u017ei termin\u0101\u013ci nepareizi filtr\u0113 izvair\u012b\u0161an\u0101s sec\u012bbas, pirms pievieno savas. Piem\u0113ram, man\u0101 gad\u012bjum\u0101 pat ar pareizu konfigur\u0101ciju man neizdev\u0101s sekm\u012bgi pabeigt Konsole testus. <b>.inputrc<\/b> fails. Tas noz\u012bm\u0113, ka j\u016bs varat viegli saboj\u0101t sist\u0113mas konfigur\u0101ciju, izmantojot neatbalst\u012btu programmu vai nepareizi konfigur\u0113tu apvalku. Tas ir \u012bpa\u0161i b\u012bstami, piek\u013c\u016bstot att\u0101liem serveriem, kur r\u016bp\u012bga konfigur\u0101cija sastopama ret\u0101k, jo \u012bpa\u0161i, ja jums ir daudzi \u0161\u0101di att\u0101li datori.<\/p>\n<p>Laba \u0161\u012bs probl\u0113mas risin\u0101\u0161anas metode ir termin\u0101\u013ca iel\u012bm\u0113\u0161anas apstiprin\u0101juma papildin\u0101jums <b>urxvt<\/b>, kas vienk\u0101r\u0161i prasa at\u013cauju iel\u012bm\u0113t jebkuru tekstu, kas satur jaunas rindas. Es neatradu dro\u0161\u0101ku variantu Horne aprakst\u012btajai tekstu\u0101lajai uzbrukumam.<\/p>\n<h4>V\u0101rdu cilnes un profili<\/h4>\n<p>\nPopul\u0101ra tagad ir interfeisa cil\u0146u atbalsts, ko m\u0113s defin\u0113sim k\u0101 vienu termin\u0101\u013ca logu, kas satur vair\u0101kus termin\u0101\u013cus. \u0160\u012b funkcija at\u0161\u0137iras da\u017e\u0101diem termin\u0101\u013ciem, un, lai gan tradicion\u0101lie termin\u0101\u013ci, piem\u0113ram, xterm, visp\u0101r neatbalsta cilnes, m\u016bsdienu termin\u0101lu versijas, piem\u0113ram, Xfce Terminal, GNOME Terminal un Konsole, \u0161o funkciju ir ieguvu\u0161as. Ar\u012b Urxvt atbalsta cilnes, ta\u010du tikai ar papildin\u0101juma izmanto\u0161anu. Tom\u0113r, run\u0101jot par cil\u0146u atbalsta dabas uzticamu l\u012bderi, ir Terminator: tas ne tikai atbalsta cilnes, bet ar\u012b var novietot termin\u0101\u013cus p\u0113c saviem ieskatiem (skatiet att\u0113lu zem\u0101k).<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/5ac2cdbdd969420cd7c19597d20c8c35.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u0113l viena Terminator funkcija ir iesp\u0113ja \u201egrup\u0113t\u201d \u0161\u012bs cilnes kop\u0101 un nos\u016bt\u012bt vien\u0101das tausti\u0146u nospie\u0161anas uz vair\u0101kiem termin\u0101\u013ciem vienlaikus, nodro\u0161inot rupju r\u012bku masveida oper\u0101ciju veido\u0161anai vair\u0101ku serveru vid\u016b. L\u012bdz\u012bga funkcija ir pieejama ar\u012b Konsole. Lai izmantotu \u0161o funkciju citos termin\u0101\u013cos, ir j\u0101izmanto tre\u0161o pu\u0161u programmat\u016bra, piem\u0113ram, <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> vai <noindex><a rel=\"nofollow\" href=\"https:\/\/tmux.github.io\/\">tmux<\/a><\/noindex>.<\/p>\n<p>\u012apa\u0161i labi cilnes darbojas kop\u0101 ar profiliem: piem\u0113ram, jums var b\u016bt viena cilne e-pastam, otra t\u0113rz\u0113\u0161anai un t\u0101 t\u0101l\u0101k. To labi atbalsta termin\u0101ls Konsole un GNOME Terminal. Abi \u013cauj katrai cilnei autom\u0101tiski palaist savu profilu. Terminator ar\u012b atbalsta profilus, bet es nevar\u0113ju atrast veidu, k\u0101 autom\u0101tiski palaist noteiktas programmas, atverot konkr\u0113tu cilni. Citas termin\u0101\u013ci visp\u0101r nezina, kas ir 'risin\u0101jums'.<\/p>\n<h4>R\u016b\u0161i\u0146as<\/h4>\n<p>\nP\u0113d\u0113jais, ko es apskat\u012b\u0161u \u0161\u012bs raksta pirm\u0101s da\u013cas nosl\u0113gum\u0101, ir termin\u0101\u013cu izskats. Piem\u0113ram, GNOME, Xfce un urxvt atbalsta caurejas efektu, ta\u010du nesen p\u0101rtrauca atbalstu fona att\u0113liem, kas lika da\u017eiem lietot\u0101jiem p\u0101riet uz citu termin\u0101lu. <noindex><a rel=\"nofollow\" href=\"https:\/\/gnunn1.github.io\/tilix-web\/\">Tilix<\/a><\/noindex>. Person\u012bgi man tas ir pietiekami vienk\u0101r\u0161i. <b>Xresources<\/b>, kas nosaka pamata fona kr\u0101su komplektu urxvt. Tom\u0113r nestandarta kr\u0101su t\u0113mas var rad\u012bt ar\u012b probl\u0113mas. Piem\u0113ram, <noindex><a rel=\"nofollow\" href=\"http:\/\/ethanschoonover.com\/solarized\">Solarized<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/altercation\/solarized\/issues\/220\">nedarbojas<\/a><\/noindex> ar lietotn\u0113m <noindex><a rel=\"nofollow\" href=\"http:\/\/hisham.hm\/htop\/\">htop<\/a><\/noindex> un <noindex><a rel=\"nofollow\" href=\"http:\/\/iptraf.seul.org\/\">IPTraf<\/a><\/noindex>, jo t\u0101s jau izmanto savas kr\u0101sas.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/VT100\">Ori\u0123in\u0101lais VT100 termin\u0101ls<\/a><\/noindex> neatbalst\u012bja kr\u0101su, bet jaunie bie\u017ei vien bija ierobe\u017eoti ar 256 kr\u0101su paleti. Lai pieredz\u0113ju\u0161iem lietot\u0101jiem, kuri stiliz\u0113 savus termin\u0101lus, komandu piepras\u012bjumi vai statusa rindas sare\u017e\u0123\u012btos veidos var k\u013c\u016bt par nepat\u012bkamu ierobe\u017eojumu. <noindex><a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/XVilka\/8346728\">Gist<\/a><\/noindex> seko l\u012bdzi, kuri termin\u0101\u013ci atbalsta 'True Color'. Mani testi apstiprina, ka st, Alacritty un VTE b\u0101z\u0113tie termin\u0101\u013ci lieliski atbalsta True Color. Citi termin\u0101\u013ci \u0161aj\u0101 zi\u0146\u0101 nav tik labi un faktiski pat ner\u0101da 256 kr\u0101sas. Zem\u0101k varat redz\u0113t at\u0161\u0137ir\u012bbu starp True Color atbalstu GNOME, st un xterm termin\u0101\u013cu vid\u016b, kas labi tiek gal\u0101 ar \u0161o uzdevumu, izmantojot savu 256 kr\u0101su paleti, un urxvt, kas ne tikai neiztur testu, bet pat r\u0101da da\u017eus mirgojo\u0161us simbolus to viet\u0101.<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/bc6ceac84a1918b9bfa14a5cadd28746.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDa\u017ei termin\u0101\u013ci ar\u012b analiz\u0113 tekstu, lai noteiktu URL veidus, padarot saites klik\u0161\u0137in\u0101mas. Tas attiecas uz visiem VTE atvasin\u0101tajiem termin\u0101liem, kam\u0113r urxvt prasa \u012bpa\u0161u spraudni, kas p\u0101rv\u0113r\u0161 URL adreses klik\u0161\u0137in\u0101\u0161anas vai tausti\u0146u kombin\u0101cijas pal\u012bdz\u012bbu. Citiem termin\u0101\u013ciem, ko esmu test\u0113jis, URL adreses tiek att\u0113lotas citos veidos.<\/p>\n<p>Visbeidzot, jauns termin\u0101\u013cu trends ir opcionalit\u0101te ritin\u0101\u0161anas buferiem. Piem\u0113ram, st nav ritin\u0101\u0161anas bufera; tiek pie\u0146emts, ka lietot\u0101js izmantos termin\u0101la multiplexer, piem\u0113ram, tmux un <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gnu.org\/software\/screen\/\">GNU Screen<\/a><\/noindex>.<\/p>\n<p>Alacritty ar\u012b nesniedz atpaka\u013c ritin\u0101\u0161anas buferus, bet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/124\">dr\u012bz tiks pievienota<\/a><\/noindex> t\u0101s atbalsts d\u0113\u013c \"pla\u0161\u0101 atsauksmju apjoma\" par \u0161o t\u0113mu no lietot\u0101jiem. Iz\u0146emot \u0161os iz\u0146\u0113mumus, katrs p\u0101rbaud\u012btais termin\u0101lis, ko esmu atradis, atbalsta atpaka\u013c ritin\u0101\u0161anu.<\/p>\n<h4>Vid\u0113ji rezult\u0101ti<\/h4>\n<p>\nOtraj\u0101 raksta da\u013c\u0101 (<i>ori\u0123in\u0101l\u0101 tas bija divas atsevi\u0161\u0137as rakstu da\u013cas, \u2014 red. piez.<\/i>) m\u0113s sal\u012bdzin\u0101sim veiktsp\u0113ju, atmi\u0146as pat\u0113ri\u0146u un aizturi. Bet jau tagad redzam, ka da\u017ei no apl\u016bkotajiem termin\u0101\u013ciem ir ar nopietn\u0101m tr\u016bkum\u0101m. Piem\u0113ram, lietot\u0101ji, kuri regul\u0101ri str\u0101d\u0101 ar RTL skriptiem, var piev\u0113rst uzman\u012bbu mlterm un pterm, jo tie lab\u0101k risina \u0161\u0101das probl\u0113mas. Konsole ar\u012b uzr\u0101d\u012bjusi labu sniegumu. Lietot\u0101ji, kuri nestr\u0101d\u0101 ar RTL skriptiem, var izv\u0113l\u0113ties kaut ko citu.<\/p>\n<p>No dro\u0161\u012bbas viedok\u013ca urxvt izce\u013cas ar savu unik\u0101lo aizsardz\u012bbu pret \u013caunpr\u0101t\u012bgu kodu, kas man \u0161\u0137iet noteikti izdev\u012bga. Tie, kas mekl\u0113 k\u0101du uzlabojumu, var apskat\u012bt Konsole. Beig\u0101s j\u0101atz\u012bm\u0113, ka VTE ir lieliska b\u0101ze termin\u0101\u013ciem, kas garant\u0113 kr\u0101su atbalstu, URL atpaz\u012b\u0161anu un t\u0101 t\u0101l\u0101k. Pirmaj\u0101 acumirkl\u012b noklus\u0113juma termin\u0101ls, kas pieg\u0101d\u0101ts ar j\u016bsu m\u012b\u013c\u0101ko vidi, var apmierin\u0101t visas pras\u012bbas, bet atst\u0101sim \u0161o jaut\u0101jumu atkl\u0101tu, kam\u0113r nenodarbosimies ar veiktsp\u0113ju.<\/p>\n<p><i><\/p>\n<h4>Turpin\u0101m sarunu<\/h4>\n<p><\/i><br \/>\nPati termin\u0101\u013cu veiktsp\u0113ja var \u0161\u0137ist izdom\u0101ta probl\u0113ma, tom\u0113r, k\u0101 izr\u0101d\u012bj\u0101s, da\u017ei no tiem demonstr\u0113 p\u0101rsteidzo\u0161i lielu aizturi \u0161\u0101da fundament\u0101la tipa programmat\u016brai. Turpin\u0101jum\u0101 m\u0113s apl\u016bkosim to, ko tradicion\u0101li sauc par \"\u0101trumu\" (paties\u012bb\u0101, tas ir ritin\u0101\u0161anas \u0101trums) un termin\u0101la atmi\u0146as pat\u0113ri\u0146u (\u0146emot v\u0113r\u0101, ka \u0161odien tas nav tik kritiski k\u0101 pirms desmitgad\u0113m).<\/p>\n<h4>Aizture<\/h4>\n<p>\nP\u0113c r\u016bp\u012bgas termin\u0101\u013cu veiktsp\u0113jas izp\u0113tes es secin\u0101ju, ka vissvar\u012bg\u0101kais parametrs \u0161aj\u0101 zi\u0146\u0101 ir aiztures lielums (ping). Sav\u0101 rakst\u0101 <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typing-with-pleasure\/\">\u00abIzdruk\u0101jam ar prieku\u00bb<\/a><\/noindex> P\u0101vels Fatins izv\u0113rt\u0113ja da\u017e\u0101du teksta redaktoru latentumu un nor\u0101d\u012bja, ka termin\u0101\u013ci \u0161aj\u0101 zi\u0146\u0101 var str\u0101d\u0101t l\u0113n\u0101k nek\u0101 visstrauj\u0101kie teksta redaktori. Tie\u0161i \u0161\u012b nor\u0101de galu gal\u0101 mudin\u0101ja mani uzs\u0101kt savus testus un uzrakst\u012bt \u0161o rakstu.<\/p>\n<p>Bet kas ir latentums, un k\u0101p\u0113c tas ir tik svar\u012bgi? Sav\u0101 rakst\u0101 Fatins to defin\u0113ja k\u0101 \u201elatentumu starp tausti\u0146a nospie\u0161anu un attiec\u012bgo ekr\u0101na atjaunin\u0101\u0161anu\u201d un cit\u0113ja <noindex><a rel=\"nofollow\" href=\"https:\/\/books.google.com\/books\/about\/Handbook_of_Human_Computer_Interaction.html?id=WuQbERgXR10C&amp;redir_esc=y\">\u00abCilv\u0113ka un datora mijiedarb\u012bbas rokasgr\u0101matu\u00bb<\/a><\/noindex>, kur\u0101 teikts: \u201eLatentums vizu\u0101laj\u0101 atgriezeniskaj\u0101 saikn\u0113 uz datora ekr\u0101na b\u016btiski ietekm\u0113 ma\u0161\u012bnrakst\u012bt\u0101ja uzved\u012bbu un vi\u0146as apmierin\u0101t\u012bbu.\u201d<\/p>\n<p>Fatins izskaidro, ka \u0161\u0101ds pings ir ar dzi\u013c\u0101k\u0101m sek\u0101m, nevis tikai apmierin\u0101t\u012bbu: \u201erakst\u012b\u0161ana paliek l\u0113n\u0101ka, k\u013c\u016bst vair\u0101k k\u013c\u016bdu, palielin\u0101s acu un musku\u013cu spriedze.\u201d Citiem v\u0101rdiem sakot, liel\u0101ks latentums var novest pie druk\u0101\u0161anas k\u013c\u016bd\u0101m, k\u0101 ar\u012b samazin\u0101t koda kvalit\u0101ti, jo tas rada papildu kognit\u012bvo slodzi uz smadzen\u0113m. Bet v\u0113l slikt\u0101k, pings \u201epalielina acu un musku\u013cu spriedzi\u201d, kas, ac\u012bmredzot, noz\u012bm\u0113 <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Repetitive_strain_injury\">profesion\u0101lo traumu<\/a><\/noindex> n\u0101kotn\u0113 (<i>ac\u012bmredzot autors dom\u0101 par acu, muguras, roku un, protams, redzes probl\u0113m\u0101m \u2014 piez\u012bme tulkot\u0101jam.<\/i>) sakar\u0101 ar atk\u0101rtoto spriedzi.<\/p>\n<p>Da\u017ei no \u0161iem efektiem ir zin\u0101mi jau sen, bet rezult\u0101ti <noindex><a rel=\"nofollow\" href=\"https:\/\/doi.org\/10.1080\/00140137608931531\">p\u0113tniec\u012bb\u0101<\/a><\/noindex>, kas tika public\u0113ti jau 1976. gad\u0101 \u017eurn\u0101l\u0101 Ergonomics, liecina, ka latentums 100 milisekund\u0113m \u201eiev\u0113rojami pasliktina rakst\u012b\u0161anas \u0101trumu\u201d. Pavisam nesen GNOME lietot\u0101ja rokasgr\u0101mat\u0101 tika iek\u013cauts <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.gnome.org\/hig-book\/3.12\/feedback-response-times.html.en\">pie\u0146emams reakcijas laiks<\/a><\/noindex> 10 milisekund\u0113s, bet, ja m\u0113s skat\u0101mies t\u0101l\u0101k, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=vOvQCPLkPt4\">Microsoft Research<\/a><\/noindex> par\u0101da, ka ide\u0101ls ir 1 milisekunde.<\/p>\n<p>Fatins veica savus testus uz teksta redaktoriem; vi\u0146\u0161 izveidoja portat\u012bvu r\u012bku ar nosaukumu <noindex><a rel=\"nofollow\" href=\"https:\/\/pavelfatin.com\/typometer\">Typometer<\/a><\/noindex>, ko es izmantoju, lai p\u0101rbaud\u012btu ping emul\u0113to termin\u0101\u013cu vid\u0113. \u0145emiet v\u0113r\u0101, ka tests tika veikts simul\u0101cijas re\u017e\u012bm\u0101: paties\u012bb\u0101 j\u0101\u0146em v\u0113r\u0101 ar\u012b ievades (klaviat\u016bra, USB kontrolieris utt.) un izvades (videokartes buferis, monitors) aizture. Saska\u0146\u0101 ar Fatina teikto, tipiskaj\u0101s konfigur\u0101cij\u0101s t\u0101 ir apm\u0113ram 20 ms. Ar sp\u0113\u013cu apr\u012bkojumu var sasniegt tikai 3 milisekundes. T\u0101 k\u0101 mums jau ir t\u0101ds \u0101trs apr\u012bkojums, lietojumprogrammai nevajadz\u0113tu izrais\u012bt papildu aizturi. Fatina m\u0113r\u0137is ir samazin\u0101t lietojumprogrammas aizturi l\u012bdz 1 milisekundei vai visp\u0101r pan\u0101kt iestat\u012bjumu bez <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.jetbrains.com\/idea\/2015\/08\/experimental-zero-latency-typing-in-intellij-idea-15-eap\/\">m\u0113r\u0101mas aiztures<\/a><\/noindex>, k\u0101 <noindex><a rel=\"nofollow\" href=\"https:\/\/confluence.jetbrains.com\/display\/IDEADEV\/IDEA+15+EAP\">IntelliJ IDEA 15<\/a><\/noindex>.<\/p>\n<p>L\u016bk, mani m\u0113r\u012bjumu rezult\u0101ti, k\u0101 ar\u012b da\u017ei Fatina rezult\u0101ti, lai par\u0101d\u012btu, ka mans eksperiments ir saska\u0146ots ar vi\u0146a testiem:<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/d7ae46c8309e9cfd517164d5fed093f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPirmais, kas mani p\u0101rsteidza, bija lab\u0101kais reakcijas laiks vecaj\u0101m programm\u0101m, piem\u0113ram, xterm un mlterm. Ar slikt\u0101ko re\u0123istr\u0101cijas aizturi (2,4 ms) t\u0101s par\u0101d\u012bja rezult\u0101tu lab\u0101ku nek\u0101 \u0101tr\u0101k\u0101 m\u016bsdienu termin\u0101\u013ca (10,6 ms st). Neviens m\u016bsdienu termin\u0101lis neizn\u0101k zem 10 milisekund\u0113m. It \u012bpa\u0161i, Alacritty neatbilst pras\u012bb\u0101m k\u0101 \u201e\u0101tr\u0101kais no eso\u0161ajiem termin\u0101la emul\u0101toriem\u201d, lai gan t\u0101 rezult\u0101ti ir uzlabojusies kop\u0161 pirm\u0101s p\u0101rbaudes 2017. gad\u0101. Patiesi, projekta autori <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jwilm\/alacritty\/issues\/673\">ir inform\u0113ti par situ\u0101ciju<\/a><\/noindex> un str\u0101d\u0101 pie att\u0113lo\u0161anas uzlabo\u0161anas. T\u0101pat j\u0101atz\u012bm\u0113, ka Vim, kas izmanto GTK3, ir k\u0101rt\u012bgi l\u0113n\u0101ks par t\u0101 GTK2 analogu. No t\u0101 var secin\u0101t, ka GTK3 rada papildu aizturi, un tas atspogu\u013cojas visos citos termin\u0101los, kas to izmanto (Terminator, Xfce4 Terminal un GNOME Terminal).<\/p>\n<p>Tom\u0113r ac\u012bmredzot at\u0161\u0137ir\u012bbas var b\u016bt neman\u0101mas. K\u0101 skaidro Fatins: \u201enav oblig\u0101ti apzin\u0101ties aizturi, lai t\u0101 ietekm\u0113tu j\u016bs.\u201d Fatins ar\u012b br\u012bdina par standartnovirz\u0113m: \u201ejebk\u0101das novirzes aiztures ilgum\u0101 (vibr\u0101cijas) rada papildu slodzi to neparedzam\u012bbas d\u0113\u013c.\u201d<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/e128a7e6c32a1517c98ffc612fe09128.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIepriek\u0161 min\u0113tie dati ieg\u016bti uz t\u012bra Debian 9 (stretch) ar <noindex><a rel=\"nofollow\" href=\"https:\/\/i3wm.org\/\">i3 logu p\u0101rvaldnieku<\/a><\/noindex>. \u0160\u012b vide sniedz lab\u0101kos rezult\u0101tus aiztures noteik\u0161anas testos. Izr\u0101d\u0101s, ka GNOME rada papildu pingu 20 ms visiem m\u0113r\u012bjumiem. Iesp\u0113jams, tam par iemeslu ir programmas ar sinhronu ievades notikumu apstr\u0101di. Fatin \u0161\u0101dam gad\u012bjumam min piem\u0113ru <noindex><a rel=\"nofollow\" href=\"http:\/\/www.workrave.org\/\">Workrave<\/a><\/noindex>, kas pievieno aizturi, apstr\u0101d\u0101jot visus ievades notikumus sinhroni. P\u0113c noklus\u0113juma GNOME ir apr\u012bkots ar\u012b ar logu mened\u017eeri <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mutter_(software)\">Mutter<\/a><\/noindex>, kas rada papildu bufer\u0113\u0161anas l\u012bmeni, kas ietekm\u0113 pingu un pievieno vismaz 8 milisekundes aizturi.<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/3585d1edf4cee214d7a53858943b1845.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Ritin\u0101\u0161anas \u0101trums<\/h4>\n<p>\nN\u0101kamais tests ir tradicion\u0101ls \"\u0101truma\" vai \"caurlaidsp\u0113jas\" p\u0101rbaud\u012bjums, kas m\u0113ra, cik \u0101tri termin\u0101ls var ritin\u0101t lapu, att\u0113lojot lielu teksta apjomu ekr\u0101n\u0101. Testa meh\u0101nika sv\u0101rst\u0101s; ori\u0123in\u0101lais tests bija vienk\u0101r\u0161i \u0123ener\u0113t to pa\u0161u teksta rindu, izmantojot komandu seq. Citi testi ietver Toma E. Diki testu (kas n\u0101k ar xterm), kura ietvaros vair\u0101kk\u0101rt <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/xterm.faq.html#scroll_speed\">tiek izg\u0101d\u0101ts fails terminfo.src<\/a><\/noindex>. V\u0113l vien\u0101 termin\u0101\u013cu veiktsp\u0113jas p\u0101rskat\u0101 <noindex><a rel=\"nofollow\" href=\"https:\/\/danluu.com\/term-latency\/\">Den Luu<\/a><\/noindex> izmanto gad\u012bjuma baitu rindu base32 kod\u0113jum\u0101, kas tiek izvad\u012bta termin\u0101l\u012b, izmantojot cat. Luu uzskata \u0161\u0101du testu par \"tik bezj\u0113dz\u012bgu etalonu, cik vien iesp\u0113jams\" un pied\u0101v\u0101 izmantot termin\u0101la atbildi k\u0101 galveno r\u0101d\u012bt\u0101ju. Diki ar\u012b d\u0113v\u0113 savu testu par maldino\u0161u. Tom\u0113r abi autori atz\u012bst, ka termin\u0101la loga caurlaidsp\u0113ja var b\u016bt probl\u0113ma. Luu ir konstat\u0113jis Emacs Eshell iestr\u0113g\u0161anu, att\u0113lojot lielus failus, savuk\u0101rt Diki ir optimiz\u0113jis termin\u0101li, lai nov\u0113rstu vizu\u0101lo l\u0113n\u012bbu xtrerm. T\u0101d\u0113\u013c \u0161im testam joproj\u0101m ir k\u0101da j\u0113ga, bet, \u0146emot v\u0113r\u0101, ka render\u0113\u0161anas process iev\u0113rojami at\u0161\u0137iras no termin\u0101\u013ca uz termin\u0101li, to var izmantot ar\u012b k\u0101 test\u0113\u0161anas komponentu citu parametru p\u0101rbaudei.<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/3231877fdcd7725c3248fb393185ece4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0160eit m\u0113s redzam, ka rxvt un st izvirz\u0101s priek\u0161\u0101 konkurentiem, kam seko daudz jaun\u0101kais Alacritty, kas tiek izstr\u0101d\u0101ts ar fokusu uz \u0101trdarb\u012bbu. P\u0113c tam seko Xfce (VTE \u0123imene) un Konsole, kas darbojas gandr\u012bz divas reizes \u0101tr\u0101k. P\u0113d\u0113jais ir xterm ar piecu reizi l\u0113n\u0101ku r\u0101d\u012bt\u0101ju nek\u0101 rxvt. Testa laik\u0101 xterm ar\u012b stipri raust\u012bj\u0101s, un p\u0101rojo\u0161o tekstu bija gr\u016bti saskat\u012bt, pat ja t\u0101 bija viena un t\u0101 pati rinda. Konsole izr\u0101d\u012bj\u0101s \u0101trs, ta\u010du taj\u0101 bija mirk\u013ci, kad tas \u201cm\u0101n\u012bj\u0101s\u201d: ekr\u0101ns laiku pa laikam apst\u0101j\u0101s, r\u0101d\u012bdams tekstu da\u013c\u0113ji vai to visp\u0101r ner\u0101dot. Citi termin\u0101\u013ci r\u0101d\u012bja rindas skaidri, tostarp st, Alacritty un rxvt.<\/p>\n<p>Diki skaidro, ka veiktsp\u0113jas at\u0161\u0137ir\u012bbas saist\u012btas ar da\u017e\u0101du termin\u0101\u013cu sl\u012bd\u0113\u0161anas buferu dizainu. Piem\u0113ram, vi\u0146\u0161 vaino rxvt un citus termin\u0101\u013cus, ka tie \u201cneiev\u0113ro kop\u0113j\u0101s normas\u201d:<\/p>\n<blockquote><p>\u201eAt\u0161\u0137ir\u012bb\u0101 no xterm, rxvt necent\u0101s att\u0113lot visus atjaunin\u0101jumus. Ja tas iepaliek, tas atteiksies no da\u013c\u0113jiem atjaunin\u0101jumiem, lai pan\u0101ktu pied\u0101v\u0101jumu. Tas vair\u0101k ietekm\u0113ja mald\u012bgo sl\u012bd\u0113\u0161anas \u0101trumu, nevis iek\u0161\u0113j\u0101s atmi\u0146as organiz\u0101ciju. Viens tr\u016bkums bija tas, ka ASCII anim\u0101cija bija nedaudz neprec\u012bza.\u201d<\/p><\/blockquote>\n<p>\nLai labotu \u0161o \u0161\u0137ietamo l\u0113numu xterm, Diki iesaka izmantot resursu <noindex><a rel=\"nofollow\" href=\"https:\/\/invisible-island.net\/xterm\/manpage\/xterm.html#VT100-Widget-Resources:fastScroll\">fastScroll<\/a><\/noindex>, kas \u013cauj xterm noraid\u012bt da\u017eus ekr\u0101na atjaunin\u0101jumus, lai netiktu iepalic\u0113ts no pl\u016bsmas. Mani testi apstiprina, ka fastScroll uzlabo veiktsp\u0113ju un izvirza xterm uz vienu l\u012bmeni ar rxvt. Tom\u0113r tas ir diezgan rupj\u0161 risin\u0101jums, k\u0101 pats Diki skaidro: \u201eDa\u017ereiz xterm \u2013 k\u0101 ar\u012b konsole \u2013 \u0161\u0137ietapst\u0101jies, jo tas gaida jaunu ekr\u0101na atjaunin\u0101jumu kopumu, p\u0113c tam, kad da\u017ei no tiem ir izdz\u0113sti.\u201d \u0160aj\u0101 sakar\u0101 \u0161\u0137iet, ka citi termin\u0101\u013ci atradu\u0161i lab\u0101ko kompromisu starp \u0101trumu un ekr\u0101na integrit\u0101ti.<\/p>\n<h4>Resursu pat\u0113ri\u0146\u0161<\/h4>\n<p>\nNeatkar\u012bgi no t\u0101, cik pamatoti ir apsv\u0113rt sl\u012bd\u0113\u0161anas \u0101trumu k\u0101 veiktsp\u0113jas r\u0101d\u012bt\u0101ju, \u0161is tests \u013cauj imit\u0113t slodzi uz termin\u0101\u013ciem, kas, savuk\u0101rt, \u013cauj mums izm\u0113r\u012bt citus parametrus, piem\u0113ram, atmi\u0146as vai diska izmanto\u0161anu. Metricas tika ieg\u016btas, palai\u017eot nor\u0101d\u012bto testu <b>seq<\/b> zem Python procesa uzraudz\u012bbas. Tas v\u0101kdati par r\u0101d\u012bt\u0101jiem <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man2\/getrusage.2.html\">getrusage ()<\/a><\/noindex> lai <b>ru_maxrss<\/b>, summa <b>ru_oublock<\/b> un <b>ru_inblock<\/b> un vienk\u0101r\u0161u laika taimeri.<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/df378c145a559ed4aad98fa70b58c72c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0160aj\u0101 test\u0101 ST ie\u0146em pirmo vietu ar maz\u0101ko vid\u0113jo atmi\u0146as pat\u0113ri\u0146u 8 MB apm\u0113r\u0101, kas nav p\u0101rsteidzo\u0161i, ja \u0146em v\u0113r\u0101, ka projekta galven\u0101 ideja ir vienk\u0101r\u0161\u012bba. Nedaudz vair\u0101k izmanto mlterm, xterm un rxvt \u2014 apm\u0113ram 12 MB. V\u0113l viens iev\u0113r\u012bbas cien\u012bgs rezult\u0101ts ir Alacritty, kuram darbam nepiecie\u0161ami 30 MB. P\u0113c tam seko VTE \u0123imenes termin\u0101\u013ci ar r\u0101d\u012bt\u0101jiem no 40 l\u012bdz 60 MB, kas ir diezgan liels cipars. \u0160\u0101du pat\u0113ri\u0146u var izskaidrot ar to, ka \u0161ie termin\u0101\u013ci izmanto augst\u0101kas l\u012bme\u0146a bibliot\u0113kas, piem\u0113ram, GTK. Konsole nosl\u0113dz sarakstu ar milz\u012bgu 65 MB atmi\u0146as pat\u0113ri\u0146u testu laik\u0101, tom\u0113r to var pamatot ar t\u0101 pla\u0161o funkcionalit\u0101ti.<\/p>\n<p>Sal\u012bdzin\u0101jum\u0101 ar iepriek\u0161\u0113jiem rezult\u0101tiem, kas ieg\u016bti pirms desmit gadiem, visi programmat\u016bras r\u012bki ir s\u0101ku\u0161i pat\u0113r\u0113t iev\u0113rojami vair\u0101k atmi\u0146as. Agr\u0101k Xterm pras\u012bja 4 MB, bet tagad \u2014 15 MB tikai palai\u0161anai. L\u012bdz\u012bga pat\u0113ri\u0146a palielin\u0101\u0161an\u0101s ir ar\u012b pie rxvt, kuram tagad \u2018out of the box\u2019 nepiecie\u0161ami 16 MB. Xfce termin\u0101ls aiz\u0146em 34 MB, kas ir tr\u012bs reizes vair\u0101k nek\u0101 agr\u0101k, bet GNOME Terminal prasa tikai 20 MB. Protams, visi iepriek\u0161\u0113jie testi tika veikti 32 bitu arhitekt\u016br\u0101. LCA 2012 Rasti Rasels <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/477155\/\">st\u0101st\u012bja<\/a><\/noindex>, kas liecina par daudz\u0101m smalk\u0101k\u0101m izskaidrojo\u0161\u0101m apst\u0101k\u013ciem, kas var izskaidrot atmi\u0146as pat\u0113ri\u0146a pieaugumu. \u0145emot v\u0113r\u0101 to, m\u0113s \u0161obr\u012bd dz\u012bvojam laikmet\u0101, kad mums ir veseli gigabaiti atmi\u0146as, t\u0101p\u0113c m\u0113s noteikti tiksim gal\u0101.<\/p>\n<p>Tom\u0113r man ir saj\u016bta, ka liel\u0101kas atmi\u0146as pie\u0161\u0137ir\u0161ana t\u0101dam pamata programmat\u016bras risin\u0101jumam k\u0101 termin\u0101ls ir resursu iz\u0161\u0137ie\u0161ana. \u0160\u012bm programm\u0101m vajadz\u0113tu b\u016bt vismaz\u0101kaj\u0101m starp vismaz\u0101kaj\u0101m, un t\u0101m j\u0101sp\u0113j darboties uz jebkuras \u201ekastes\u201d, pat uz apavu kaste, ja m\u0113s k\u0101dreiz noskaidrosim, ka t\u0101s ir j\u0101apg\u0101d\u0101 ar Linux sist\u0113m\u0101m (un j\u016bs ta\u010du zin\u0101t, ka t\u0101 tas notiks). Bet ar \u0161iem cipariem atmi\u0146as izmanto\u0161ana n\u0101kotn\u0113 k\u013c\u016bs par probl\u0113mu jebkur\u0101 vid\u0113, palai\u017eot vair\u0101kus termin\u0101lus, iz\u0146emot gad\u012bjumu ar da\u017eiem pa\u0161iem viegl\u0101kajiem un ierobe\u017eot\u0101kajiem. Lai kompens\u0113tu \u0161o, GNOME Terminal, Konsole, urxvt, Terminator un Xfce Terminal ir Daemon re\u017e\u012bms, kas \u013cauj p\u0101rvald\u012bt vair\u0101kus termin\u0101lus caur vienu procesu, ierobe\u017eojot to atmi\u0146as pat\u0113ri\u0146u.<\/p>\n<p><img decoding=\"async\" alt=\"Termin\u0101\u013cu emulatoru apskats\" src=\"\/wp-content\/uploads\/2019\/08\/65ade9cc81284f24f0c44322eec73ef0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTest\u0113jot es non\u0101cu pie v\u0113l vienas negaid\u012btas atzi\u0146as attiec\u012bb\u0101 uz diska las\u012b\u0161anas-ierakst\u012b\u0161anas procesiem: es gaid\u012bju, ka \u0161eit visp\u0101r neko neredz\u0113\u0161u, bet izr\u0101d\u012bj\u0101s, ka da\u017ei termin\u0101li ieraksta vispla\u0161\u0101kos datus uz diska. T\u0101d\u0113j\u0101di VTE bibliot\u0113ka faktiski tur uz diska skrull buferi (\u0161\u012b iez\u012bme <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=631685\">tika nov\u0113rota jau 2010. gad\u0101<\/a><\/noindex>, un tas notiek joproj\u0101m). Bet at\u0161\u0137ir\u012bb\u0101 no vecaj\u0101m realiz\u0101cij\u0101m, tagad vismaz \u0161ie dati ir \u0161ifr\u0113ti, izmantojot AES256 GCM (<noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=664611#c48\">kop\u0161 versijas 0.39.2<\/a><\/noindex>). Bet rodas sapr\u0101t\u012bgs jaut\u0101jums, kas tie\u0161i ir tik \u012bpa\u0161s VTE bibliot\u0113k\u0101, ka tai nepiecie\u0161ama t\u0101da nestandarta pieeja realiz\u0101cijai\u2026<\/p>\n<h4>Secin\u0101jums<\/h4>\n<p>\nPirmaj\u0101 raksta da\u013c\u0101 m\u0113s atkl\u0101j\u0101m, ka VTE balst\u012btajiem termin\u0101liem ir labs funkciju kopums, bet tagad redzam, ka tas saist\u012bts ar noteikt\u0101m izmaks\u0101m, lai nodro\u0161in\u0101tu to veiktsp\u0113ju. \u0160obr\u012bd atmi\u0146a nav probl\u0113ma, jo visus VTE termin\u0101lus var p\u0101rvald\u012bt caur Daemon procesu, kur\u0161 ierobe\u017eo to apet\u012bti. Tom\u0113r vec\u0101k\u0101m sist\u0113m\u0101m, kur\u0101m ir fiziskas ierobe\u017eojumi attiec\u012bb\u0101 uz operat\u012bv\u0101s atmi\u0146as un kodola bufera daudzumu, joproj\u0101m var b\u016bt nepiecie\u0161amas agr\u0101kas termin\u0101lu versijas, jo t\u0101s pat\u0113r\u0113 iev\u0113rojami maz\u0101k resursu. Lai gan VTE termin\u0101li ir izr\u0101d\u012bju\u0161ies labi caurlaidsp\u0113jas testos (skrol\u0113\u0161ana), to datu att\u0113lo\u0161anas aizture ekr\u0101n\u0101 ir augst\u0101ka par noteikto slieksni GNOME lietot\u0101ja rokasgr\u0101mat\u0101. Iesp\u0113jams, VTE izstr\u0101d\u0101t\u0101jiem tas b\u016btu j\u0101\u0146em v\u0113r\u0101. \u0145emot v\u0113r\u0101 to, ka pat Linux ies\u0101c\u0113ju lietot\u0101jiem satik\u0161an\u0101s ar termin\u0101li ir neizb\u0113gama, vi\u0146i var\u0113tu padar\u012bt to draudz\u012bg\u0101ku pret lietot\u0101ju. Pieredz\u0113ju\u0161iem entuziastiem p\u0101reja no noklus\u0113juma termin\u0101\u013ca var pat noz\u012bm\u0113t slodzes samazin\u0101\u0161anos uz acu un iesp\u0113ju izvair\u012bties no profesion\u0101l\u0101m traum\u0101m un saslim\u0161an\u0101m n\u0101kotn\u0113, \u0146emot v\u0113r\u0101 ilgsto\u0161as darba sesijas. Diem\u017e\u0113l vien\u012bgi vec\u0101s xterm un mlterm m\u016bs noved pie burv\u012bg\u0101 10 milisekun\u017eu pings sliek\u0161\u0146a, kas daudziem ir nepie\u0146emams.<\/p>\n<p>Kontroles m\u0113r\u012bjumi ar\u012b par\u0101d\u012bja, ka, att\u012bstoties Linux grafiskaj\u0101m vid\u0113m, izstr\u0101d\u0101t\u0101jiem bija j\u0101pie\u0146em vair\u0101ki kompromisi. Da\u017eiem lietot\u0101jiem b\u016btu v\u0113rts apsv\u0113rt parast\u0101s logu mened\u017eerus, jo tie nodro\u0161ina b\u016btisku pings samazin\u0101jumu. Diem\u017e\u0113l Wayland gaid\u012bto aizturi izm\u0113r\u012bt nebija iesp\u0113jams: programma Typometer, ko es izmantoju, bija rad\u012bta, lai nov\u0113rstu to, ko Wayland cen\u0161as p\u0101rtraukt \u2014 spiego\u0161anu par citiem logiem. Es ceru, ka Wayland kompoz\u012bcija sniegs lab\u0101ku veiktsp\u0113ju nek\u0101 X.org, un ceru, ka n\u0101kotn\u0113 k\u0101ds atrad\u012bs veidu, k\u0101 nov\u0113rt\u0113t aiztures l\u012bmeni \u0161aj\u0101 vid\u0113.<br \/>\n<br \/>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/463785\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0430\u0440\u0430 \u0441\u043b\u043e\u0432 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e translate-\u0431\u044e\u0440\u043e: \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u0441\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0441\u0432\u0435\u0436\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438 \u043c\u044b \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u041d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0438 \u0434\u043b\u044f \u0432\u0430\u0441 \u0441\u0442\u0430\u0442\u044c\u044e \u0410\u043d\u0442\u0443\u0430\u043d\u0430 \u0411\u043e\u043f\u0440\u0435, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0432\u0435\u0441\u043d\u043e\u0439 2018 \u0433\u043e\u0434\u0430: \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0441\u043e\u043b\u0438\u0434\u043d\u044b\u0439 \u043f\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u0440\u043a\u0430\u043c \u00ab\u0432\u043e\u0437\u0440\u0430\u0441\u0442\u00bb, \u043d\u0430 \u043d\u0430\u0448 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u043b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27911,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0430\u0440\u0430 \u0441\u043b\u043e\u0432 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e translate-\u0431\u044e\u0440\u043e: \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u0441\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0441\u0432\u0435\u0436\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438 \u043c\u044b \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u041d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/obzor-emulyatorov-terminala\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\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\/lv\/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\udd47Termin\u0101lu emulatoru p\u0101rskats | ProHoster","description":"p\u0101ris v\u0101rdus no m\u016bsu tulko\u0161anas biroja: parasti visi cen\u0161as tulkot visjaun\u0101kos materi\u0101lus un publik\u0101cijas, un m\u0113s neesam iz\u0146\u0113mums. Tom\u0113r termin\u0101li nav tas, kas tiek atjaunin\u0101ts reizi ned\u0113\u013c\u0101.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/obzor-emulyatorov-terminala","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\/lv\/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\/lv\/wp-json\/wp\/v2\/posts\/37222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=37222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/37222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/27911"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=37222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=37222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=37222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}