Ringkesan emulator terminal

Sawetara tembung saka biro terjemahan kita: biasane saben wong ngupayakake nerjemahake materi lan publikasi paling anyar, lan kita ora terkecuali. Nanging terminal ora soko sing dianyari sapisan minggu. Mulane, kita wis nerjemahake kanggo sampeyan artikel dening Antoine Beaupré, diterbitake ing musim semi 2018: senadyan "umur" sing cukup akeh miturut standar modern, miturut pendapat kita, materi kasebut ora ilang relevansi. Kajaba iku, iki asline minangka seri saka rong artikel, nanging kita mutusake kanggo gabungke dadi siji kiriman gedhe.

Ringkesan emulator terminal

Terminal duwe panggonan khusus ing sajarah komputer, nanging ing dekade anyar iki wis dipeksa kanggo urip bebarengan karo baris printah amarga antarmuka grafis dadi nang endi wae. Emulator terminal diganti dhewe sedulur hardware, kang, ing siji, padha modifikasi saka sistem adhedhasar kertu punched lan ngalih toggle. Distribusi modern teka karo macem-macem emulator terminal saka kabeh wangun lan werna. Lan nalika akeh sing puas karo terminal standar sing diwenehake dening lingkungan kerjane, sawetara kanthi bangga nggunakake piranti lunak eksotis kanggo mbukak cangkang utawa editor teks favorit. Nanging, kaya sing bakal kita deleng saka artikel iki, ora kabeh terminal digawe ing gambar sing padha: padha beda banget ing fungsi, ukuran lan kinerja.

Sawetara terminal duwe bolongan keamanan downright ngageti, plus paling duwe pesawat temen beda saka fungsi, saka support kanggo antarmuka tab kanggo skrip. Senajan kita nyawang emulator terminal ing jaman kepungkur, artikel iki minangka nganyari materi sadurunge sing bakal mbantu para pamaca nemtokake terminal sing bakal digunakake ing 2018. Separo pisanan artikel mbandhingake fitur, lan separo kapindho ngevaluasi kinerja.

Mangkene terminal sing dakdeleng:

Ringkesan emulator terminal

Iki bisa uga dudu versi paling anyar, amarga aku diwatesi kanggo mbangun stabil nalika nulis, sing bisa diluncurake ing Debian 9 utawa Fedora 27. Istiméwa mung Alacritty. Iku turunan saka terminal GPU-cepet lan ditulis ing basa mboten umum lan anyar kanggo tugas iki - Rust. Aku ora kalebu terminal web saka review (kalebu ing Elektron), amarga tes awal nuduhake kinerja sing kurang apik.

Dhukungan Unicode

Aku miwiti tes karo dhukungan Unicode. Tes pisanan saka terminal yaiku kanggo nampilake string Unicode saka Artikel Wikipedia: “é, Δ, И, ק, م, ๗, あ, 叶, 葉 lan 말.” Tes prasaja iki nuduhake apa terminal bisa mlaku kanthi bener ing saindenging jagad. terminal xterm ora nampilake karakter Arab Mem ing konfigurasi gawan:

Ringkesan emulator terminal

Kanthi gawan, xterm nggunakake font klasik "tetep", sing, miturut isih padha Vicky, wis "jangkoan Unicode substansial wiwit 1997". Ana kedadeyan ing font iki sing nyebabake karakter katon minangka pigura kosong lan mung nalika font teks ditambah dadi 20+ poin, karakter kasebut pungkasane wiwit ditampilake kanthi bener. Nanging, "fix" iki ngrusak tampilan karakter Unicode liyane:

Ringkesan emulator terminal

Gambar kasebut dijupuk ing Fedora 27, amarga menehi asil sing luwih apik tinimbang Debian 9, ing ngendi sawetara versi terminal lawas (khusus mlterm) ora bisa nangani font kanthi bener. Untunge iki wis didandani ing versi sabanjure.

Saiki sok dong mirsani carane baris ditampilake ing xterm. Pranyata metu sing simbol Mem lan Semit ing ngisor iki qoph deleng skrip gaya RTL (kiwa-tengen), dadi sacara teknis kudu ditampilake saka tengen ngiwa. Browser web kayata Firefox 57 nangani baris ing ndhuwur kanthi bener. Versi teks RTL sing luwih prasaja yaiku tembung "Аа"ing basa Ibrani (שרה). Kaca Wiki babagan teks bidirectional ngandika ing ngisor iki:

"Akeh program komputer ora bisa nampilake teks bidirectional kanthi bener. Contone, jeneng Ibrani "Sarah" kasusun saka karakter dosa (ש) (sing katon ing sisih tengen), banjur resh (ר) lan pungkasane dheweke (ה) (sing kudu katon ing sisih kiwa).

Akeh terminal gagal test iki: Alacritty, VTE-asalé Gnome lan XFCE terminal, urxvt, st lan xterm tampilan "Sara" ing urutan mbalikke, minangka yen kita wis ditulis jeneng minangka "Aras".

Ringkesan emulator terminal

Masalah liyane karo teks bidirectional yaiku kudu didadekake siji, utamane nalika nyampur teks RTL lan LTR. Tulisan RTL kudu mbukak saka sisih tengen jendhela terminal, nanging apa sing kudu kedadeyan kanggo terminal sing standar kanggo LTR Inggris? Umume ora duwe mekanisme khusus lan nyelarasake kabeh teks ing sisih kiwa (kalebu ing Konsole). Pangecualian yaiku pterm lan mlterm, sing netepi standar lan nyelarasake garis kasebut.

Ringkesan emulator terminal

Proteksi sisipan

Fitur kritis sabanjure sing dakkenal yaiku proteksi anti-penyisipan. Sanajan umume dikenal manawa mantra kaya:

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

minangka printah push eksekusi kode, sawetara wong ngerti yen printah sing didhelikake bisa nyelinep menyang console nalika nyalin lan nempel saka browser web, sanajan sawise mriksa kanthi ati-ati. Situs verifikasi Gianna Horna sarwa nuduhake carane innocuous-looking printah punika:

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

dadi gangguan nalika disisipake saka situs web Horn menyang 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

Cara kerjane? Kode jahat kalebu ing blok kasebut , sing dipindhah metu saka tampilan pangguna nggunakake CSS.

Mode tempel kurung dirancang kanthi jelas kanggo netralake serangan kasebut. Ing mode iki, terminal nyakup teks sing ditempelake ing pasangan urutan uwal khusus kanggo ngandhani cangkang babagan asale teks kasebut. Iki ngandhani cangkang sing bisa nglirwakake karakter khusus sing bisa ngemot teks sing ditempelake. Kabeh terminal bali menyang xterm kinurmatan ndhukung fitur iki, nanging nempel ing mode Bracketed mbutuhake dhukungan saka cangkang utawa aplikasi sing mlaku ing terminal. Contone, piranti lunak nggunakake GNU Readline (Bash padha), mbutuhake file ~/.inputrc:

set enable-bracketed-paste on

Sayange, situs tes Horn uga nuduhake carane ngliwati proteksi iki liwat format teks dhewe lan kanthi prematur bakal nggunakake mode Bracketed. Iki bisa ditindakake amarga sawetara terminal ora nyaring urutan uwal kanthi bener sadurunge nambahake dhewe. Contone, ing tambang, aku ora bisa ngrampungake tes Konsole sanajan kanthi konfigurasi sing bener .inputrc berkas. Iki tegese sampeyan bisa kanthi gampang nggawe konfigurasi sistem rusak amarga aplikasi sing ora didhukung utawa cangkang sing ora dikonfigurasi kanthi bener. Iki utamané mbebayani nalika mlebu menyang server remot, ngendi karya konfigurasi ati-ati kurang umum, utamané yen sampeyan duwe akeh mesin remot kuwi.

Solusi sing apik kanggo masalah iki yaiku plugin konfirmasi tempel kanggo terminal urxvt, sing mung njaluk ijin kanggo nglebokake teks sing ngemot baris anyar. Aku wis ora nemu pilihan luwih aman kanggo serangan teks diterangake dening Horn.

Tab lan profil

Fitur populer saiki yaiku dhukungan kanggo antarmuka tab, sing bakal ditetepake minangka jendela terminal sing ngemot sawetara terminal liyane. Fungsi iki beda kanggo terminal sing beda-beda, lan sanajan terminal xterm tradisional ora ndhukung tab, inkarnasi terminal sing luwih modern kayata Terminal Xfce, Terminal GNOME lan Konsole duwe fungsi iki. Urxvt uga ndhukung tab, nanging mung yen sampeyan nggunakake plugin. Nanging babagan dhukungan tab dhewe, Terminator minangka pimpinan sing ora bisa dibantah: ora mung ndhukung tab, nanging uga bisa ngatur terminal kanthi urutan apa wae (ndeleng gambar ing ngisor iki).

Ringkesan emulator terminal

Fitur liyane Terminator yaiku kemampuan kanggo "nglompokake" tab kasebut bebarengan lan ngirim ketukan tombol sing padha menyang macem-macem terminal bebarengan, nyedhiyakake alat mentah kanggo nindakake operasi akeh ing sawetara server bebarengan. Fitur sing padha uga ditindakake ing Konsole. Kanggo nggunakake fitur iki ing terminal liyane, sampeyan kudu nggunakake piranti lunak pihak katelu kayata Kluster SSH, xlax utawa tmux.

Tab bisa dianggo kanthi apik nalika dipasangake karo profil: contone, sampeyan bisa duwe tab siji kanggo email, liyane kanggo chatting, lan liya-liyane. Iki uga didhukung dening Terminal Konsole lan Terminal GNOME. Loro-lorone ngidini saben tab mbukak profil dhewe kanthi otomatis. Terminator uga ndhukung profil, nanging aku ora bisa nemokake cara kanggo mbukak program tartamtu kanthi otomatis nalika mbukak tab tartamtu. Terminal liyane ora duwe konsep "profil" kabeh.

Ruffles

Babagan pungkasan sing bakal dakkandhakake ing bagean pisanan artikel iki yaiku tampilan terminal. Contone GNOME, Xfce lan urxvt ndhukung transparansi, nanging bubar ngeculake dhukungan kanggo gambar latar mburi, meksa sawetara pangguna ngalih menyang terminal. Tilix. Secara pribadi, aku seneng lan gampang Sumber Xres, sing nyetel dhasar werna latar mburi kanggo urxvt. Nanging, tema warna sing ora standar uga bisa nggawe masalah. Tuladhane, Dhewe ora gingsir karo aplikasi htop и IPTraf, amarga wis nggunakake werna dhewe.

Terminal VT100 asli ora ndhukung werna, lan sing anyar asring diwatesi ing palet 256 warna. Kanggo pangguna tingkat lanjut sing nggawe gaya terminal, pituduh cangkang utawa garis status kanthi cara sing rumit bisa dadi watesan sing ngganggu. Gist trek kang terminal duwe support "Warna Bener". tes Kula konfirmasi sing st, Alacritty lan terminal basis VTE ndhukung True Color sampurna. Terminal liyane ora apik banget babagan iki lan, nyatane, ora nampilake 256 warna. Ing ngisor iki sampeyan bisa ndeleng prabédan antarane support True Color ing terminal GNOME, st lan xterm, kang nindakake proyek apik iki karo 256 palet werna, lan urxvt, kang ora mung gagal test, nanging malah nuduhake sawetara karakter blinking tinimbang wong.

Ringkesan emulator terminal

Sawetara terminal uga nganalisa teks kanggo pola URL supaya link bisa diklik. Iki ditrapake kanggo kabeh terminal sing asale saka VTE, dene urxvt mbutuhake plugin khusus sing bakal ngowahi URL kanthi klik utawa nggunakake trabasan keyboard. Terminal liyane Aku wis nyoba URL tampilan kanthi cara liya.

Pungkasan, tren anyar ing terminal yaiku pilihan saka buffer gulung. Contone, st ora gulung buffer; dianggep pangguna bakal nggunakake multiplexer terminal kaya tmux lan Layar GNU.

Alacritty uga kurang buffer backscroll, nanging bakal ditambahake rauh dhukungan amarga "umpan balik ekstensif" ing topik iki saka pangguna. Loro saka upstarts iki, saben terminal aku wis dites sing bisa nemokake ndhukung mbalikke nggulung.

Subtotal

Ing bagean kapindho materi (ing asline iki ana rong artikel sing beda - kira-kira. jalur) kita bakal mbandhingake kinerja, panggunaan memori lan latensi. Nanging kita wis bisa ndeleng manawa sawetara terminal kasebut duwe kekurangan sing serius. Contone, pangguna sing ajeg nggarap skrip RTL bisa uga pengin nimbang mlterm lan pterm, amarga luwih apik nangani tugas sing padha tinimbang liyane. Konsole uga tampil apik. Pangguna sing ora bisa nganggo skrip RTL bisa milih liyane.

Ing syarat-syarat pangayoman marang sisipan kode angkoro, urxvt stands metu amarga sawijining implementasine khusus saka pangayoman marang jinis serangan, kang misale jek mesthi trep kanggo kula. Kanggo sing looking for sawetara lonceng lan whistles, Konsole worth dipikir. Pungkasan, perlu dicathet yen VTE minangka basis banget kanggo terminal, sing njamin dhukungan warna, pangenalan URL, lan liya-liyane. Sepisanan, terminal standar sing kasedhiya karo lingkungan favorit sampeyan bisa nyukupi kabeh syarat, nanging ayo mbukak pitakonan iki nganti ngerti kinerja.

Ayo nerusake obrolan


Umumé, kinerja terminal dhewe bisa uga katon kaya masalah sing adoh, nanging nyatane, sawetara sing nuduhake latensi sing luar biasa kanggo piranti lunak jinis dhasar kasebut. Uga sabanjuré kita bakal katon ing apa tradisional disebut "kacepetan" (nyatane, iki kacepetan gulung) lan konsumsi memori terminal (karo caveat sing iki ora kritis dina iki minangka dekade kepungkur).

Tundha

Sawise sinau lengkap babagan kinerja terminal, aku entuk kesimpulan yen parameter sing paling penting ing babagan iki yaiku latensi (ping). Ing artikelipun "Kita nyithak kanthi seneng" Pavel Fatin ndeleng latensi macem-macem editor teks lan menehi tandha manawa terminal ing babagan iki bisa uga luwih alon tinimbang editor teks sing paling cepet. Iki minangka pitunjuk sing pungkasane nuntun aku nindakake tes dhewe lan nulis artikel iki.

Nanging apa latensi, lan kenapa penting banget? Ing artikelé, Fatin ditetepake minangka "tundha antarane mencet tombol lan nganyari layar sing cocog" lan dikutip. "Pandhuan kanggo Interaksi Manungsa-Komputer", sing nyatakake: "Tundha umpan balik visual ing tampilan komputer nduwe pengaruh penting marang prilaku lan kepuasan juru ketik."

Fatin nerangake yen ping iki nduweni akibat sing luwih jero tinimbang mung kepuasan: "ngetik dadi luwih alon, luwih akeh kesalahan, lan ketegangan mata lan otot mundhak." Ing tembung liyane, wektu tundha gedhe bisa nyebabake kesalahan ketik lan uga kualitas kode sing luwih murah, amarga ndadékaké beban kognitif tambahan ing otak. Nanging sing luwih elek yaiku ping "nambah ketegangan mata lan otot," sing tegese pangembangan ciloko pekerjaan ing mangsa ngarep (Ketoke, penulis tegese masalah karo otot mata, punggung, lengen lan, mesthi, sesanti - kira-kira. jalur) amarga stres sing bola-bali.

Sawetara efek iki wis dikenal kanggo dangu, lan asil riset, diterbitake maneh ing 1976 ing jurnal Ergonomics, ngandika sing wektu tundha saka 100 milliseconds "Ngartekno impairs kacepetan ngetik." Paling anyar, Pandhuan pangguna GNOME dikenalake wektu respon ditrima ing 10 milliseconds, lan yen sampeyan pindhah luwih, banjur Microsoft Research nuduhake yen 1 millisecond iku becik.

Fatin nganakake tes ing editor teks; dheweke nggawe piranti portabel sing diarani typometer, sing digunakake kanggo nyoba ping ing emulator terminal. Elinga yen tes kasebut ditindakake ing mode simulasi: ing kasunyatan, kita kudu nganggep loro input (keyboard, pengontrol USB, lan sapiturute) lan output (buffer kertu video, monitor) latensi. Miturut Fatin, ing konfigurasi khas kira-kira 20 ms. Yen sampeyan duwe peralatan game, sampeyan bisa entuk angka iki mung 3 milliseconds. Amarga kita wis duwe hardware sing cepet banget, aplikasi kasebut ora kudu nambah latensi dhewe. Tujuane Fatin yaiku nggawa latensi aplikasi dadi 1 milidetik, utawa malah bisa nelpon tanpa nelpon wektu tundha sing bisa diukur, kepiye IDI IntelliJ 15.

Mangkene asil pangukuranku, uga sawetara asile Fatin, kanggo nuduhake yen eksperimenku setuju karo tes:

Ringkesan emulator terminal

Wangsulan: Bab ingkang pisanan sing disabetake kula wektu respon luwih saka program lawas kayata xterm lan mlterm. Kanthi latensi register paling awon (2,4 ms), padha nindakake luwih apik tinimbang terminal modern paling cepet (10,6 ms kanggo st). Ora ana terminal modern sing mudhun ing ambang 10 milidetik. Khususé, Alacritty gagal nemoni pratelan "emulator terminal paling cepet sing kasedhiya", sanajan skor kasebut saya apik wiwit ditinjau pisanan ing 2017. Pancen, penulis proyek kasebut ngerti kahanan lan digunakake kanggo nambah tampilan. Sampeyan uga kudu dicathet yen Vim nggunakake GTK3 minangka urutan gedhene luwih alon tinimbang mitra GTK2. Saka iki kita bisa nyimpulake yen GTK3 nggawe latensi tambahan, lan iki dibayangke ing kabeh terminal liyane sing nggunakake (Terminator, Terminal Xfce4 lan Terminal GNOME).

Nanging, bedane bisa uga ora katon ing mripat. Minangka Fatin nerangake, "sampeyan ora kudu weruh saka wektu tundha kanggo duwe efek ing sampeyan." Fatin uga ngelingake babagan standar deviasi: "apa wae gangguan ing latensi (jitter) nggawe stres tambahan amarga ora bisa diprediksi."

Ringkesan emulator terminal

Grafik ing ndhuwur dijupuk ing Debian 9 murni (stretch) karo manager jendhela i3. Lingkungan iki ngasilake asil paling apik ing tes latensi. Ternyata, GNOME nggawe ping tambahan 20 ms kanggo kabeh pangukuran. Panjelasan sing bisa ditindakake yaiku anané program kanthi proses sinkron saka acara input. Fatin menehi conto kanggo kasus kaya mengkono nyambut gawe, sing nambah wektu tundha kanthi ngolah kabeh acara input bebarengan. Kanthi gawan, GNOME uga dilengkapi manajer jendhela mutter, sing nggawe lapisan tambahan buffering, sing mengaruhi ping lan nambah paling sethithik 8 milidetik latensi.

Ringkesan emulator terminal

Kacepetan gulung

Tes sabanjure yaiku tes "kacepetan" utawa "bandwidth" tradisional, sing ngukur sepira cepet terminal bisa nggulung kaca nalika nampilake akeh teks ing layar. Mekanika tes beda-beda; test asli mung generate senar teks padha nggunakake printah seq. Tes liyane kalebu tes Thomas E. Dickey (xterm maintainer), sing bola-bali file terminfo.src diundhuh. Ing review liyane saka kinerja terminal Den Luu nggunakake senar dienkode base32 saka bita acak, kang output kanggo terminal nggunakake cat. Luu nganggep tes kasebut minangka "tanda pathokan sing ora ana gunane sing bisa dibayangake" lan nyaranake nggunakake respon terminal minangka metrik utami. Dickey uga nyebutake tes kasebut mblusukake. Nanging, loro penulis ngakoni manawa bandwidth jendhela terminal bisa dadi masalah. Luu nemokake pembekuan Emacs Eshell nalika nampilake file gedhe, lan Dickey ngoptimalake terminal kanggo nyingkirake sluggishness visual xtrerm. Dadi isih ana sawetara manfaat kanggo tes iki, nanging amarga proses rendering beda banget saka terminal menyang terminal, bisa uga digunakake minangka komponen test kanggo nyoba paramèter liyane.

Ringkesan emulator terminal

Kene kita waca rxvt lan st narik ahead saka kompetisi, ngiring dening luwih anyar Alacritty, kang dirancang karo fokus ing kinerja. Sabanjure Xfce (kulawarga VTE) lan Konsole, sing meh kaping pindho luwih cepet. Pungkasan yaiku xterm, sing kaping lima luwih alon tinimbang rxvt. Sajrone test, xterm uga rippled kathah, nggawe maringaken teks angel kanggo ndeleng sanajan iku baris padha. Konsole cepet, nanging kadhangkala angel: tampilan bakal beku saka wektu kanggo wektu, nuduhake teks parsial utawa ora nuduhake kabeh. Terminal liyane ditampilake strings cetha, kalebu st, Alacritty, lan rxvt.

Dickey nerangake yen beda kinerja amarga desain buffer gulung ing terminal beda. Utamane, dheweke nuduh rxvt lan terminal liyane "ora ngetutake aturan umum":

"Ora kaya xterm, rxvt ora nyoba nampilake kabeh nganyari. Yen tiba konco, bakal nolak sawetara nganyari kanggo nyekel munggah. Iki duwe pengaruh sing luwih gedhe ing kacepetan gulung sing katon tinimbang ing organisasi memori internal. Siji kekurangan yaiku animasi ASCII rada ora akurat."

Kanggo ndandani sluggishness xterm sing dirasakake iki, Dickey nyaranake nggunakake sumber kasebut cepetScroll, ngidini xterm mbuang sawetara nganyari layar kanggo nglacak aliran. Tesku konfirmasi manawa fastScroll nambah kinerja lan nggawa xterm setara karo rxvt. Iki, Nanging, crutch rodo atos, minangka Dickey piyambak nerangake: "kadhangkala xterm - kaya konsole - misale jek kios nalika ngenteni pesawat anyar nganyari layar sawise sawetara wis dibusak." Ing urat iki, misale jek terminal liyane nemokake kompromi sing paling apik ing antarane kacepetan lan integritas tampilan.

Konsumsi sumber daya

Ora preduli manawa nimbang kacepetan gulung minangka metrik kinerja, tes iki ngidini kita nyinkronake beban ing terminal, sing ngidini kita ngukur paramèter liyane kayata memori utawa panggunaan disk. Metrik dipikolehi kanthi nglakokake tes sing ditemtokake seq ing ngawasi proses Python. Dheweke ngumpulake data meter getrusage() kanggo ru_maxrss, jumlah ru_oublock и ru_inblock lan timer prasaja.

Ringkesan emulator terminal

Ing tes iki, ST njupuk Panggonan pisanan kanthi konsumsi memori rata-rata paling murah 8 MB, sing ora nggumunake yen ide utama desain kasebut yaiku kesederhanaan. mlterm, xterm lan rxvt ngonsumsi luwih sithik - udakara 12 MB. Hasil liyane sing penting yaiku Alacritty, sing mbutuhake 30 MB kanggo mbukak. Banjur ana terminal kulawarga VTE kanthi angka saka 40 nganti 60 MB, sing cukup akeh. Konsumsi iki bisa diterangake kanthi kasunyatan manawa terminal kasebut nggunakake perpustakaan tingkat dhuwur, contone, GTK. Konsole teka ing pungkasan kanthi konsumsi memori 65MB sing gedhe sajrone tes, sanajan iki bisa dibenerake kanthi fitur sing akeh banget.

Dibandhingake karo asil sadurunge sing dipikolehi sepuluh taun kepungkur, kabeh program wiwit nggunakake memori sing luwih akeh. Xterm biyen mbutuhake 4 MB, nanging saiki mbutuhake 15 MB mung nalika wiwitan. Ana tambah konsumsi sing padha kanggo rxvt, sing saiki mbutuhake 16 MB metu saka kothak. Terminal Xfce njupuk 34 MB, sing kaping telu luwih gedhe tinimbang sadurunge, nanging Terminal GNOME mung mbutuhake 20 MB. Mesthine, kabeh tes sadurunge ditindakake ing arsitektur 32-bit. Ing LCA 2012 Rusty Russell Aku marang, sing ana akeh alasan liyane subtle sing bisa nerangake Tambah ing konsumsi memori. Sawise ujar manawa, saiki kita urip ing jaman sing duwe memori gigabyte, mula kita bakal ngatur.

Nanging, aku ora bisa bantuan nanging aran sing allocating liyane memori kanggo soko minangka dhasar minangka terminal punika sampah sumber. Program-program kasebut kudu paling cilik saka sing paling cilik, kudu bisa mlaku ing "kothak" apa wae, sanajan kothak sepatu, yen kita wis tekan titik sing kudu dilengkapi sistem Linux (lan sampeyan ngerti yen bakal dadi. ). Nanging kanthi nomer kasebut, panggunaan memori bakal dadi masalah ing mangsa ngarep ing lingkungan apa wae sing nganggo macem-macem terminal kajaba sawetara sing paling entheng lan paling winates ing kemampuan. Kanggo ngimbangi iki, Terminal GNOME, Konsole, urxvt, Terminator lan Xfce Terminal duwe mode Daemon sing ngidini sampeyan ngontrol sawetara terminal liwat proses siji, mbatesi konsumsi memori.

Ringkesan emulator terminal

Sajrone tes, aku teka ing asil liyane sing ora dikarepke babagan disk maca-nulis: Aku ngarep-arep ora weruh apa-apa ing kene, nanging ternyata sawetara terminal nulis data sing paling akeh ing disk. Dadi, perpustakaan VTE bener-bener nyimpen gulung buffer ing disk (fitur iki ditemokake ing taun 2010, lan iki isih kelakon). Nanging ora kaya implementasine sing lawas, saiki paling ora data iki dienkripsi nggunakake AES256 GCM (saka versi 0.39.2). Nanging ana pitakonan sing cukup: apa khusus babagan perpustakaan VTE sing mbutuhake pendekatan non-standar kanggo implementasine ...

kesimpulan

Ing bagean pisanan saka artikel, kita ketemu sing terminal basis VTE duwe pesawat apik saka fitur, nanging saiki kita waca sing iki nerangake karo sawetara biaya kinerja. Saiki memori ora dadi masalah amarga kabeh terminal VTE bisa dikontrol liwat proses Daemon, sing mbatesi napsu. Nanging, sistem lawas sing duwe watesan fisik babagan jumlah RAM lan buffer kernel isih mbutuhake versi terminal sing luwih awal, amarga nggunakake sumber daya sing luwih sithik. Sanajan terminal VTE nindakake kanthi apik ing tes throughput (nggulung), latensi tampilane ngluwihi batesan sing disetel ing Pandhuan pangguna GNOME. Pangembang VTE mbokmenawa kudu nganggep iki. Yen kita nganggep manawa pangguna Linux anyar sing nemoni terminal ora bisa dihindari, mula bisa dadi luwih gampang pangguna. Kanggo geeks sing berpengalaman, ngalih saka terminal standar bisa uga tegese kurang ketegangan mata lan kemampuan kanggo ngindhari ciloko lan penyakit sing ana hubungane karo kerja amarga kerja sing dawa. Sayange, mung xterm lan mlterm lawas sing nggawa kita menyang ambang ping ajaib 10 milliseconds, sing ora bisa ditampa kanggo akeh.

Pangukuran benchmark uga nuduhake yen amarga pangembangan lingkungan grafis Linux, pangembang kudu nggawe sawetara kompromi. Sawetara pangguna bisa uga pengin ndeleng manajer jendhela biasa amarga menehi pengurangan ping sing signifikan. Sayange, iku ora bisa kanggo ngukur latensi kanggo Wayland: program Typometer aku digunakake digawe kanggo apa Wayland dirancang kanggo nyegah: spying windows liyane. Mugi sing Wayland compositing performs luwih saka X.org, lan aku uga ngarep-arep sing ing mangsa wong bakal nemokake cara kanggo ngukur latensi ing lingkungan iki.

Source: www.habr.com

Add a comment