Uhlolojikelele lwama-terminal emulators

Amagama ambalwa avela kusikhungo sethu sokuhumusha: imvamisa wonke umuntu ulwela ukuhumusha izinto ezisetshenziswayo zakamuva nokushicilelwe, futhi nathi asihlukile. Kodwa amatheminali akuyona into ebuyekezwa kanye ngesonto. Ngakho-ke, sikuhumushele i-athikili ka-Antoine Beaupré, eyanyatheliswa entwasahlobo ka-2018: naphezu "kweminyaka" yayo enkulu ngezindinganiso zanamuhla, ngokombono wethu, indaba ayizange ilahlekelwe ukubaluleka kwayo nhlobo. Ukwengeza, lokhu ekuqaleni bekuwuchungechunge lwezihloko ezimbili, kodwa sanquma ukuhlanganisa zibe okuthunyelwe okukodwa okukhulu.

Uhlolojikelele lwama-terminal emulators

Amatheminali anendawo ekhethekile emlandweni wekhompiyutha, kodwa emashumini eminyaka amuva saphoqeleka ukuthi aphile eduze komugqa womyalo njengoba izixhumanisi zezithombe ziba yonke indawo. Ama-emulators etheminali esikhundleni sawo hardware abazalwane, okubuye kube ukuguqulwa kwamasistimu asekelwe kumakhadi apuntshiwe kanye nokushintshashintsha. Ukusabalalisa kwesimanje kuza nama-emulators ahlukene etheminali azo zonke izimo nemibala. Futhi nakuba abaningi banelisekile ngetheminali evamile enikezwa indawo yabo yokusebenza, abanye ngokuziqhenya basebenzisa isofthiwe yangaphandle ukuze baqhube igobolondo labo eliyintandokazi noma umhleli wombhalo. Kodwa, njengoba sizobona kulesi sihloko, akuwona wonke amatheminali adalwe ngesithombe esifanayo: ahluke kakhulu ekusebenzeni, ubukhulu kanye nokusebenza.

Amanye amatheminali anezimbobo zokuphepha ezimangazayo, futhi eziningi zinesethi yemisebenzi ehluke ngokuphelele, kusukela ekusekelweni kwesixhumi esibonakalayo esinamathebhu kuya ekubhalweni. Nakuba thina wabheka amatheminali emulator esikhathini esidlule, lesi sihloko siyisibuyekezo sento yangaphambilini ezosiza abafundi banqume ukuthi iyiphi itheminali okufanele bayisebenzise ngo-2018. Ingxenye yokuqala ye-athikili iqhathanisa izici, futhi ingxenye yesibili ihlola ukusebenza.

Nawa amatheminali engiwabuyekezile:

Uhlolojikelele lwama-terminal emulators

Lezi kungase kungabi izinguqulo zakamuva, njengoba nganginqunyelwe ukwakha okuzinzile ngesikhathi sokubhala, engikwazile ukukukhipha ku-Debian 9 noma i-Fedora 27. Okuwukuphela kwe-Alacritty. Kuyinzalo yamatheminali asheshiswa yi-GPU futhi ibhalwe ngolimi olungajwayelekile nolusha lwalo msebenzi - Rust. Ngikhiphe amatheminali ewebhu ekubuyekezweni kwami ​​(okuhlanganisa nalawo avuliwe I-Electron), ngoba ukuhlolwa kokuqala kubonise ukusebenza kwabo okubi kakhulu.

Ukusekelwa kwe-Unicode

Ngiqale izivivinyo zami ngokusekelwa kwe-Unicode. Ukuhlolwa kokuqala kwamatheminali kwakuwukubonisa iyunithi yezinhlamvu ye-Unicode esuka kuyo Izihloko ze-Wikipedia: “é, Δ, И, ק, م, ๗, あ, 叶, 葉 kanye no-말.” Lokhu kuhlola okulula kubonisa ukuthi ingabe itheminali ingasebenza kahle emhlabeni wonke. itheminali ye-xterm ayibonisi uhlamvu lwesi-Arabhu Mem ekucushweni okuzenzakalelayo:

Uhlolojikelele lwama-terminal emulators

Ngokuzenzakalelayo, i-xterm isebenzisa ifonti "elungisiwe" yakudala, okuthi, ngokusho kusenguye uVicki, "inokumbozwa okukhulu kwe-Unicode kusukela ngo-1997". Kukhona okwenzekayo kule fonti okubangela ukuba uhlamvu lubonakale njengohlaka olungenalutho futhi kulapho ifonti yombhalo inyuswa yaba amaphuzu angama-20+ lapho umlingisi egcina eqala ukubonisa kahle. Kodwa-ke, lokhu "kulungisa" kwephula isibonisi sezinye izinhlamvu ze-Unicode:

Uhlolojikelele lwama-terminal emulators

Lezi zithombe-skrini zithathwe ku-Fedora 27, njengoba inikeze imiphumela engcono kune-Debian 9, lapho ezinye izinguqulo ezindala zamatheminali (ngokukhethekile mlterm) zingakwazi ukuphatha amafonti ngendlela efanele. Ngenhlanhla lokhu kwalungiswa ezinguqulweni zakamuva.

Manje qaphela ukuthi umugqa uboniswa kanjani ku-xterm. Kuvela ukuthi uphawu lwe-Mem kanye namaSemite alandelayo qoph bhekisa emibhalweni yesitayela se-RTL (kwesokudla-kuya-kwesokunxele), ngakho-ke ngokobuchwepheshe kufanele aboniswe ukusuka kwesokudla kuye kwesokunxele. Iziphequluli zewebhu ezifana neFirefox 57 ziphatha umugqa ongenhla ngendlela efanele. Inguqulo elula yombhalo we-RTL igama elithi "Сара"ngesiHebheru (שרה). Ikhasi le-Wiki emibhalweni eqondiswe kabili uthi okulandelayo:

“Izinhlelo eziningi zekhompiyutha azikwazi ukubonisa umbhalo oqondiswe kabili ngendlela efanele. Ngokwesibonelo, igama lesiHeberu elithi "Sarah" lihlanganisa izinhlamvu zesono (ש) (ezivela kwesokudla), bese kuthi resh (ר) futhi ekugcineni yena (ה) (okumele avele kwesokunxele)."

Amatheminali amaningi ayahluleka kulokhu kuhlola: Amatheminali e-Gnome ne-XFCE atholakala ku-Alacritty, e-VTE, i-urxvt, i-st kanye ne-xterm display "Sara" ngokulandelana okuphambene, njengokungathi sibhale igama elithi "Aras".

Uhlolojikelele lwama-terminal emulators

Enye inkinga ngemibhalo eqondiswe kabili ukuthi idinga ukuvumelanisa ngandlela thize, ikakhulukazi uma kuziwa ekuxubeni imibhalo ye-RTL ne-LTR. Imibhalo ye-RTL kufanele iqale kwesokudla sewindi letheminali, kodwa yini okufanele yenzeke kumatheminali ashintshashintshayo abe yi-LTR English? Eziningi zazo azinazo izindlela ezikhethekile futhi ziqondanisa wonke umbhalo kwesokunxele (okuhlanganisa ne-Konsole). Okuhlukile yi-pterm ne-mlterm, ethobela izindinganiso futhi iqondanise kwesokudla imigqa enjalo.

Uhlolojikelele lwama-terminal emulators

Ukuvikelwa kokufakwa

Isici esilandelayo esibalulekile engisihlonze ukuvikela ukufakwa. Nakuba kwaziwa kabanzi ukuthi kupela kanje:

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

kuyimiyalo yokuphusha kwekhodi, abantu abambalwa bayazi ukuthi imiyalo efihliwe ingangena ku-console lapho ikopisha futhi inamathisela kusuka kusiphequluli sewebhu, ngisho nangemva kokuhlolwa ngokucophelela. Indawo yokuqinisekisa i-Gianna Horna ikhombisa kahle ukuthi umyalo ubukeka umsulwa kangakanani:

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

iphenduka inkathazo uma inamathiselwa isuka kuwebhusayithi kaHorn iyisetheminali:

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

Isebenza kanjani? Ikhodi enonya ifakiwe kubhulokhi , okukhishwa ekubukeni komsebenzisi kusetshenziswa i-CSS.

Imodi yokunamathisela ekubakaki iklanyelwe ngokucacile ukuqeda ukuhlasela okunjalo. Kule modi, amatheminali afaka umbhalo onamathiselwe kubhangqa yokulandelana okukhethekile kokuphunyuka ukuze utshele igobolondo ngomsuka wombhalo. Lokhu kutshela igobolondo ukuthi lingaziba izinhlamvu ezikhethekile umbhalo onamathiselwe ongase ube nazo. Wonke amatheminali abuyela ku-xterm ehlonishwayo asekela lesi sici, kodwa ukunamathisela kumodi Yokubakaki kudinga usekelo oluvela kugobolondo noma uhlelo lokusebenza olusebenza kutheminali. Isibonelo, ukusebenzisa isoftware I-GNU Readline (u-Bash ofanayo), udinga ifayela ~/.inputrc:

set enable-bracketed-paste on

Ngeshwa, isayithi lokuhlola lika-Horn liphinde libonise ukuthi ungasidlula kanjani lesi sivikelo ngokufometha kombhalo ngokwaso futhi ngaphambi kwesikhathi sigcine sisebenzise Imodi Ekubakaki kuso. Lokhu kuyasebenza ngoba amanye amatheminali awakuhlungi ngendlela efanele ukulandelana kokuphunyuka ngaphambi kokwengeza okwawo. Isibonelo, kweyami angizange ngikwazi ukuqedela ngempumelelo ukuhlolwa kwe-Konsole ngisho nokucushwa okulungile .inputrc ifayela. Lokhu kusho ukuthi ungathola kalula ukulungiselelwa kwesistimu yakho ngenxa yohlelo lokusebenza olungasekelwe noma igobolondo elilungiselelwe ngokungalungile. Lokhu kuyingozi ikakhulukazi uma ungena kumaseva akude, lapho umsebenzi wokumisa ngokucophelela ungavamile kakhulu, ikakhulukazi uma unemishini eminingi enjalo ekude.

Isixazululo esihle sale nkinga i-plugin yokuqinisekisa yokunamathisela yetheminali urxvt, evele icele imvume yokufaka noma yimuphi umbhalo oqukethe imigqa emisha. Angikayitholi inketho ephephe kakhudlwana yokuhlaselwa kombhalo okuchazwe uHorn.

Amathebhu namaphrofayili

Isici esidumile manje ukusekelwa kwesixhumi esibonakalayo esinamathebhu, esizosichaza njengefasitela elilodwa letheminali eliqukethe amanye amatheminali amaningana. Lo msebenzi uyahluka kumatheminali ahlukene, futhi nakuba amatheminali endabuko e-xterm awasekeli amathebhu, izinto eziphilayo zesimanje ezengeziwe ezifana ne-Xfce Terminal, GNOME Terminal kanye ne-Konsole zinawo lo msebenzi. I-Urxvt futhi isekela amathebhu, kodwa kuphela uma usebenzisa i-plugin. Kodwa ngokosekelo lwethebhu ngokwayo, I-Terminator ingumholi ongenambangi: ayisekeli amathebhu kuphela, kodwa futhi ingahlela amatheminali nganoma iyiphi indlela (bona isithombe ngezansi).

Uhlolojikelele lwama-terminal emulators

Esinye isici se-Terminator yikhono "lokuhlanganisa" lawa mathebhu ndawonye futhi uthumele izinkinobho zokhiye ezifanayo kumatheminali amaningi ngesikhathi esisodwa, ukuhlinzeka ngethuluzi elingcolile lokwenza imisebenzi yenqwaba kumaseva amaningi ngesikhathi esisodwa. Isici esifanayo siphinde sisetshenziswe ku-Konsole. Ukusebenzisa lesi sici kwamanye amatheminali, kufanele usebenzise isofthiwe yomuntu wesithathu efana I-Cluster SSH, xlax noma I-tmux.

Amathebhu asebenza kahle kakhulu uma ebhangqwe namaphrofayili: isibonelo, ungaba nethebhu eyodwa ye-imeyili, enye eyokuxoxa, njalo njalo. Lokhu kusekelwa kahle i-Konsole Terminal kanye ne-GNOME Terminal. Zombili zivumela ithebhu ngayinye ukuthi iqalise ngokuzenzakalelayo iphrofayela yayo. I-Terminator futhi isekela amaphrofayili, kodwa angikwazanga ukuthola indlela yokuqalisa izinhlelo ezithile ngokuzenzakalelayo lapho uvula ithebhu ethile. Amanye amatheminali awanawo nhlobo umqondo “wephrofayela”.

Ama-Ruffles

Into yokugcina engizoyihlanganisa engxenyeni yokuqala yalesi sihloko ukubukeka kwamatheminali. Isibonelo i-GNOME, i-Xfce kanye ne-urxvt isekela ukubonisa izinto obala, kodwa isanda kwehlisa ukusekelwa kwezithombe zangemuva, okuphoqe abanye abasebenzisi ukuthi bashintshele kutheminali. I-Tilix. Ngokwami, ngijabule ngayo futhi ilula Imithombo, osetha isethi eyisisekelo yemibala engemuva ye-urxvt. Nokho, amatimu emibala engajwayelekile nawo angadala izinkinga. Ngokwesibonelo, Kuhlanganiswe ayisebenzi ngezicelo htop и IPTraf, njengoba sebesebenzisa imibala yabo.

Itheminali yokuqala ye-VT100 yayingayisekeli imibala, futhi emisha ngokuvamile yayilinganiselwe kuphalethi olunemibala engu-256. Kubasebenzisi abathuthukile ababhala amatheminali abo, ukwaziswa kwegobolondo noma imigoqo yesimo ngezindlela eziyinkimbinkimbi kungaba umkhawulo ocasulayo. I-Gist amathrekhi lapho amatheminali anosekelo "Lombala Weqiniso". Ukuhlola kwami ​​kuqinisekisa ukuthi amatheminali e-st, Alacritty kanye ne-VTE asekela Umbala Weqiniso ngokuphelele. Amanye amatheminali awazihambeli kahle kakhulu kulokhu futhi, empeleni, awabonisi ngisho nemibala engama-256. Ngezansi ungabona umehluko phakathi kokusekelwa koMbala Weqiniso kumatheminali e-GNOME, i-st kanye ne-xterm, awenza kahle umsebenzi walokhu ngephalethi yawo yombala engama-256, kanye ne-urxvt, engagcini nje ngokufeyila isivivinyo, kodwa ikhombisa nezinhlamvu ezithile ezicwayizayo esikhundleni sazo.

Uhlolojikelele lwama-terminal emulators

Amanye amatheminali abuye ahlaziye umbhalo ukuze athole amaphethini e-URL ukuze enze izixhumanisi zichofozeke. Lokhu kusebenza kuwo wonke amatheminali asuselwa ku-VTE, kuyilapho i-urxvt idinga i-plug-in ekhethekile engaguqula ama-URL ngokuchofoza noma kusetshenziswa isinqamuleli sekhibhodi. Amanye amatheminali ngiwahlolile ama-URL wokubonisa ngezinye izindlela.

Okokugcina, ithrendi entsha kumatheminali ukuzikhethela kwebhafa yokuskrola. Isibonelo, i-st ayinayo ibhafa yokuskrola; kucatshangwa ukuthi umsebenzisi uzosebenzisa i-terminal multiplexer njenge-tmux kanye I-GNU Screen.

I-Alacritty nayo ayinazo ama-backscroll buffers, kodwa izongezwa maduze ukusekelwa kwayo ngenxa "yempendulo ebanzi" ngalesi sihloko evela kubasebenzisi. Ngaphandle kwalezi ziqalo eziphezulu, yonke itheminali engiyihlolile engayithola isekela ukuskrola okubuyela emuva.

Isamba esincane

Engxenyeni yesibili yendaba (ekuqaleni lezi kwakuyizihloko ezimbili ezihlukene - cishe. umzila) sizoqhathanisa ukusebenza, ukusetshenziswa kwenkumbulo kanye nokubambezeleka. Kodwa sesiyabona ukuthi amanye amatheminali okukhulunywa ngawo anezinkinga ezinkulu. Isibonelo, abasebenzisi abasebenza njalo nge-RTL scripts bangase bafune ukucabangela i-mlterm ne-pterm, njengoba bengcono ekuphatheni imisebenzi efanayo kuneminye. UKhonsole naye wenze kahle. Abasebenzisi abangasebenzi ngemibhalo ye-RTL bangakhetha enye into.

Mayelana nokuvikelwa ekufakweni kwekhodi enonya, i-urxvt igqama ngenxa yokusetshenziswa kwayo okukhethekile kokuvikela kulolu hlobo lokuhlasela, okubonakala kungilungele ngempela. Kulabo abafuna izinsimbi namakhwela, i-Konsole ifanele ukubukwa. Okokugcina, kufanele kuqashelwe ukuthi i-VTE iyisisekelo esihle kakhulu samatheminali, okuqinisekisa ukusekelwa kombala, ukuqashelwa kwe-URL, nokunye. Uma uthi nhlá, itheminali ezenzakalelayo eza nendawo oyikhonzile ingase ihlangabezane nazo zonke izimfuneko, kodwa masiwushiye lo mbuzo uvuliwe kuze kube yilapho siqonda ukusebenza.

Asiqhubeke nengxoxo


Ngokuvamile, ukusebenza kwamatheminali ngokwawo kungase kubonakale kuyinkinga ekude, kodwa njengoba kuvela, amanye awo abonisa ukubambezeleka okuphezulu okumangazayo kwesofthiwe yohlobo olubaluleke kangaka. Futhi ngokulandelayo sizobheka lokho ngokwesiko okubizwa ngokuthi “isivinini” (eqinisweni, lesi isivinini sokuskrola) kanye nokusetshenziswa kwenkumbulo kwetheminali (nge-caveat yokuthi lokhu akubalulekile namuhla njengoba kwakunjalo emashumini eminyaka adlule).

Ukubambezeleka

Ngemva kocwaningo olunzulu lokusebenza esibulalayo, ngafinyelela esiphethweni sokuthi ipharamitha ebaluleke kakhulu kule ndaba yi-latency (ping). Esihlokweni sakhe “Siphrinta ngenjabulo” U-Pavel Fatin ubheke ukubambezeleka kwabahleli bombhalo abahlukahlukene futhi waveza ukuthi amatheminali mayelana nalokhu angase ahambe kancane kunabahleli bombhalo abashesha kakhulu. Yilokhu kusikisela okwagcina kungiholele ekutheni ngizihlolele ngokwami ​​futhi ngibhale lesi sihloko.

Kodwa yini i-latency, futhi kungani ibaluleke kangaka? Esihlokweni sakhe, u-Fatin wakuchaza ngokuthi “ukubambezeleka phakathi kokucindezela ukhiye kanye nesibuyekezo sesikrini esihambisanayo” futhi wacashunwa. "Umhlahlandlela Wokusebenzelana Kwabantu Nekhompyutha", ethi: “Ukubambezeleka kwempendulo ebonakalayo kusibonisi sekhompuyutha kunomthelela obalulekile ekuziphatheni nasekugculisekeni komshicileli.”

UFatin uchaza ukuthi le ping inemiphumela ejulile kunokwaneliseka nje: “ukuthayipha kuhamba kancane, kuba namaphutha amaningi, futhi ukungezwani kwamehlo nemisipha kuyakhula.” Ngamanye amazwi, ukubambezeleka okukhulu kungaholela kuma-typos kanye nekhwalithi yekhodi ephansi, njengoba kuholela kumthwalo owengeziwe wokuqonda ebuchosheni. Kodwa okubi nakakhulu ukuthi i-ping "yandisa ukuqina kwamehlo nemisipha," okubonakala sengathi kusho ukuthuthukiswa kokulimala emsebenzini esikhathini esizayo (Ngokusobala, umbhali usho izinkinga ngemisipha yamehlo, emuva, izingalo futhi, yiqiniso, umbono - cishe. umzila) ngenxa yokucindezeleka okuphindaphindiwe.

Eminye yale miphumela yaziwa isikhathi eside, kanye nemiphumela ucwaningo, eyanyatheliswa emuva ku-1976 kumagazini i-Ergonomics, yathi ukubambezeleka kwama-millisecond angu-100 "kulimaza kakhulu isivinini sokuthayipha." Muva nje, kwethulwe Umhlahlandlela Womsebenzisi we-GNOME isikhathi sokuphendula esamukelekayo ngama-millisecond angu-10, futhi uma uya phambili, ke Ukucwaninga kwe-Microsoft ibonisa ukuthi i-millisecond engu-1 ilungile.

UFatin wenza izivivinyo zakhe kubahleli bombhalo; wakha ithuluzi eliphathwayo elibizwa ngokuthi I-typometer, engangivame ukuhlola i-ping kuma-terminal emulators. Khumbula ukuthi ukuhlolwa kwenziwe ngemodi yokulingisa: empeleni, sidinga ukucabangela kokubili okokufaka (ikhibhodi, isilawuli se-USB, njll.) kanye nokuphumayo (ibhafa yekhadi levidiyo, qapha) ukubambezeleka. Ngokusho kukaFatin, ekucushweni okujwayelekile kungama-20 ms. Uma unemishini yokudlala, ungafinyelela lesi sibalo ngama-millisecond ama-3 kuphela. Njengoba sesivele sinezingxenyekazi zekhompuyutha ezisheshayo kangako, uhlelo lokusebenza akudingeki lwengeze ukubambezeleka kwalo. Umgomo ka-Fatin uwukuletha ukubambezeleka kwesicelo ku-millisecond engu-1, noma ngisho nokuzuza ukudayela ngaphandle ukubambezeleka okulinganisekayo, kunjani I-IntelliJ IDEA 15.

Nansi imiphumela yezilinganiso zami, kanye neminye yemiphumela kaFatin, ukukhombisa ukuthi ukuhlola kwami ​​​​kuvumelana nokuhlolwa kwakhe:

Uhlolojikelele lwama-terminal emulators

Into yokuqala eyangithinta isikhathi sokuphendula esingcono sezinhlelo ezindala ezifana ne-xterm ne-mlterm. Ngokubambezeleka kwerejista okubi kakhulu (2,4 ms), zenze kangcono kunetheminali yesimanje eshesha kakhulu (10,6 ms for st). Ayikho itheminali yesimanje ewela ngaphansi kwe-10 millisecond threshold. Ikakhulukazi, i-Alacritty yehluleka ukuhlangabezana nesimangalo "sesifaniso esisheshayo esitholakalayo", nakuba amaphuzu ayo abe ngcono kusukela ekubuyekezweni kwayo kokuqala ngo-2017. Ngempela, ababhali bephrojekthi uyasazi isimo futhi basebenzela ukuthuthukisa isibonisi. Kufanele futhi kuqashelwe ukuthi i-Vim esebenzisa i-GTK3 iyi-oda lobukhulu elihamba kancane kunozakwabo we-GTK2. Kulokhu singaphetha ngokuthi i-GTK3 idala ukubambezeleka okwengeziwe, futhi lokhu kubonakala kuwo wonke amanye amatheminali ayisebenzisayo (I-Terminator, Xfce4 Terminal kanye ne-GNOME Terminal).

Nokho, umehluko ungase ungabonakali emehlweni. Njengoba uFatin echaza, “akudingeki ukuba uqaphele ukubambezeleka ukuze kube nomphumela kuwe.” UFatin uphinde axwayise ngokuchezuka okujwayelekile: “Noma ikuphi ukuphazamiseka ekubambezelekeni (i-jitter) kudala ukucindezeleka okwengeziwe ngenxa yokungabikezeli kwakho.”

Uhlolojikelele lwama-terminal emulators

Igrafu engenhla ithathwe ku-Debian 9 ehlanzekile (yelula) nge i3 umphathi wewindi. Le ndawo ikhiqiza imiphumela engcono kakhulu ekuhlolweni kwe-latency. Njengoba kuvela, i-GNOME idala enye i-20 ms ping yazo zonke izilinganiso. Incazelo engaba khona yalokhu ukuba khona kwezinhlelo ezinokucubungula okuvumelanayo kwemicimbi yokufaka. UFatin unikeza isibonelo secala elinjalo Umsebenzi, okwengeza ukubambezeleka ngokucubungula yonke imicimbi efakiweyo ngokuhambisanayo. Ngokuzenzakalelayo, i-GNOME nayo iza nomphathi wewindi luvungazele, okudala isendlalelo esengeziwe sokubhafa, esithinta i-ping futhi singeze okungenani ama-millisecond angu-8 wokubambezeleka.

Uhlolojikelele lwama-terminal emulators

Isivinini sokuskrola

Ukuhlola okulandelayo ukuhlola okuvamile "kwesivinini" noma "umkhawulokudonsa", okulinganisa ukuthi itheminali ingaskrola ngokushesha kangakanani ikhasi kuyilapho ibonisa amanani amakhulu ombhalo esikrinini. Imishini yokuhlolwa iyehluka; ukuhlola kwasekuqaleni kwakuwukwenza iyunithi yezinhlamvu yombhalo efanayo usebenzisa umyalo we-seq. Okunye ukuhlola kufaka phakathi ukuhlolwa kuka-Thomas E. Dickey's (xterm maintainer), okuphindelela ifayela elithi terminfo.src lilandiwe. Kokunye ukubuyekezwa kokusebenza kwetheminali Den Luu isebenzisa iyunithi yezinhlamvu ye-base32 enekhodi yamabhayithi angahleliwe, ekhishelwa kutheminali kusetshenziswa ikati. U-Luu ubheka ukuhlola okunjalo “njengesilinganiso esingenamsebenzi njengoba umuntu angakucabanga” futhi uphakamisa ukusebenzisa impendulo yetheminali njengemethrikhi eyinhloko esikhundleni salokho. U-Dickey uphinde abize ukuhlolwa kwakhe ngokudukisa. Kodwa-ke, bobabili ababhali bayavuma ukuthi i-terminal window bandwidth ingaba yinkinga. U-Luu uthole i-Emacs Eshell ibanda lapho iveza amafayela amakhulu, futhi u-Dickey walungiselela itheminali ukuze asuse ubuvila bokubona be-xtrerm. Ngakho-ke kusekhona ukufaneleka kwalokhu kuhlolwa, kodwa njengoba inqubo yokunikezela ihluke kakhulu ukusuka kutheminali kuye kutheminali, ingasetshenziswa futhi njengengxenye yokuhlola ukuhlola amanye amapharamitha.

Uhlolojikelele lwama-terminal emulators

Lapha sibona i-rxvt kanye ne-st pull ngaphambi komncintiswano, kulandelwa i-Alacritty entsha kakhulu, eklanywe ngokugxila ekusebenzeni. Okulandelayo i-Xfce (umndeni we-VTE) ne-Konsole, eshesha cishe ngokuphindwe kabili. Okokugcina yi-xterm, ehamba kancane ngokuphindwe kahlanu kune-rxvt. Ngesikhathi sokuhlolwa, i-xterm iphinde yanyakaza kakhulu, okwenza umbhalo odlulayo ube nzima ukuwubona noma ngabe bekungumugqa ofanayo. I-Konsole yayishesha, kodwa yayikhohlisa ngezinye izikhathi: isibonisi sasiba yiqhwa ngezikhathi ezithile, sibonise umbhalo oyingxenye noma singawubonisi nhlobo. Amanye amatheminali abonisa izintambo ngokucacile, okuhlanganisa i-st, i-Alacritty, ne-rxvt.

U-Dickey uchaza ukuthi umehluko wokusebenza ubangelwa ukwakheka kwamabhafa okuskrola kumatheminali ahlukene. Ikakhulukazi, usola i-rxvt namanye amatheminali "ngokungalandeli imithetho ejwayelekile":

“Ngokungafani ne-xterm, i-rxvt ayizange izame ukubonisa zonke izibuyekezo. Uma isala ngemuva, izonqaba ezinye izibuyekezo ukuze ibambe. Lokhu kube nomthelela omkhulu esivinini sokuskrola esisobala kunasekuhlelweni kwenkumbulo yangaphakathi. Okunye okusibuyisela emuva ukuthi ukugqwayiza kwe-ASCII bekungacacile ngandlela thile. "

Ukuze ulungise lokhu kuvilapha okubonwayo kwe-xterm, u-Dickey uphakamisa ukusebenzisa insiza fastScroll, okuvumela i-xterm ukuthi ilahle ezinye izibuyekezo zesikrini ukuze ihambisane nokugeleza. Ukuhlola kwami ​​kuqinisekisa ukuthi i-fastScroll ithuthukisa ukusebenza futhi iletha i-xterm ngokuhambisana ne-rxvt. Lokhu, nokho, kuyindlela engcolile, njengoba u-Dickey ngokwakhe echaza: "ngezinye izikhathi i-xterm - njenge-konsole - ibonakala imile njengoba ilinde isethi entsha yezibuyekezo zesikrini ngemuva kokuthi ezinye zisusiwe." Kulo mzila, kubonakala sengathi amanye amatheminali athole ukuvumelana okungcono kakhulu phakathi kwejubane nobuqotho bokubonisa.

Ukusetshenziswa kwezinsiza

Kungakhathaliseki ukuthi kunengqondo yini ukucabangela isivinini sokuskrola njengemethrikhi yokusebenza, lokhu kuhlola kusivumela ukuthi silingise umthwalo kumatheminali, okubuye kusivumele ukuthi silinganise amanye amapharamitha afana nememori noma ukusetshenziswa kwediski. Amamethrikhi atholwe ngokuqalisa ukuhlolwa okucacisiwe seq ngaphansi kokuqapha kwenqubo yePython. Waqoqa idatha yamamitha getrusage() ngoba ru_maxrss, inani ru_oublock и ru_inblock kanye nesibali sikhathi esilula.

Uhlolojikelele lwama-terminal emulators

Kulolu vivinyo, i-ST ithatha indawo yokuqala ngesilinganiso esiphansi sokusetshenziswa kwenkumbulo okungu-8 MB, okungamangazi uma kucatshangelwa ukuthi umqondo oyinhloko womklamo ubulula. mlterm, xterm kanye ne-rxvt kudla kancane kancane - cishe 12 MB. Omunye umphumela ophawulekayo yi-Alacritty, edinga u-30 MB ukuze isebenze. Bese kuba khona amatheminali omndeni we-VTE anezibalo kusuka ku-40 kuya ku-60 MB, okuyinto eningi kakhulu. Lokhu kusetshenziswa kungachazwa ngokuthi lezi zindawo zisebenzisa imitapo yolwazi esezingeni eliphezulu, isibonelo, i-GTK. I-Konsole ifika ekugcineni ngenani elikhulu le-65MB lokusebenzisa inkumbulo phakathi nokuhlolwa, nakuba lokhu kungathethelelwa ngebanga layo elibanzi kakhulu lezici.

Uma kuqhathaniswa nemiphumela yangaphambilini etholwe eminyakeni eyishumi edlule, zonke izinhlelo zaqala ukusebenzisa inkumbulo ephawulekayo. I-Xterm yayikade idinga u-4 MB, kodwa manje idinga u-15 MB ekuqaleni nje. Kukhona ukwanda okufanayo kokusetshenziswa kwe-rxvt, manje okudinga u-16 MB ngaphandle kwebhokisi. I-Xfce Terminal ithatha u-34 MB, enkulu ngokuphindwe kathathu kunangaphambili, kodwa i-GNOME Terminal idinga u-20 MB kuphela. Vele, zonke izivivinyo zangaphambilini zenziwa ekwakhiweni kwe-32-bit. Ku-LCA 2012 Rusty Russell utshelwe, ukuthi kunezizathu eziningi ezicashile ezingachaza ukwanda kokusetshenziswa kwenkumbulo. Sesikushilo lokho, manje siphila esikhathini lapho sinenkumbulo yamagigabhayithi, ngakho-ke sizophatha ngandlela thize.

Nokho, angikwazi ukuzibamba kodwa nginomuzwa wokuthi ukwaba inkumbulo eyengeziwe kokuthile okubalulekile njengetheminali kuwukumosha izinsiza. Lezi zinhlelo kufanele zibe zincane kakhulu kwezincane kakhulu, kufanele zikwazi ukusebenza kunoma yiliphi “ibhokisi”, ngisho nebhokisi lezicathulo, uma kwenzeka sifika lapho zidinga ukuhlonyiswa ngezinhlelo ze-Linux (futhi uyazi ukuthi kuzoba njalo. ). Kodwa ngalezi zinombolo, ukusetshenziswa kwenkumbulo kuzoba yinkinga esikhathini esizayo kunoma iyiphi indawo esebenzisa amatheminali amaningi ngaphandle kwamakhono ambalwa alula futhi anomkhawulo kakhulu. Ukuze kunxeshezelwe lokhu, Itheminali ye-GNOME, i-Konsole, i-urxvt, i-Terminator kanye ne-Xfce Terminal zinemodi ye-Daemon ekuvumela ukuthi ulawule amatheminali amaningi ngenqubo eyodwa, unciphise ukusetshenziswa kwememori yawo.

Uhlolojikelele lwama-terminal emulators

Ngesikhathi sokuhlolwa kwami, ngize komunye umphumela engangingalindelekile mayelana nokubhala-bhala kwediski: Bengilindele ukubona lutho lapha, kodwa kwavela ukuthi amanye amatheminali abhala idatha enamandla kakhulu kudiski. Ngakho-ke, umtapo wezincwadi we-VTE empeleni ugcina ibhafa yokuskrola kudiski (lesi sici yaqashelwa emuva ngo-2010, futhi lokhu kusenzeka). Kodwa ngokungafani nokuqaliswa okudala, manje okungenani le datha ibethelwe kusetshenziswa i-AES256 GCM (kusukela kunguqulo 0.39.2). Kodwa kuphakama umbuzo ozwakalayo: yini ekhetheke kangaka ngomtapo wezincwadi we-VTE odinga indlela enjalo engajwayelekile yokuqaliswa...

isiphetho

Engxenyeni yokuqala ye-athikili, sithole ukuthi amatheminali asekelwe ku-VTE anesethi enhle yezici, kodwa manje siyabona ukuthi lokhu kuza nezindleko ezithile zokusebenza. Manje inkumbulo ayiyona inkinga ngoba wonke amatheminali e-VTE angalawulwa ngenqubo ye-Daemon, ekhawulela isifiso sabo sokudla. Kodwa-ke, amasistimu amadala anemikhawulo ngokomzimba enanini le-RAM nama-kernel buffers asengadinga izinguqulo zangaphambili zamatheminali, njengoba asebenzisa izinsiza ezimbalwa kakhulu. Nakuba amatheminali e-VTE enze kahle ekuhlolweni kokuphuma (scrolling), ukubonisa kwawo ukubambezeleka kungaphezu komkhawulo obekwe ku-GNOME User Guide. Abathuthukisi be-VTE cishe kufanele bakucabangele lokhu. Uma sicabangela ukuthi ngisho nakubasebenzisi beLinux abasaqalayo ukuhlangana nesiphetho akunakugwenywa, bangayenza isebenziseke kalula. Kuma-geek anolwazi, ukusuka kutheminali ezenzakalelayo kungase kusho ngisho nokucindezelwa kwamehlo okuncane kanye nekhono lokugwema ukulimala okuhlobene nomsebenzi nokugula okuzayo ngenxa yamaseshini amade omsebenzi. Ngeshwa, i-xterm endala kuphela ne-mlterm okusilethela embundwini womlingo wama-millisecond angu-10, okungamukeleki kwabaningi.

Izilinganiso zebhentshimakhi ziphinde zabonisa ukuthi ngenxa yokuthuthukiswa kwezindawo zegraphic ze-Linux, abathuthukisi kwadingeka benze izinto ezimbalwa zokuyekethisa. Abanye abasebenzisi bangase bafune ukubheka abaphathi bewindi abavamile njengoba behlinzeka ngokunciphisa okukhulu kwe-ping. Ngeshwa, akwenzekanga ukukala ukubambezeleka kwe-Wayland: uhlelo lwe-Typometer engilusebenzisile lwadalelwa lokho i-Wayland eklanyelwe ukuvimbela: ukuhlola kwamanye amawindi. Ngethemba ukuthi ukuhlanganisa kwe-Wayland kusebenza kangcono kune-X.org, futhi ngithemba nokuthi ngokuzayo othile uzothola indlela yokukala ukubambezeleka kule ndawo.

Source: www.habr.com

Engeza amazwana