Beagan fhaclan bhon bhiĂšro eadar-theangachaidh againn: mar as trice bidh a h-uile duine aâ feuchainn ri na stuthan agus na foillseachaidhean as Ăšire eadar-theangachadh, agus chan eil sinn idir idir. Ach chan e cinn-uidhe rudeigin a thèid Ăšrachadh uair san t-seachdain. Mar sin, tha sinn air eadar-theangachadh dhut artaigil le Antoine BeauprĂŠ, a chaidh fhoillseachadh as t-earrach 2018: a dhâ aindeoin a âaoisâ mòr a rèir inbhean an latha an-diugh, nar beachd, chan eil an stuth air a bhuntanas a chall idir. A bharrachd air an sin, bâ e sreath de dhĂ artaigil a bha seo bho thĂšs, ach chuir sinn romhainn an cur còmhla ann an aon phost mòr.

Tha Ă ite sònraichte aig crĂŹochan ann an eachdraidh coimpiutaireachd, ach anns na deicheadan mu dheireadh chaidh an toirt orra a bhith beò ri taobh na loidhne-Ă ithne mar a dh'fhĂ sas eadar-aghaidh grafaigeach uile-lĂ thaireach. an Ă ite an fheadhainn aca fhèin , a bha, an uair sin, mar atharrachadh air siostaman stèidhichte air cairtean punched agus suidsichean tog. Bidh sgaoilidhean Ăšr-nodha aâ tighinn le measgachadh de emuladairean crĂŹochnachaidh de gach cumadh agus dath. Agus ged a tha mòran riaraichte leis aâ chrĂŹoch Ă bhaisteach a tha an Ă rainneachd obrach aâ toirt seachad, bidh cuid gu pròiseil aâ cleachdadh bathar-bog fĂŹor exotic gus an deasaiche slige no teacsa as fheĂ rr leotha a ruith. Ach, mar a chĂŹ sinn bhon artaigil seo, cha deach a h-uile ceann-uidhe a chruthachadh san aon ĂŹomhaigh: tha iad gu math eadar-dhealaichte ann an comas-gnĂŹomh, meud agus coileanadh.
Tha tuill tèarainteachd iongantach aig cuid de chrĂŹochan, agus tha seata ghnĂŹomhan gu tur eadar-dhealaichte aig aâ mhòr-chuid, bho thaic airson eadar-aghaidh tabbed gu sgrĂŹobhadh. Ged a tha sinn , tha an artaigil seo na Ăšrachadh air an stuth a bhâ ann roimhe a chuidicheas luchd-leughaidh gus faighinn a-mach dè an ceann-uidhe a chleachdas iad ann an 2018. Bidh a 'chiad leth den artaigil a' dèanamh coimeas eadar feartan, agus tha an dĂ rna leth a 'measadh coileanadh.
Seo na cinn-uidhe a rinn mi ath-sgrĂšdadh:

Is dòcha nach iad seo na dreachan as Ăšire, oir bha mi cuingealaichte ris na togail stĂ ball aig Ă m sgrĂŹobhaidh air an robh mi comasach air a roiligeadh a-mach. Debian 9 no Fedora 27. Is e Alacritty an aon eisgeachd. Tha e na shliochd de chrĂŹochan luathaichte GPU agus tha e sgrĂŹobhte ann an cĂ nan neo-Ă bhaisteach is Ăšr airson na h-obrach seo - Rust. Chuir mi crĂŹochan lĂŹn a-mach Ă s an lèirmheas agam (aâ gabhail a-steach an fheadhainn air ), oir sheall deuchainnean tòiseachaidh an coileanadh fĂŹor dhroch.
Taic Unicode
Thòisich mi na deuchainnean agam le taic Unicode. Bâ e aâ chiad deuchainn air na cinn-uidhe an sreang Unicode a thaisbeanadh bho : âĂŠ, Î, Đ, ×§, Ů , ŕš, ă, ĺś, č and ë§.â Tha an deuchainn shĂŹmplidh seo aâ sealltainn an urrainn don cheann-uidhe obrachadh ceart air feadh an t-saoghail. chan eil ceann-uidhe xterm aâ taisbeanadh caractar Arabach ann an rèiteachadh bunaiteach:

Gu gnĂ thach, bidh xterm aâ cleachdadh aâ chruth-clò clasaigeach âstèidhichteâ, a tha, a rèir , aig a bheil "còmhdach susbainteach Unicode bho 1997". Tha rudeigin aâ dol air adhart sa chruth-clò seo a bheir air aâ charactar nochdadh mar fhrèam bĂ n agus is ann dĂŹreach nuair a thèid cruth-clò an teacsa Ă rdachadh gu 20+ puing a thòisicheas an caractar mu dheireadh aâ nochdadh gu ceart. Ach, tha an ârèiteachadhâ seo aâ briseadh taisbeanadh charactaran Unicode eile:

Chaidh na dealbhan-sgrĂŹn seo a thogail air Fedora 27 oir thug e toraidhean nas fheĂ rr na Debian 9, far nach bâ urrainn do chuid de na dreachan teirminĂŠil nas sine (gu sònraichte mlterm) dèiligeadh ri cruthan-clò gu ceart. Gu fortanach, chaidh seo a chĂ radh ann an dreachan nas fhaide air adhart.
A-nis mothaich mar a tha an loidhne air a thaisbeanadh ann an xterm. Tha e a 'tionndadh a-mach gu bheil an samhla Mem agus Semitic a leanas thoir iomradh air sgriobtaichean stoidhle RTL (), mar sin gu teicnigeach bu chòir dhaibh a bhith air an taisbeanadh bho dheas gu clĂŹ. Bidh brobhsairean lĂŹn leithid Firefox 57 aâ lĂ imhseachadh na loidhne gu h-Ă rd gu ceart. Is e tionndadh nas sĂŹmplidh de theacsa RTL am facal "" ann an Eabhruidheach (). ag rĂ dh na leanas:
âChan urrainn dha mòran de phrògraman coimpiutair teacsa dĂ -thaobhach a thaisbeanadh gu ceart. Mar eisimpleir, tha an t-ainm Eabhra "Sarah" air a dhèanamh suas de na caractaran sin (׊) (a tha a 'nochdadh air an lĂ imh dheis), an uairsin resh (ר) agus mu dheireadh e (×) (a bu chòir nochdadh air an taobh chlĂŹ).
Bidh mòran ionadan-uidhe aâ fĂ iligeadh na deuchainn seo: Alacritty, cinn-uidhe Gnome agus XFCE a thĂ inig bho VTE, urxvt, st agus xterm aâ taisbeanadh âSaraâ ann an òrdugh cĂšil, mar gum biodh sinn air an t-ainm a sgrĂŹobhadh mar âArasâ.

Is e duilgheadas eile le teacsaichean dĂ -thaobhach gum feum iad a bhith air an co-thaobhadh dòigh air choireigin, gu sònraichte nuair a thig e gu bhith aâ measgachadh theacsaichean RTL agus LTR. Bu chòir do sgriobtaichean RTL ruith bho thaobh deas na h-uinneige crĂŹche, ach dè a bu chòir tachairt dha cinn-uidhe a tha gu bunaiteach airson Beurla LTR? Chan eil uidheamachdan sònraichte aig aâ mhòr-chuid dhiubh agus tha iad aâ co-thaobhadh a h-uile teacsa air an taobh chlĂŹ (aâ gabhail a-steach Konsole). Is e na h-eisgeadan pterm agus mlterm, a tha aâ cumail ris na h-inbhean agus aâ co-thaobhadh nan loidhnichean sin gu ceart.

DĂŹon cuir a-steach
Is e an ath fheart riatanach a chomharraich mi dĂŹon an-aghaidh cuir a-steach. Ged a tha fios gu farsaing gu bheil geasan mar:
$ curl http://example.com/ | shnan òrdughan putaidh cur an gnĂŹomh còd, is e glè bheag de dhaoine a tha fios gum faod òrdughan falaichte a dhol a-steach don chonsail nuair a bhios iad aâ dèanamh lethbhreac agus pasgadh bho bhrobhsair lĂŹn, eadhon Ă s deidh sgrĂšdadh faiceallach. gu sgoinneil aâ sealltainn cho neo-chiontach a tha an Ă ithne:
git clone git: //git.kernel.org/pub/scm/utils/kup/kup.gitaâ tionndadh gu bhith na leithid de bhuaireadh nuair a thèid a chuir bho lĂ rach-lĂŹn Horn a-steach don phort-adhair:
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.gitCiamar a tha e ag obair? Tha còd droch-rĂšnach air a thoirt a-steach don bhloc , a thèid a ghluasad a-mach Ă sealladh an neach-cleachdaidh aâ cleachdadh CSS.
air a dhealbhadh gu soilleir gus ionnsaighean mar sin a neodachadh. Anns aâ mhodh seo, bidh cinn-uidhe aâ cuairteachadh an teacsa pasted ann am paidhir de shreathan teicheadh ââââsònraichte gus innse don t-slige mu thĂšs an teacsa. Tha seo ag innse don t-slige gun urrainn dha caractaran sònraichte a leigeil seachad a dhâ fhaodadh a bhith san teacsa pasted. Bidh a h-uile inneal-crĂŹochnachaidh air ais chun an xterm venerable aâ toirt taic don fheart seo, ach airson a dhol seachad ann am modh Bracketed feumaidh taic bhon t-slige no an aplacaid a tha aâ ruith air aâ cheann-uidhe. Mar eisimpleir, cleachdadh bathar-bog (an aon Bash), feumach air faidhle ~/.inputrc:
set enable-bracketed-paste onGu mĂŹ-fhortanach, tha lĂ rach-deuchainn Horn cuideachd aâ sealltainn mar as urrainn dhut an dĂŹon seo a sheachnadh tro chruth an teacsa fhèin agus ro-luath aâ cur a-steach modh Bracketed ris. Bidh seo ag obair leis nach eil cuid de chrĂŹochan aâ sĂŹoladh sreathan teicheadh ââââgu ceart mus cuir iad an cuid fhèin ris. Mar eisimpleir, nam broinn cha bâ urrainn dhomh a-riamh na deuchainnean Konsole a chrĂŹochnachadh gu soirbheachail eadhon leis an rèiteachadh ceart .inputrc faidhle. Tha seo aâ ciallachadh gun urrainn dhut rèiteachadh an t-siostaim agad a thruailleadh gu furasta ri linn tagradh gun taic no slige nach eil air a rèiteachadh gu ceart. Tha seo gu sònraichte cunnartach nuair a bhios tu aâ logadh a-steach gu frithealaichean iomallach, far nach eil obair rèiteachaidh faiceallach cho cumanta, gu sònraichte ma tha tòrr innealan iomallach mar sin agad.
Is e fuasgladh math air an duilgheadas seo am plugan dearbhaidh paste airson aâ chrĂŹoch urxvt, a tha dĂŹreach ag iarraidh cead teacsa sam bith anns a bheil loidhnichean Ăšra a chuir a-steach. Chan eil mi air roghainn nas tèarainte a lorg airson an ionnsaigh teacsa a mhĂŹnich Horn.
Tabaichean agus pròifilean
Is e feart mòr-chòrdte an-drĂ sta taic airson eadar-aghaidh tabbed, a mhĂŹnicheas sinn mar aon uinneag crĂŹche anns a bheil grunn ionadan-uidhe eile. Tha an gnĂŹomh seo eadar-dhealaichte airson diofar chrĂŹochan, agus ged nach eil cinn-uidhe xterm traidiseanta aâ toirt taic do thabaichean idir, tha an gnĂŹomh seo aig incarnations terminal nas Ăšire leithid Xfce Terminal, GNOME Terminal agus Konsole. Bidh Urxvt cuideachd aâ toirt taic do thabaichean, ach dĂŹreach ma chleachdas tu plugan. Ach a thaobh taic tabaichean fhèin, is e Terminator an stiĂširiche gun teagamh: chan e a-mhĂ in gu bheil e aâ toirt taic dha tabaichean, ach faodaidh e cuideachd cinn-uidhe a chuir air dòigh ann an òrdugh sam bith (faic an dealbh gu h-ĂŹosal).

Is e feart eile de Terminator an comas na tabaichean sin âbuidheannâ còmhla agus na h-aon phrĂŹomh bhuillean a chuir gu ioma-cheann-uidhe aig an aon Ă m, aâ toirt seachad inneal amh airson a bhith aâ coileanadh mòr-obraichean air ioma-fhrithealaiche aig an aon Ă m. Tha feart coltach ris cuideachd ga chur an gnĂŹomh ann an Konsole. Gus am feart seo a chleachdadh ann an cinn-uidhe eile, feumaidh tu bathar-bog treas-phĂ rtaidh a chleachdadh leithid , no .
Bidh tabaichean ag obair gu sònraichte math nuair a thèid an cĂ radh le pròifilean: mar eisimpleir, faodaidh aon taba a bhith agad airson post-d, taba eile airson cabadaich, agus mar sin air adhart. Tha seo aâ faighinn deagh thaic bho Konsole Terminal agus GNOME Terminal. Leigidh an dĂ chuid le gach taba a phròifil fhèin a chuir air bhog gu fèin-ghluasadach. Bidh Terminator cuideachd aâ toirt taic do phròifilean, ach cha bâ urrainn dhomh dòigh a lorg gus prògraman sònraichte a chuir air bhog gu fèin-ghluasadach nuair a dhâ fhosglas tu taba sònraichte. Chan eil bun-bheachd âpròifilâ aig cinn-uidhe eile idir.
Ruffles
Is e an rud mu dheireadh a bhios mi aâ còmhdach sa chiad phĂ irt den artaigil seo coltas nan cinn-uidhe. Mar eisimpleir tha GNOME, Xfce agus urxvt aâ toirt taic do fhollaiseachd, ach tha iad air taic airson ĂŹomhaighean cĂšil a leigeil sĂŹos o chionn ghoirid, aâ toirt air cuid de luchd-cleachdaidh gluasad chun cheann-uidhe . Gu pearsanta, tha mi toilichte leis agus tha e sĂŹmplidh x ghoireasan, a tha aâ suidheachadh an t-seata bhunaiteach de dhathan cĂšl-raoin airson urxvt. Ach, faodaidh cuspairean dath neo-Ă bhaisteach duilgheadasan adhbhrachadh cuideachd. Mar eisimpleir, le tagraidhean и , leis gu bheil iad mu thrĂ th aâ cleachdadh na dathan aca fhèin.
cha do chuir iad taic ri dathan, agus gu tric bha feadhainn Ăšra air an cuingealachadh ri paileas 256-dath. Dha luchd-cleachdaidh adhartach a bhios aâ stoidhle na cinn-uidhe aca, faodaidh molaidhean slige no bĂ raichean inbhe ann an dòighean iom-fhillte a bhith na chuingealachadh neònach. slighean aig a bheil taic âTrue Colourâ aig cinn-uidhe. Tha na deuchainnean agam aâ dearbhadh gu bheil cinn-uidhe stèidhichte air st, Alacritty agus VTE aâ toirt taic foirfe dha True Colour. Chan eil cinn-uidhe eile aâ soirbheachadh gu math a thaobh seo agus, gu dearbh, chan eil iad eadhon aâ taisbeanadh 256 dathan. Gu h-ĂŹosal chĂŹ thu an eadar-dhealachadh eadar taic True Colour ann an cinn-uidhe GNOME, st agus xterm, a bhios aâ dèanamh obair mhath le seo leis aâ phaileid dhathan 256 aca, agus urxvt, a tha chan ann a-mhĂ in aâ fĂ iligeadh na deuchainn, ach eadhon aâ sealltainn cuid de charactaran frasach nan Ă ite.

Bidh cuid de chrĂŹochan cuideachd aâ sgrĂšdadh teacsa airson pĂ train URL gus ceanglaichean a dhèanamh comasach cliogadh. Tha seo aâ buntainn ris a h-uile inneal-crĂŹochnachaidh a thig bho VTE, fhad âs a tha urxvt aâ feumachdainn plugan sònraichte a dh âatharraicheas URLan le cliog no aâ cleachdadh ath-ghoirid meur-chlĂ r. CrĂŹochan eile a rinn mi deuchainn air URLan taisbeanaidh ann an dòighean eile.
Mu dheireadh, is e gluasad Ăšr ann an cinn-uidhe roghainn a âbhufair scrollaidh. Mar eisimpleir, chan eil bufair scrollaidh aig st; thathas aâ gabhail ris gun cleachd an neach-cleachdaidh ioma-fhillteadair crĂŹochnachaidh mar tmux agus .
Tha dĂŹth bufairean backscroll aig Alacritty cuideachd, ach a thaic mar thoradh air âfios air ais farsaingâ air aâ chuspair seo bho luchd-cleachdaidh. A bharrachd air na h-Ă rdachaidhean sin, tha a h-uile inneal-crĂŹochnachaidh a rinn mi deuchainn a lorg mi aâ toirt taic do scrollaidh cĂšil.
Subtotals
Anns an dà rna pà irt den stuth (anns an dreach thÚsail bha dà artaigil eadar-dhealaichte ann - timcheall air. lain) nÏ sinn coimeas eadar coileanadh, cleachdadh cuimhne agus latency. Ach chÏ sinn mar-thà gu bheil fÏor easbhaidhean aig cuid de na cinn-uidhe sin. Mar eisimpleir, is dòcha gum bi luchd-cleachdaidh a bhios ag obair gu cunbhalach le sgriobtaichean RTL airson beachdachadh air mlterm agus pterm, leis gu bheil iad nas fheà rr air gnÏomhan coltach ris a là imhseachadh na feadhainn eile. Rinn Konsole gu math cuideachd. Faodaidh luchd-cleachdaidh nach eil ag obair le sgriobtaichean RTL rudeigin eile a thaghadh.
A thaobh dĂŹon an aghaidh cuir a-steach còd droch-rĂšnach, tha urxvt a âseasamh a-mach air sgĂ th a bhuileachadh sònraichte de dhĂŹon an aghaidh an seòrsa ionnsaigh seo, a tha gu cinnteach aâ coimhead iomchaidh dhomh. Dhaibhsan a tha aâ coimhead airson glagan is fĂŹdeagan, is fhiach sĂšil a thoirt air Konsole. Mu dheireadh, is fhiach a bhith mothachail gu bheil VTE na dheagh bhunait airson cinn-uidhe, a tha a âgealltainn taic dath, aithneachadh URL, agus mar sin air adhart. Aig aâ chiad sealladh, is dòcha gum bi an inneal-crĂŹochnachaidh bunaiteach a thig leis an Ă rainneachd as fheĂ rr leat a âcoinneachadh ris na riatanasan gu lèir, ach fĂ gaidh sinn aâ cheist seo fosgailte gus an tuig sinn an coileanadh.
Leanaidh sinn leis aâ chòmhradh
San fharsaingeachd, is dòcha gu bheil coileanadh cinn-uidhe ann fhèin aâ coimhead mar dhuilgheadas fada, ach mar a thionndaidh e, tha cuid dhiubh aâ nochdadh latency iongantach Ă rd airson bathar-bog de sheòrsa cho bunaiteach. Cuideachd an ath rud seallaidh sinn ris an rud ris an canar gu traidiseanta âastarâ (gu dearbh, is e seo an astar scrollaidh) agus caitheamh cuimhne an inneal-crĂŹochnachaidh (leis an rabhadh nach eil seo cho èiginneach an-diugh âs a bha e o chionn deicheadan).
DĂ il
Ăs deidh sgrĂšdadh mionaideach air coileanadh crĂŹochnachaidh, thĂ inig mi chun cho-dhĂšnadh gur e am paramadair as cudromaiche a thaobh seo an latency (ping). Anns an artaigil aige Choimhead Pavel Fatin air cho fada âs a bha diofar luchd-deasachaidh teacsa agus thuirt e gum faodadh cinn-uidhe a thaobh seo a bhith nas slaodaiche na an luchd-deasachaidh teacsa as luaithe. Bâ e am beachd seo a thug orm mu dheireadh na deuchainnean agam fhèin a ruith agus an artaigil seo a sgrĂŹobhadh.
Ach dè a thâ ann an latency, agus carson a tha e cho cudromach? Anns an artaigil aige, mhĂŹnich Fatin e mar âan dĂ il eadar putadh air iuchair agus an Ăšrachadh sgrion co-fhreagarrachâ agus thuirt e , a tha ag rĂ dh: âTha buaidh chudromach aig an dĂ il ann am fios air ais lèirsinneach air taisbeanadh coimpiutair air giĂšlan agus sĂ sachd clò-bhualadairean.â
Tha Fatin aâ mĂŹneachadh gu bheil builean nas doimhne aig aâ phing seo na dĂŹreach sĂ sachadh: âbidh taidhpeadh aâ fĂ s nas slaodaiche, bidh barrachd mhearachdan aâ tachairt, agus bidh teannachadh sĂšla is fèithe ag Ă rdachadh.â Ann am faclan eile, faodaidh dĂ il mhòr leantainn gu typos agus cuideachd cĂ ileachd còd nas ĂŹsle, leis gu bheil e a âleantainn gu uallach inntinneil a bharrachd air an eanchainn. Ach is e an rud a tha nas miosa gu bheil ping âaâ meudachadh cuideam sĂšla is fèithe, âa tha coltach ri bhith aâ ciallachadh san Ă m ri teachd (A rèir coltais, tha an t-Ăšghdar a 'ciallachadh duilgheadasan le fèithean nan sĂšilean, cĂšl, gĂ irdeanan agus, gu dearbh, lèirsinn - timcheall air. lain) mar thoradh air cuideam ath-aithris.
Tha cuid de na buaidhean sin air a bhith aithnichte airson Ăšine mhòr, agus na toraidhean , a chaidh fhoillseachadh air ais ann an 1976 anns an iris Ergonomics, ag rĂ dh gu bheil dĂ il de 100 milliseconds âgu mòr aâ cur bacadh air astar clò-sgrĂŹobhaidh. â O chionn ghoirid, thug IĂšl Cleachdaiche GNOME a-steach ann an 10 milliseconds, agus ma thèid thu nas fhaide, an uairsin sealltainn gu bheil 1 millisecond air leth freagarrach.
Rinn Fatin na deuchainnean aige air luchd-deasachaidh teacsa; chruthaich e inneal so-ghiÚlain ris an canar , a chleachd mi airson ping a dhearbhadh ann an emuladairean deireannach. Cumaibh cuimhne gun deach an deuchainn a dhèanamh ann am modh atharrais: ann an da-rÏribh, feumaidh sinn aire a thoirt don dà chuid cuir a-steach (meur-chlà r, rianadair USB, msaa) agus toradh (bufair cairt bhidio, monitor) latency. A rèir Fatin, ann an rèiteachaidhean à bhaisteach tha e timcheall air 20 ms. Ma tha uidheamachd gèam agad, faodaidh tu am figear seo a choileanadh ann an dÏreach 3 milliseconds. Leis gu bheil bathar-cruaidh cho luath againn mu thrà th, chan fheum an aplacaid a latency fhèin a chuir ris. Is e amas Fatin latency an tagraidh a thoirt gu 1 millisecond, no eadhon dial a choileanadh às aonais , ciamar a-steach .
Seo toraidhean mo thomhasan, a bharrachd air cuid de thoraidhean Fatin, gus sealltainn gu bheil an deuchainn agam ag aontachadh leis na deuchainnean aige:

Bâ e aâ chiad rud a bhuail mi an Ăšine freagairt nas fheĂ rr airson seann phrògraman leithid xterm agus mlterm. Leis an latency clĂ r as miosa (2,4 ms), rinn iad nas fheĂ rr na an inneal Ăšr-nodha as luaithe (10,6 ms airson st). Chan eil ceann-uidhe Ăšr-nodha sam bith aâ tuiteam fon ĂŹre 10 millisecond. Gu sònraichte, chan eil Alacritty a âcoinneachadh ris an tagradhâ emuladair crĂŹochnachaidh as luaithe a tha ri fhaighinn â, ged a tha na sgòran aige air a dhol am feabhas bhon chiad sgrĂšdadh aige ann an 2017. Gu dearbh, Ăšghdaran a 'phròiseict agus tha iad ag obair gus an taisbeanadh a leasachadh. Bu chòir a thoirt fa-near cuideachd gu bheil Vim aâ cleachdadh GTK3 na òrdugh meudachd nas slaodaiche na a bhuidheann GTK2. Bhon seo faodaidh sinn a cho-dhĂšnadh gu bheil GTK3 aâ cruthachadh latency a bharrachd, agus tha seo ri fhaicinn anns a h-uile inneal-crĂŹochnachaidh eile a bhios ga chleachdadh (Terminator, Xfce4 Terminal agus GNOME Terminal).
Ach, is dòcha nach bi na h-eadar-dhealachaidhean follaiseach don t-sĂšil. Mar a tha Fatin aâ mĂŹneachadh, âcha leig thu leas a bhith mothachail air an dĂ il gus am bi buaidh aige ort.â Tha Fatin cuideachd aâ toirt rabhadh mu chlaonadh Ă bhaisteach: âBidh buaireadh sam bith ann an latency (jitter) aâ cruthachadh cuideam a bharrachd air sgĂ th cho neo-fhaicsinneach âs a tha iad."

Chaidh aâ ghraf gu h-Ă rd a thoirt bho ghlan Debian 9 (sĂŹneadh) s . Bheir an Ă rainneachd seo na toraidhean as fheĂ rr ann an deuchainnean latency. Mar a thionndaidh e, cruthaichidh GNOME ping 20 ms a bharrachd airson a h-uile tomhas. Is e mĂŹneachadh a dhâ fhaodadh a bhith ann airson seo gu bheil prògraman ann le giullachd sioncronaich de thachartasan cuir a-steach. Tha Fatin a 'toirt seachad eisimpleir airson a leithid de chĂšis , a chuireas dĂ il le bhith aâ giullachd a h-uile tachartas cuir a-steach gu sioncronach. Gu gnĂ thach, thig GNOME le manaidsear uinneig cuideachd , a chruthaicheas sreath a bharrachd de buffering, a bheir buaidh air ping agus a chuireas ris co-dhiĂš 8 milliseconds de latency.

Astar scrollaidh
Is e an ath dheuchainn deuchainn traidiseanta âastarâ no âleud-bannâ, a bhios aâ tomhas cho luath sa dhâ fhaodas an inneal-crĂŹochnachaidh duilleag a sgrĂšdadh fhad âs a tha e aâ taisbeanadh tòrr teacsa air an sgrion. Tha meacanaig an deuchainn eadar-dhealaichte; bâ e an deuchainn tĂšsail dĂŹreach an aon sreang teacsa a ghineadh aâ cleachdadh an Ă ithne seq. Am measg nan deuchainnean eile tha deuchainn Thomas E. Dickey (neach-gleidhidh xterm), a bhios a-rithist a-rithist . Ann an lèirmheas eile air coileanadh terminal aâ cleachdadh sreath de bytes air thuaiream le còd base32, a thèid a-mach chun cheann-uidhe aâ cleachdadh cat. Tha Luu den bheachd gu bheil an leithid de dheuchainn mar âslat-tomhais cho neo-fheumailâ s as urrainn dhut smaoineachadh" agus tha e a âmoladh a bhith aâ cleachdadh freagairt deireannach mar phrĂŹomh mheatrach na Ă ite. Tha Dickey cuideachd ag rĂ dh gu bheil an deuchainn aige meallta. Ach, tha an dĂ Ăšghdar ag aideachadh gum faod leud-bann uinneag crĂŹochnachaidh a bhith na chĂšis. Lorg Luu a-mach gun robh Emacs Eshell aâ reothadh nuair a bha e aâ taisbeanadh fhaidhlichean mòra, agus rinn Dickey an inneal-crĂŹochnachaidh as fheĂ rr gus faighinn cuidhteas leisg lèirsinneach xtrerm. Mar sin tha beagan airidheachd ann don deuchainn seo, ach leis gu bheil am pròiseas tairgse gu math eadar-dhealaichte bho cheann-uidhe gu ceann-uidhe, faodar a chleachdadh cuideachd mar phĂ irt deuchainn gus paramadairean eile a dhearbhadh.

An seo chĂŹ sinn an rxvt agus st aâ tarraing air thoiseach air aâ cho-fharpais, agus an uairsin Alacritty a tha fada nas Ăšire, a tha air a dhealbhadh le fòcas air coileanadh. An ath rud tha Xfce (teaghlach VTE) agus Konsole, a tha faisg air dĂ uair cho luath. Tha xterm mu dheireadh, a tha còig tursan nas slaodaiche na rxvt. Rè an deuchainn, bha xterm cuideachd aâ reubadh mòran, aâ fĂ gail teacsa aâ dol seachad duilich fhaicinn ged a bâ e an aon loidhne a bhâ ann. Bha Konsole luath, ach bha e duilich aig amannan: bhiodh an taisbeanadh aâ reothadh bho Ă m gu Ă m, aâ sealltainn teacsa pĂ irteach no gun a bhith ga shealltainn idir. Bha cinn-uidhe eile aâ taisbeanadh teudan gu soilleir, nam measg st, Alacritty, agus rxvt.
Tha Dickey aâ mĂŹneachadh gu bheil na h-eadar-dhealachaidhean dèanadais mar thoradh air dealbhadh bufairean scrollaidh ann an diofar chrĂŹochan. Gu sònraichte, tha e aâ casaid rxvt agus cinn-uidhe eile âgun a bhith aâ leantainn nan riaghailtean coitcheannâ:
âEu-coltach ri xterm, cha do dhâ fheuch rxvt ris a h-uile Ăšrachadh a thaisbeanadh. Ma thuiteas e air dheireadh, diĂšlt e cuid de dhâ Ăšrachaidhean airson a dhol suas. Bha buaidh nas motha aig seo air astar scrollaidh a rèir coltais na air eagrachadh cuimhne a-staigh. Bâ e aon eas-bhuannachd gun robh beòthalachd ASCII rudeigin neo-chinnteach."
Gus an duilgheadas xterm seo fhaicinn a cheartachadh, tha Dickey aâ moladh an goireas a chleachdadh , aâ leigeil le xterm cuid de dhâ Ăšrachaidhean sgrion a chuir air falbh gus cumail suas ris an t-sruth. Tha na deuchainnean agam aâ dearbhadh gu bheil fastScroll aâ leasachadh coileanadh agus aâ toirt xterm co-ionann ri rxvt. Is e rud caran garbh a tha seo, ge-tĂ , mar a tha Dickey fhèin aâ mĂŹneachadh: âuaireannan tha e coltach gu bheil xterm - mar konsole - aâ stad fhad âs a tha e aâ feitheamh ri seata Ăšr de dhâ Ăšrachaidhean sgrion Ă s deidh cuid a bhith air an toirt air falbh. â San dòigh seo, tha e coltach gu bheil cinn-uidhe eile air an co-rèiteachadh as fheĂ rr a lorg eadar astar agus ionracas taisbeanaidh.
Caitheamh stòrais
Ge bith a bheil e ciallach beachdachadh air astar scrollaidh mar mheatrach dèanadais, leigidh an deuchainn seo leinn an luchd air na cinn-uidhe a shamhlachadh, a leigeas leinn an uair sin paramadairean eile leithid cuimhne no cleachdadh diosc a thomhas. Chaidh na meatrach fhaighinn le bhith aâ ruith an deuchainn ainmichte seq fo sgrĂšdadh pròiseas Python. Chruinnich e dĂ ta meatair airson ru_maxrss, suim ru_oublock и ru_in bacadh agus timer sĂŹmplidh.

Anns an deuchainn seo, bidh an ST a âgabhail Ă ite an toiseach leis aâ chaitheamh cuimhne cuibheasach as ĂŹsle de 8 MB, rud nach eil na iongnadh leis gur e sĂŹmplidheachd am prĂŹomh bheachd air an dealbhadh. bidh mlterm, xterm agus rxvt ag ithe beagan a bharrachd - timcheall air 12 MB. Is e toradh sònraichte eile Alacritty, a dhâ fheumas 30 MB a ruith. An uairsin tha cinn-uidhe an teaghlaich VTE le figearan bho 40 gu 60 MB, a tha gu math tòrr. Faodar an caitheamh seo a mhĂŹneachadh leis gu bheil na cinn-uidhe sin aâ cleachdadh leabharlannan aig ĂŹre nas Ă irde, mar eisimpleir, GTK. Tha Konsole aâ tighinn a-steach mu dheireadh le whopping 65MB de chaitheamh cuimhne rè dheuchainnean, ged a dhâ fhaodar seo a dhearbhadh leis an raon fharsaing de fheartan aige.
An coimeas ri toraidhean roimhe a fhuaireadh o chionn deich bliadhna, thòisich a h-uile prògram air barrachd cuimhne ithe. Bâ Ă bhaist do Xterm 4 MB a dhĂŹth, ach a-nis feumaidh e 15 MB dĂŹreach aig toiseach tòiseachaidh. Tha Ă rdachadh coltach ris ann an caitheamh airson rxvt, a tha a-nis aâ feumachdainn 16 MB a-mach Ă s aâ bhogsa. Bheir Xfce Terminal suas 34 MB, a tha trĂŹ tursan nas motha na bha e roimhe, ach chan fheum Terminal GNOME ach 20 MB. Gu dearbh, chaidh a h-uile deuchainn roimhe a dhèanamh air ailtireachd 32-bit. Aig LCA 2012 Rusty Russell , gu bheil mòran adhbharan nas seòlta ann a dhâ fhaodadh an Ă rdachadh ann an caitheamh cuimhne a mhĂŹneachadh. A dhâ aindeoin sin, tha sinn a-nis beò ann an Ă m far a bheil gigabytes de chuimhne againn, agus mar sin nĂŹ sinn dòigh air choireigin.
Ach, chan urrainn dhomh cuideachadh ach a bhith aâ faireachdainn gur e sgudal ghoireasan a thâ ann a bhith aâ coisrigeadh barrachd cuimhne do bhathar-bog cho bunaiteach ris an teirminĂŠal. Bu chòir na prògraman sin a bhith mar an fheadhainn as lugha den fheadhainn as lugha, comasach air ruith air âbogsaâ sam bith, eadhon bogsa bhrògan, ma ruigeas sinn a-riamh aâ phuing far am feum iad a bhith uidheamaichte. Linux-systems (agus tha fios agad gur e sin a tha ri thighinn). Ach leis na h-Ă ireamhan seo, bidh cleachdadh cuimhne na dhuilgheadas ann an Ă rainneachd sam bith far a bheil iomadh crĂŹoch-uidhe aâ ruith, ach a-mhĂ in beagan fheadhainn a tha gu math aotrom agus cuibhrichte. Gus dĂŹoladh a dhèanamh airson seo, tha modh Daemon aig GNOME Terminal, Konsole, urxvt, Terminator, agus Xfce Terminal uile, a leigeas le iomadh crĂŹoch-uidhe a bhith air an riaghladh tro aon phròiseas, aâ cuingealachadh an caitheamh cuimhne.

Rè na deuchainnean agam, thĂ inig mi gu toradh eile ris nach robh dĂšil a thaobh sgrĂŹobhadh leughaidh diosc: bha dĂšil agam nach fhaiceadh dad idir an seo, ach thionndaidh e a-mach gu bheil cuid de chrĂŹochan aâ sgrĂŹobhadh an dĂ ta as toirtiche gu diosc. Mar sin, tha leabharlann VTE gu dearbh aâ cumail bufair scrollaidh air diosc (am feart seo , agus tha seo fhathast aâ tachairt). Ach aocoltach ri buileachadh nas sine, a-nis co-dhiĂš tha an dĂ ta seo air a chrioptachadh le bhith aâ cleachdadh AES256 GCM (). Ach tha ceist reusanta ag èirigh: dè a tha cho sònraichte mun leabharlann VTE gu bheil feum air dòigh-obrach neo-Ă bhaisteach airson buileachadh...
co-dhĂšnadh
Anns aâ chiad phĂ irt den artaigil seo, fhuair sinn a-mach gu bheil deagh sheata fheartan aig teirminilean stèidhichte air VTE, ach tha sinn aâ faicinn a-nis gu bheil prĂŹs air seo. Chan eil cuimhne na dhuilgheadas an-drĂ sta, oir faodar a h-uile teirminil VTE a riaghladh tro phròiseas daemon a chuireas crĂŹoch air an cleachdadh cuimhne. Ach, is dòcha gum faigh siostaman nas sine le cuingealachaidhean corporra air RAM agus Ă ite bufair kernel buannachd bho dhreachan nas trĂ ithe de na teirminilean, oir bidh iad ag ithe tòrr nas lugha de ghoireasan. Ged a bhios teirminilean VTE aâ coileanadh gu math ann an deuchainnean tro-chur (scrollaidh), tha an latency taisbeanaidh aca nas Ă irde na an stairsneach a chaidh a shuidheachadh ann an stiĂšireadh cleachdaiche GNOME. Is dòcha gum bu chòir do luchd-leasachaidh VTE seo a thoirt fa-near. Aâ beachdachadh gu bheil eadhon airson luchd-cleachdaidh Ăšr, Linux Leis gu bheil e do-sheachanta gum bi thu aâ coinneachadh ris an teirminĂŠal, faodaidh iad a dhèanamh nas fhasa a chleachdadh. Do luchd-geek eòlach, faodaidh atharrachadh bhon teirminĂŠal bunaiteach eadhon lĂšghdachadh a thoirt air cuideam nan sĂšilean agus an comas a bhith aâ seachnadh leòntan is tinneasan dreuchdail san Ă m ri teachd mar thoradh air seiseanan obrach fada. Gu mĂŹ-fhortanach, chan eil ach an xterm agus mlterm nas sine aâ ruighinn an stairsneach ping draoidheil de 10 mille-diogan, rud nach eil iomchaidh do mhòran.
Sheall tomhais smachd cuideachd, mar thoradh air leasachadh Ă rainneachdan grafaigeach Linux Dh'fheumadh na luchd-leasachaidh grunn cho-rèiteachaidhean a dhèanamh. Is dòcha gum biodh cuid de luchd-cleachdaidh airson beachdachadh air manaidsearan uinneagan Ă bhaisteach a chleachdadh, oir tha iad aâ tabhann lĂšghdachadh mòr air latency. Gu mĂŹ-fhortanach, cha robh e comasach latency a thomhas airson Wayland: chaidh am prògram Typometer a chleachd mi a dhealbhadh gus dĂŹreach na tha Wayland air a dhealbhadh gus casg a chuir air a dhèanamh - a bhith aâ brathadh air uinneagan eile. Tha mi an dòchas gum bi co-dhèanamh Wayland ag obair nas fheĂ rr na X.org, agus tha mi cuideachd an dòchas gum faigh cuideigin dòigh air latency a thomhas san Ă rainneachd seo san Ă m ri teachd.
Source: www.habr.com
