Akopọ ti awọn emulators ebute

Awọn ọrọ diẹ lati ile-iṣẹ itumọ wa: nigbagbogbo gbogbo eniyan n gbiyanju lati tumọ awọn ohun elo ati awọn atẹjade tuntun, ati pe a kii ṣe iyasọtọ. Ṣugbọn awọn ebute kii ṣe nkan ti o ni imudojuiwọn lẹẹkan ni ọsẹ kan. Nitorinaa, a ti tumọ fun ọ ni nkan kan nipasẹ Antoine Beaupré, ti a tẹjade ni orisun omi ti ọdun 2018: laibikita “ọjọ ori” pupọ rẹ nipasẹ awọn iṣedede ode oni, ninu ero wa, ohun elo naa ko padanu ibaramu rẹ rara. Ni afikun, eyi jẹ lẹsẹsẹ awọn nkan meji ni akọkọ, ṣugbọn a pinnu lati darapo wọn sinu ifiweranṣẹ nla kan.

Akopọ ti awọn emulators ebute

Awọn ebute ni aaye pataki kan ninu itan-akọọlẹ kọnputa, ṣugbọn ni awọn ewadun aipẹ wọn ti fi agbara mu lati yege lẹgbẹẹ laini aṣẹ bi awọn atọkun ayaworan ti di ibi gbogbo. Awọn emulators ebute rọpo ara wọn hardware arakunrin, eyiti, leteto, jẹ iyipada ti awọn eto ti o da lori awọn kaadi punched ati awọn yipada yipada. Awọn pinpin ode oni wa pẹlu ọpọlọpọ awọn emulators ebute ti gbogbo awọn nitobi ati awọn awọ. Ati pe lakoko ti ọpọlọpọ ni akoonu pẹlu ebute boṣewa ti a pese nipasẹ agbegbe iṣẹ wọn, diẹ ninu igberaga lo sọfitiwia nla nla lati ṣiṣẹ ikarahun ayanfẹ wọn tabi olootu ọrọ. Ṣugbọn, bi a yoo rii lati inu nkan yii, kii ṣe gbogbo awọn ebute ni a ṣẹda ni aworan kanna: wọn yatọ pupọ ni iṣẹ ṣiṣe, iwọn ati iṣẹ.

Diẹ ninu awọn ebute ni awọn iho aabo iyalẹnu ti o yanilenu, pẹlu pupọ julọ ni eto iṣẹ ṣiṣe ti o yatọ patapata, lati atilẹyin fun wiwo tabbed si kikọ. Botilejepe awa wò ni ebute emulators ninu awọn ti o jina ti o ti kọja, Nkan yii jẹ imudojuiwọn ti ohun elo iṣaaju ti yoo ṣe iranlọwọ fun awọn oluka lati pinnu iru ebute lati lo ni ọdun 2018. Idaji akọkọ ti nkan naa ṣe afiwe awọn ẹya, ati idaji keji ṣe iṣiro iṣẹ ṣiṣe.

Eyi ni awọn ebute ti Mo ṣe ayẹwo:

Akopọ ti awọn emulators ebute

Iwọnyi le ma jẹ awọn ẹya tuntun, nitori Mo ni opin si awọn ile iduroṣinṣin ni akoko kikọ, eyiti Mo ni anfani lati yi jade lori Debian 9 tabi Fedora 27. Iyatọ kan ṣoṣo ni Alacritty. O ti wa ni a arọmọdọmọ ti GPU-onikiakia ebute oko ati ki o ti kọ ni ohun dani ati titun ede fun yi iṣẹ-ṣiṣe - ipata. Mo yọkuro awọn ebute wẹẹbu lati atunyẹwo mi (pẹlu awọn ti o wa lori Itanna), nitori awọn idanwo alakoko fihan iṣẹ ṣiṣe ti ko dara pupọ.

Unicode support

Mo bẹrẹ awọn idanwo mi pẹlu atilẹyin Unicode. Idanwo akọkọ ti awọn ebute naa ni lati ṣafihan okun Unicode lati Wikipedia ìwé: "é, Δ, И, ק, م, ๗, あ, 叶, 葉 ati 말." Idanwo ti o rọrun yii fihan boya ebute naa le ṣiṣẹ ni deede ni agbaye. ebute xterm ko ṣe afihan ohun kikọ Larubawa Bakanna ni aiyipada iṣeto:

Akopọ ti awọn emulators ebute

Nipa aiyipada, xterm nlo fonti “ti o wa titi” Ayebaye, eyiti, ni ibamu si tun kanna Vicki, ni "idaniloju Unicode agbegbe lati ọdun 1997". Ohunkan wa ti n lọ ninu fonti yii ti o jẹ ki ohun kikọ han bi fireemu òfo ati pe o jẹ nigbati fonti ọrọ ba pọ si awọn aaye 20+ ti ohun kikọ nipari bẹrẹ lati ṣafihan ni deede. Bibẹẹkọ, “fix” yii fọ ifihan ti awọn ohun kikọ Unicode miiran:

Akopọ ti awọn emulators ebute

Awọn sikirinisoti wọnyi ni a mu ni Fedora 27, bi o ti fun awọn abajade to dara julọ ju Debian 9, nibiti diẹ ninu awọn ẹya agbalagba ti awọn ebute (ni pato mlterm) ko le mu awọn akọwe daradara. Ni Oriire eyi jẹ atunṣe ni awọn ẹya nigbamii.

Bayi ṣe akiyesi bi ila naa ṣe han ni xterm. O wa ni jade wipe aami Mem ati awọn wọnyi Semitic kof tọka si awọn iwe afọwọkọ ara RTL (ọtun-si-osi), nitorina ni imọ-ẹrọ wọn yẹ ki o ṣafihan lati ọtun si osi. Awọn aṣawakiri wẹẹbu bii Firefox 57 mu ila ti o wa loke tọ tọ. Ẹya ti o rọrun ti ọrọ RTL ni ọrọ naa "Bẹẹni" ni Heberu (.). Oju-iwe Wiki lori awọn ọrọ-itọkasi meji wí pé:

“Ọpọlọpọ awọn eto kọmputa ko le ṣe afihan ọrọ bidirectional ni deede. Fun apẹẹrẹ, orukọ Heberu "Sarah" ni awọn ohun kikọ ẹṣẹ (ש) (eyiti o han ni apa ọtun), lẹhinna resh (ר) ati nikẹhin o (ה) (eyi ti o yẹ ki o han ni apa osi)."

Ọpọlọpọ awọn ebute ba kuna idanwo yii: Alacritty, Gnome ti a gba VTE ati awọn ebute XFCE, urxvt, st ati xterm àpapọ “Sara” ni ọna yiyipada, bi ẹnipe a ti kọ orukọ naa bi “Aras”.

Akopọ ti awọn emulators ebute

Iṣoro miiran pẹlu awọn ọrọ bidirectional ni pe wọn nilo lati wa ni deede bakan, paapaa nigbati o ba de si dapọ awọn ọrọ RTL ati LTR. Awọn iwe afọwọkọ RTL yẹ ki o ṣiṣẹ lati apa ọtun ti window ebute, ṣugbọn kini o yẹ ki o ṣẹlẹ fun awọn ebute ti o jẹ aiyipada si LTR English? Pupọ ninu wọn ko ni awọn ilana pataki eyikeyi ti wọn si so gbogbo ọrọ pọ si apa osi (pẹlu Konsole). Awọn imukuro jẹ pterm ati mlterm, eyiti o faramọ awọn iṣedede ati titọ-ọtun iru awọn laini.

Akopọ ti awọn emulators ebute

Idaabobo ifibọ

Ẹya pataki ti o tẹle ti Mo ti ṣe idanimọ jẹ aabo ifibọ. Botilẹjẹpe o jẹ olokiki pupọ pe awọn itọka bii:

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

jẹ awọn pipaṣẹ titari ipaniyan koodu, diẹ eniyan mọ pe awọn aṣẹ ti o farapamọ le wọ inu console nigba didakọ ati lẹẹmọ lati ẹrọ aṣawakiri wẹẹbu kan, paapaa lẹhin iṣayẹwo iṣọra. Aaye ijerisi Gianna Horna finnifinni ṣe afihan bi wiwa-aibikita aṣẹ naa ṣe jẹ:

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

yi pada sinu iru iparun nigba ti o lẹẹmọ lati oju opo wẹẹbu Horn sinu ebute naa:

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

Bawo ni o ṣe n ṣiṣẹ? Koodu irira wa ninu bulọki naa , eyi ti o ti gbe jade ni wiwo olumulo nipa lilo CSS.

Ipo lẹẹmọ akọmọ ti wa ni kedere še lati yomi iru ku. Ni ipo yii, awọn ebute ebute paarọ ọrọ ti o lẹẹmọ sinu bata meji ti awọn ọna abayọ pataki lati sọ fun ikarahun naa nipa ipilẹṣẹ ọrọ naa. Eyi sọ fun ikarahun naa pe o le foju foju kọ awọn ami kikọ pataki ti ọrọ ti o lẹẹ le ni ninu. Gbogbo awọn ebute pada si xterm obo ṣe atilẹyin ẹya yii, ṣugbọn sisẹ ni ipo Bracketed nilo atilẹyin lati ikarahun tabi ohun elo ti n ṣiṣẹ lori ebute naa. Fun apẹẹrẹ, lilo software GNU kika (Bash kanna), nilo faili kan ~/.inputrc:

set enable-bracketed-paste on

Laisi ani, aaye idanwo Horn tun fihan bi o ṣe le fori aabo yii nipasẹ ọna kika ọrọ funrararẹ ati pe laipẹ pari ni lilo ipo Bracketed si rẹ. Eyi ṣiṣẹ nitori diẹ ninu awọn ebute ko ṣe àlẹmọ awọn ọna abayo ni deede ṣaaju fifi ara wọn kun. Fun apẹẹrẹ, ninu temi Emi ko ni anfani lati pari awọn idanwo Konsole paapaa pẹlu iṣeto to pe .inputrc faili. Eyi tumọ si pe o le ni rọọrun gba atunto eto rẹ jẹ ibajẹ nitori ohun elo ti ko ni atilẹyin tabi ikarahun ti a tunto ti ko tọ. Eyi lewu paapaa nigbati o wọle si awọn olupin latọna jijin, nibiti iṣẹ iṣeto iṣọra ko wọpọ, paapaa ti o ba ni ọpọlọpọ awọn ẹrọ jijin.

Ojutu ti o dara si iṣoro yii ni ohun itanna ijẹrisi lẹẹ fun ebute naa uxvt, eyi ti o rọrun beere igbanilaaye lati fi ọrọ eyikeyi ti o ni awọn laini titun sii. Emi ko rii aṣayan aabo diẹ sii fun ikọlu ọrọ ti a ṣalaye nipasẹ Horn.

Awọn taabu ati awọn profaili

Ẹya olokiki ni bayi ni atilẹyin fun wiwo taabu, eyiti a yoo ṣalaye bi window ebute kan ti o ni ọpọlọpọ awọn ebute miiran. Iṣẹ yii yatọ fun awọn ebute oriṣiriṣi, ati botilẹjẹpe awọn ebute xtermin ibile ko ṣe atilẹyin awọn taabu rara, awọn incarnations ebute ode oni bii Xfce Terminal, GNOME Terminal ati Konsole ni iṣẹ yii. Urxvt tun ṣe atilẹyin awọn taabu, ṣugbọn nikan ti o ba lo ohun itanna kan. Ṣugbọn ni awọn ofin ti atilẹyin taabu funrararẹ, Terminator jẹ oludari ti ko ni ariyanjiyan: kii ṣe atilẹyin awọn taabu nikan, ṣugbọn tun le ṣeto awọn ebute ni eyikeyi aṣẹ (wo aworan ni isalẹ).

Akopọ ti awọn emulators ebute

Ẹya miiran ti Terminator ni agbara lati “ṣe akojọpọ” awọn taabu wọnyi papọ ki o firanṣẹ awọn titẹ bọtini kanna si awọn ebute lọpọlọpọ ni akoko kanna, pese ohun elo robi fun ṣiṣe awọn iṣẹ olopobobo lori awọn olupin lọpọlọpọ nigbakanna. Ẹya ti o jọra tun jẹ imuse ni Konsole. Lati lo ẹya yii ni awọn ebute miiran, o gbọdọ lo sọfitiwia ẹnikẹta gẹgẹbi Àkópọ̀ SSH, xlax tabi tmux.

Awọn taabu ṣiṣẹ daradara daradara nigbati a ba so pọ pẹlu awọn profaili: fun apẹẹrẹ, o le ni taabu kan fun imeeli, omiiran fun iwiregbe, ati bẹbẹ lọ. Eyi ni atilẹyin daradara nipasẹ Terminal Konsole ati GNOME Terminal. Mejeeji gba taabu kọọkan lati ṣe ifilọlẹ profaili tirẹ laifọwọyi. Terminator tun ṣe atilẹyin awọn profaili, ṣugbọn Emi ko le wa ọna lati ṣe ifilọlẹ awọn eto kan laifọwọyi nigbati o ṣii taabu kan pato. Miiran ebute ko ni awọn Erongba ti "profaili" ni gbogbo.

Awọn ruffles

Ohun ikẹhin ti Emi yoo bo ni apakan akọkọ ti nkan yii ni irisi awọn ebute naa. Fun apẹẹrẹ GNOME, Xfce ati urxvt ṣe atilẹyin akoyawo, ṣugbọn ti fi atilẹyin silẹ laipẹ fun awọn aworan abẹlẹ, fi ipa mu diẹ ninu awọn olumulo lati yipada si ebute Tilix. Tikalararẹ, Mo ni idunnu pẹlu rẹ ati pe o rọrun Awọn orisun Xresources, eyi ti o ṣeto ipilẹ ipilẹ ti awọn awọ abẹlẹ fun urxvt. Sibẹsibẹ, awọn akori awọ ti kii ṣe deede le tun ṣẹda awọn iṣoro. Fun apere, Ti a fun ni aṣẹ ko ṣiṣẹ pẹlu awọn ohun elo Htop и IPTraf, niwon wọn ti lo awọn awọ ti ara wọn tẹlẹ.

Original VT100 ebute ko ṣe atilẹyin awọn awọ, ati awọn tuntun nigbagbogbo ni opin si paleti awọ 256. Fun awọn olumulo to ti ni ilọsiwaju ti o ṣe ara awọn ebute wọn, awọn itọsi ikarahun tabi awọn ifi ipo ni awọn ọna idiju le jẹ aropin didanubi. Gist awọn orin ti awọn ebute ni atilẹyin "Awọ otitọ". Awọn idanwo mi jẹrisi pe St, Alacritty ati awọn ebute orisun VTE ṣe atilẹyin Awọ otitọ ni pipe. Awọn ebute miiran ko dara daradara ni ọran yii ati, ni otitọ, paapaa ko ṣe afihan awọn awọ 256. Ni isalẹ o le wo iyatọ laarin atilẹyin Awọ Otitọ ni awọn ebute GNOME, st ati xterm, eyiti o ṣe iṣẹ ti o dara fun eyi pẹlu paleti awọ 256 wọn, ati urxvt, eyiti kii ṣe kuna idanwo nikan, ṣugbọn paapaa ṣafihan diẹ ninu awọn ohun kikọ paju dipo wọn.

Akopọ ti awọn emulators ebute

Diẹ ninu awọn ebute tun ṣe itupalẹ ọrọ fun awọn ilana URL lati jẹ ki awọn ọna asopọ tẹ. Eyi kan si gbogbo awọn ebute VTE ti o jẹri, lakoko ti urxvt nilo ohun itanna pataki kan ti yoo yi awọn URL pada ni titẹ tabi lilo ọna abuja keyboard kan. Awọn ebute miiran Mo ti ni idanwo awọn URL ifihan ni awọn ọna miiran.

Nikẹhin, aṣa tuntun ni awọn ebute ni aṣayan ti ifipamọ yi lọ. Fun apẹẹrẹ, st ko ni idaduro yi lọ; o ti wa ni pe olumulo yoo lo multiplexer ebute bi tmux ati Iboju GNU.

Alacritty tun ko ni awọn buffers backscroll, ṣugbọn yoo wa ni afikun laipe atilẹyin rẹ nitori “awọn esi ti o gbooro” lori koko yii lati ọdọ awọn olumulo. Yato si awọn ibẹrẹ wọnyi, gbogbo ebute ti Mo ti ni idanwo ti MO le rii awọn atilẹyin yiyi pada.

Àpapọ̀

Ni apakan keji ti ohun elo (ninu atilẹba awọn wọnyi ni awọn nkan oriṣiriṣi meji - isunmọ. ona) a yoo ṣe afiwe iṣẹ ṣiṣe, lilo iranti ati lairi. Ṣugbọn a ti le rii tẹlẹ pe diẹ ninu awọn ebute ni ibeere ni awọn aito pataki. Fun apẹẹrẹ, awọn olumulo ti n ṣiṣẹ nigbagbogbo pẹlu awọn iwe afọwọkọ RTL le fẹ lati gbero mlterm ati pterm, nitori wọn dara julọ ni mimu awọn iṣẹ ṣiṣe ti o jọra ju awọn miiran lọ. Konsole tun ṣe daradara. Awọn olumulo ti ko ṣiṣẹ pẹlu awọn iwe afọwọkọ RTL le yan nkan miiran.

Ni awọn ofin ti aabo lodi si fifi sii koodu irira, urxvt duro jade nitori imuse pataki ti aabo rẹ si iru ikọlu yii, eyiti o dabi pe o rọrun fun mi. Fun awon ti nwa fun diẹ ninu awọn agogo ati whistles, Konsole tọ a wo. Nikẹhin, o tọ lati ṣe akiyesi pe VTE jẹ ipilẹ ti o dara julọ fun awọn ebute, eyiti o ṣe iṣeduro atilẹyin awọ, idanimọ URL, ati bẹbẹ lọ. Ni wiwo akọkọ, ebute aiyipada ti o wa pẹlu agbegbe ayanfẹ rẹ le pade gbogbo awọn ibeere, ṣugbọn jẹ ki a fi ibeere yii silẹ ni ṣiṣi titi ti a yoo fi loye iṣẹ naa.

Jẹ ki a tẹsiwaju ibaraẹnisọrọ naa


Ni gbogbogbo, iṣẹ ti awọn ebute ninu funrararẹ le dabi iṣoro ti o jinna, ṣugbọn bi o ti wa ni jade, diẹ ninu wọn ṣafihan iyalẹnu giga lairi fun sọfitiwia ti iru ipilẹ ipilẹ kan. Paapaa nigbamii ti a yoo wo ohun ti aṣa ti a pe ni “iyara” (ni otitọ, eyi ni iyara yiyi) ati agbara iranti ti ebute naa (pẹlu akiyesi pe eyi ko ṣe pataki loni bi o ti jẹ ọdun mẹwa sẹhin).

Idaduro

Lẹhin iwadi ni kikun ti iṣẹ ebute, Mo wa si ipari pe paramita pataki julọ ni ọran yii ni lairi (ping). Ninu nkan rẹ "A tẹjade pẹlu idunnu" Pavel Fatin wo idaduro ti awọn olootu ọrọ lọpọlọpọ o si yọwi pe awọn ebute ni ọran yii le lọra ju awọn olootu ọrọ ti o yara ju. Ofin yii ni o mu mi lọ si ṣiṣe awọn idanwo ti ara mi ati kikọ nkan yii.

Ṣùgbọ́n kí ni àìfararọ, kí sì nìdí tó fi ṣe pàtàkì tó bẹ́ẹ̀? Ninu nkan rẹ, Fatin ṣalaye rẹ bi “idaduro laarin titẹ bọtini kan ati imudojuiwọn iboju ti o baamu” ati sọ asọye. "Itọsọna si Ibaraẹnisọrọ Eniyan-Kọmputa", tí ó sọ pé: “Ìdádúró nínú àbájáde ìríran lórí ìṣàfihàn kọ̀ǹpútà ní ipa pàtàkì lórí ìhùwàsí atẹ̀wé àti ìtẹ́lọ́rùn.”

Fatin ṣàlàyé pé ping yìí ní àbájáde jíjinlẹ̀ ju ìtẹ́lọ́rùn lásán lọ pé: “títẹ̀wé máa ń lọ lọ́ra, àwọn àṣìṣe púpọ̀ máa ń wáyé, ojú àti iṣan iṣan sì ń pọ̀ sí i.” Ni awọn ọrọ miiran, idaduro nla le ja si awọn typos ati tun didara koodu kekere, bi o ṣe nfa si afikun fifuye oye lori ọpọlọ. Ṣugbọn kini o buru julọ ni pe ping “mu oju ati igara iṣan pọ si,” eyiti o dabi pe o tumọ si idagbasoke ti awọn ipalara iṣẹ ni ojo iwaju (Nkqwe, onkowe tumo si awọn iṣoro pẹlu awọn iṣan ti awọn oju, pada, apá ati, dajudaju, iran - isunmọ. ona) nitori wahala atunwi.

Diẹ ninu awọn ipa wọnyi ti mọ fun igba pipẹ, ati awọn abajade iwadi, ti a gbejade pada ni ọdun 1976 ninu iwe akọọlẹ Ergonomics, sọ pe idaduro ti 100 milliseconds "ṣe ipalara titẹ titẹ ni pataki." Laipẹ diẹ sii, Itọsọna olumulo GNOME ti ṣafihan itewogba esi akoko ni 10 milliseconds, ati pe ti o ba lọ siwaju, lẹhinna Iwadi Microsoft fihan pe 1 millisecond jẹ apẹrẹ.

Fatin ṣe awọn idanwo rẹ lori awọn olootu ọrọ; o ṣẹda ohun elo to ṣee gbe ti a npe ni Atẹwe, eyiti Mo lo lati ṣe idanwo ping ni awọn emulators ebute. Fiyesi pe idanwo naa ni a ṣe ni ipo kikopa: ni otitọ, a nilo lati ṣe akiyesi titẹ sii mejeeji (bọtini, adari USB, bbl) ati abajade (ifipamọ kaadi fidio, atẹle) lairi. Gẹgẹbi Fatin, ni awọn atunto aṣoju jẹ nipa 20 ms. Ti o ba ni ohun elo ere, o le ṣaṣeyọri nọmba yii ni 3 milliseconds nikan. Niwọn igba ti a ti ni iru ohun elo iyara bẹ tẹlẹ, ohun elo ko ni lati ṣafikun airi tirẹ. Ibi-afẹde Fatin ni lati mu lairi ohun elo si 1 millisecond, tabi paapaa ṣaṣeyọri titẹ laisi idiwon idaduro, bawo ni IntelliJ IDEA 15.

Eyi ni awọn abajade ti awọn iwọn mi, ati diẹ ninu awọn abajade Fatin, lati fihan pe idanwo mi gba pẹlu awọn idanwo rẹ:

Akopọ ti awọn emulators ebute

Ohun akọkọ ti o kọlu mi ni akoko idahun to dara julọ ti awọn eto agbalagba bii xterm ati mlterm. Pẹlu airi iforukọsilẹ ti o buruju (2,4 ms), wọn ṣe dara julọ ju ebute ode oni ti o yara ju (10,6 ms fun st). Ko si ebute ode oni ti o ṣubu ni isalẹ iloro millisecond 10. Ni pataki, Alacritty kuna lati pade ẹtọ “emulator ebute ti o yara ju ti o wa”, botilẹjẹpe awọn ikun rẹ ti ni ilọsiwaju lati atunyẹwo akọkọ rẹ ni ọdun 2017. Nitootọ, awọn onkọwe ti ise agbese na mọ ipo naa ati pe wọn n ṣiṣẹ lati mu ilọsiwaju pọ si. O yẹ ki o tun ṣe akiyesi pe Vim ni lilo GTK3 jẹ aṣẹ titobi losokepupo ju ẹlẹgbẹ GTK2 rẹ. Lati eyi a le pinnu pe GTK3 ṣẹda airi afikun, ati pe eyi ni afihan ni gbogbo awọn ebute miiran ti o lo (Terminator, Xfce4 Terminal ati GNOME Terminal).

Sibẹsibẹ, awọn iyatọ le ma ṣe akiyesi si oju. Gẹgẹ bi Fatin ṣe ṣalaye, “ko ni lati mọ idaduro naa ki o le ni ipa lori rẹ.” Fatin tun kilọ nipa iyapa boṣewa: “eyikeyi idamu ninu aipe (jitter) ṣẹda aapọn afikun nitori airotẹlẹ wọn.”

Akopọ ti awọn emulators ebute

Awonya loke ti wa ni ya lori funfun Debian 9 (na) pẹlu i3 window faili. Ayika yii ṣe agbejade awọn abajade to dara julọ ni awọn idanwo lairi. Bi o ti wa ni jade, GNOME ṣẹda afikun ping ti 20 ms fun gbogbo awọn wiwọn. Alaye ti o ṣeeṣe fun eyi ni wiwa awọn eto pẹlu sisẹ amuṣiṣẹpọ ti awọn iṣẹlẹ titẹ sii. Fatin funni ni apẹẹrẹ fun iru ọran bẹẹ Iṣẹ iṣẹ, eyi ti o ṣe afikun idaduro nipasẹ sisẹ gbogbo awọn iṣẹlẹ titẹ sii ni iṣọkan. Nipa aiyipada, GNOME tun wa pẹlu oluṣakoso window kan Mutter, eyi ti o ṣẹda afikun Layer ti buffering, eyi ti o ni ipa lori ping ati ki o ṣe afikun ni o kere 8 milliseconds ti lairi.

Akopọ ti awọn emulators ebute

Yi lọ iyara

Idanwo t’okan jẹ idanwo “iyara” tabi “bandwidth” ti aṣa, eyiti o ṣe iwọn bawo ni iyara ti ebute le yi oju-iwe kan han lakoko ti o n ṣafihan iye ọrọ pupọ loju iboju. Awọn oye ti idanwo naa yatọ; idanwo atilẹba ni lati ṣe agbekalẹ okun ọrọ kanna ni lilo pipaṣẹ seq. Awọn idanwo miiran pẹlu idanwo Thomas E. Dickey (olutọju xterm), eyiti o leralera faili terminfo.src ti wa ni igbasilẹ. Ninu atunyẹwo miiran ti iṣẹ ebute Den Luu nlo okun koodu koodu base32 ti awọn baiti ID, eyiti o jẹjade si ebute nipa lilo ologbo. Luu ka iru idanwo bẹ lati jẹ “bi asan ni ala bi eniyan ṣe le foju inu” o daba ni lilo esi ebute bi metiriki akọkọ dipo. Dickey tun pe idanwo rẹ sinilona. Sibẹsibẹ, awọn onkọwe mejeeji jẹwọ pe bandiwidi window ebute le jẹ ọrọ kan. Luu ṣe awari Emacs Eshell didi nigbati o nfihan awọn faili nla, ati pe Dickey ṣe iṣapeye ebute naa lati yọkuro kuro ni ilọra wiwo xtrerm. Nitorinaa iteriba tun wa si idanwo yii, ṣugbọn niwọn igba ti ilana imupadabọ yatọ pupọ lati ebute si ebute, o tun le ṣee lo bi paati idanwo lati ṣe idanwo awọn aye miiran.

Akopọ ti awọn emulators ebute

Nibi ti a ba ri rxvt ati st fa niwaju ti awọn idije, atẹle nipa awọn Elo Opo Alacritty, eyi ti o jẹ apẹrẹ pẹlu kan aifọwọyi lori išẹ. Nigbamii ni Xfce ( idile VTE) ati Konsole, eyiti o fẹrẹẹ lemeji ni iyara. Ikẹhin ni xterm, eyiti o lọra ni igba marun ju rxvt. Lakoko idanwo naa, xterm tun ya pupọ, ti o jẹ ki ọrọ gbigbe ṣoro lati rii paapaa ti o ba jẹ laini kanna. Konsole yara, ṣugbọn o jẹ ẹtan ni awọn igba: ifihan yoo di didi lati igba de igba, ti nfihan ọrọ apa kan tabi kii ṣe afihan rara. Awọn ebute miiran ṣe afihan awọn gbolohun ọrọ ni kedere, pẹlu st, Alacritty, ati rxvt.

Dickey ṣalaye pe awọn iyatọ iṣẹ jẹ nitori apẹrẹ ti awọn buffers yiyi ni awọn ebute oriṣiriṣi. Ni pataki, o fi ẹsun kan rxvt ati awọn ebute miiran ti “ko tẹle awọn ofin gbogbogbo”:

“Ko dabi xterm, rxvt ko gbiyanju lati ṣafihan gbogbo awọn imudojuiwọn. Ti o ba ṣubu lẹhin, yoo kọ diẹ ninu awọn imudojuiwọn lati yẹ. Eyi ni ipa nla lori iyara yiyi ti o han ju lori eto iranti inu lọ. Idipada kan ni pe ere idaraya ASCII jẹ aiṣedeede diẹ. ”

Lati ṣatunṣe ilọra xterm ti a rii yii, Dickey daba lilo awọn orisun sareYi lọ, gbigba xterm laaye lati sọ diẹ ninu awọn imudojuiwọn iboju lati tẹsiwaju pẹlu sisan. Awọn idanwo mi jẹrisi pe fastScroll ṣe ilọsiwaju iṣẹ ati mu xterm wa ni deede pẹlu rxvt. Eyi jẹ, sibẹsibẹ, kuku crutch ti o ni inira, bi Dickey tikararẹ ṣe alaye: “nigbakugba xterm - bii konsole - dabi pe o da duro bi o ti n duro de eto tuntun ti awọn imudojuiwọn iboju lẹhin diẹ ninu ti yọkuro.” Ni iṣọn yii, o dabi pe awọn ebute miiran ti rii adehun ti o dara julọ laarin iyara ati iduroṣinṣin ifihan.

Lilo awọn oluşewadi

Laibikita boya o jẹ oye lati gbero iyara yiyi bi metric iṣẹ, idanwo yii gba wa laaye lati ṣe adaṣe fifuye lori awọn ebute, eyiti o jẹ ki a ṣe iwọn awọn aye miiran bii iranti tabi lilo disk. Awọn metiriki naa ni a gba nipasẹ ṣiṣe idanwo pàtó kan atele labẹ Python ilana monitoring. O gba data mita ijakadi() fun ru_maxrss, iye ru_oublock и ru_inblock ati aago ti o rọrun.

Akopọ ti awọn emulators ebute

Ninu idanwo yii, ST gba aye akọkọ pẹlu iwọn lilo iranti ti o kere julọ ti 8 MB, eyiti kii ṣe iyalẹnu ni imọran pe imọran akọkọ ti apẹrẹ jẹ ayedero. mlterm, xterm ati rxvt jẹ diẹ diẹ sii - nipa 12 MB. Abajade akiyesi miiran jẹ Alacritty, eyiti o nilo 30 MB lati ṣiṣẹ. Lẹhinna awọn ebute ti idile VTE wa pẹlu awọn isiro lati 40 si 60 MB, eyiti o jẹ pupọ pupọ. Lilo yii le ṣe alaye nipasẹ otitọ pe awọn ebute wọnyi lo awọn ile-ikawe ipele giga, fun apẹẹrẹ, GTK. Konsole wa ni ikẹhin pẹlu 65MB ti agbara iranti lakoko awọn idanwo, botilẹjẹpe eyi le jẹ idalare nipasẹ awọn ẹya pupọ ti awọn ẹya.

Ti a ṣe afiwe si awọn abajade iṣaaju ti o gba ni ọdun mẹwa sẹhin, gbogbo awọn eto bẹrẹ lati jẹ akiyesi iranti diẹ sii. Xterm lo lati nilo 4 MB, ṣugbọn nisisiyi o nilo 15 MB kan ni ibẹrẹ. Ilọsi iru kan wa ni lilo fun rxvt, eyiti o nilo 16 MB lati inu apoti. Xfce Terminal gba 34 MB, eyiti o tobi ni igba mẹta ju iṣaaju lọ, ṣugbọn GNOME Terminal nilo 20 MB nikan. Nitoribẹẹ, gbogbo awọn idanwo iṣaaju ni a ṣe lori faaji 32-bit. Ni LCA 2012 Rusty Russell Mo ti so fun, pe ọpọlọpọ awọn idi arekereke diẹ sii ti o le ṣalaye ilosoke ninu lilo iranti. Lẹhin ti o ti sọ bẹ, a n gbe ni akoko kan nibiti a ni gigabytes ti iranti, nitorinaa a yoo ṣakoso bakan.

Sibẹsibẹ, Emi ko le ṣe iranlọwọ ṣugbọn lero pe ipinfunni iranti diẹ sii si nkan bi ipilẹ bi ebute naa jẹ isonu ti awọn orisun. Awọn eto wọnyi yẹ ki o jẹ eyiti o kere julọ ti o kere julọ, o yẹ ki o ni anfani lati ṣiṣẹ lori eyikeyi “apoti”, paapaa apoti bata, ti a ba wa si aaye nibiti wọn nilo lati ni ipese pẹlu awọn eto Linux (ati pe o mọ pe yoo jẹ bẹ. ) . Ṣugbọn pẹlu awọn nọmba wọnyi, lilo iranti yoo di ariyanjiyan ni ọjọ iwaju ni eyikeyi agbegbe ti n ṣiṣẹ awọn ebute lọpọlọpọ yatọ si diẹ ti o fẹẹrẹfẹ ati opin julọ ni awọn agbara. Lati sanpada fun eyi, GNOME Terminal, Konsole, urxvt, Terminator ati Xfce Terminal ni ipo Daemon kan ti o fun ọ laaye lati ṣakoso awọn ebute lọpọlọpọ nipasẹ ilana kan, diwọn agbara iranti wọn.

Akopọ ti awọn emulators ebute

Lakoko awọn idanwo mi, Mo wa si abajade airotẹlẹ miiran nipa kika kika disk: Mo nireti lati rii nkankan rara nibi, ṣugbọn o wa ni pe diẹ ninu awọn ebute kọ data ti o pọ julọ si disk. Nitorinaa, ile-ikawe VTE nitootọ tọju ifipamọ lilọ kiri lori disiki (ẹya yii ti ṣe akiyesi pada ni ọdun 2010, ati pe eyi tun n ṣẹlẹ). Ṣugbọn ko dabi awọn imuse ti agbalagba, ni bayi o kere ju data yii ti jẹ fifipamọ nipa lilo AES256 GCM (lati ẹya 0.39.2). Ṣugbọn ibeere ti o ni oye waye: kini o ṣe pataki nipa ile-ikawe VTE ti o nilo iru ọna ti kii ṣe boṣewa si imuse…

ipari

Ni apakan akọkọ ti nkan naa, a rii pe awọn ebute orisun VTE ni awọn ẹya ti o dara, ṣugbọn ni bayi a rii pe eyi wa pẹlu diẹ ninu awọn idiyele iṣẹ. Bayi iranti kii ṣe ọran nitori gbogbo awọn ebute VTE ni a le ṣakoso nipasẹ ilana Daemon, eyiti o ṣe idiwọ ifẹkufẹ wọn. Bibẹẹkọ, awọn eto agbalagba ti o ni awọn idiwọn ti ara lori iye Ramu ati awọn buffers ekuro le tun nilo awọn ẹya iṣaaju ti awọn ebute, nitori wọn jẹ awọn orisun ti o dinku pupọ. Botilẹjẹpe awọn ebute VTE ṣe daradara ni awọn idanwo igbejade (yilọ), aiwọn ifihan wọn wa loke ala ti a ṣeto sinu Itọsọna Olumulo GNOME. VTE Difelopa yẹ ki o jasi gba yi sinu iroyin. Ti a ba ṣe akiyesi pe paapaa fun awọn olumulo Linux alakobere ti o pade ebute kan jẹ eyiti ko ṣeeṣe, wọn le jẹ ki o jẹ ore olumulo diẹ sii. Fun awọn geeks ti o ni iriri, iyipada lati ebute aiyipada le paapaa tumọ si igara oju ti o dinku ati agbara lati yago fun awọn ipalara ti o ni ibatan iṣẹ iwaju ati awọn aisan nitori awọn akoko iṣẹ pipẹ. Laanu, nikan xterm atijọ ati mlterm mu wa si ẹnu-ọna ping idan ti 10 milliseconds, eyiti ko ṣe itẹwọgba fun ọpọlọpọ.

Awọn wiwọn ala tun fihan pe nitori idagbasoke ti awọn agbegbe ayaworan Linux, awọn olupilẹṣẹ ni lati ṣe nọmba awọn adehun. Diẹ ninu awọn olumulo le fẹ lati wo awọn alakoso window deede bi wọn ṣe pese idinku ping pataki. Laanu, ko ṣee ṣe lati wiwọn lairi fun Wayland: eto Typometer ti Mo lo ni a ṣẹda fun kini Wayland ti ṣe lati ṣe idiwọ: ṣe amí lori awọn window miiran. Mo lero wipe Wayland compositing ṣe dara ju X.org, ati ki o Mo tun lero wipe ni ojo iwaju ẹnikan yoo wa ona kan lati wiwọn lairi ni yi ayika.

orisun: www.habr.com

Fi ọrọìwòye kun