Amagama ambalwa asuka kwiziko lethu labaguquleli: ngokuqhelekileyo wonke umntu uzama ukuguqulela imathiriyeli yamva nje kunye nopapasho, kwaye nathi asinjalo. Kodwa iitheminali aziyonto ihlaziywa kanye ngeveki. Ngoko ke, sikuguqulele inqaku ngu-Antoine Beaupré, epapashwe entwasahlobo ka-2018: nangona "ubudala" bayo obukhulu ngokwemigangatho yanamhlanje, ngokombono wethu, izinto eziphathekayo azizange zilahlekelwe ukufaneleka kwayo. Ukongezelela, oku ekuqaleni kwakuluhlu lwamanqaku amabini, kodwa sagqiba ekubeni sidibanise kwisithuba esinye esikhulu.
Izikhululo zinendawo ekhethekileyo kwimbali yekhompyuter, kodwa kumashumi eminyaka akutshanje ziye zanyanzeleka ukuba ziphile ecaleni komgca womyalelo njengoko ujongano lwegraphical lusiba kwindawo yonke.
Ezinye iitheminali zinemingxuma yokhuseleko eyothusayo, kwaye uninzi luneseti yemisebenzi eyahluke ngokupheleleyo, ukusuka kwinkxaso yojongano olunesithuba ukuya kokushicilelweyo. Nangona thina
Nazi iitheminali endizijongileyo:
Ezi zinokuthi zingabi ziinguqulelo zamva nje, ekubeni ndandikhawulelwe kwizakhiwo ezizinzile ngexesha lokubhala, endikwaziyo ukukhupha kwi-Debian 9 okanye i-Fedora 27. I-Alacritty kuphela. Yinzala yeetheminali ezikhawulezayo ze-GPU kwaye ibhalwe ngolwimi olungaqhelekanga nolutsha kulo msebenzi - iRust. Andizibandakanyi iitheminali zewebhu kuphononongo lwam (kubandakanywa nezo zivuliweyo
Inkxaso ye-Unicode
Ndaqala iimvavanyo zam ngenkxaso ye-Unicode. Uvavanyo lokuqala lweetheminali yayikukubonisa umtya we-Unicode ukusuka
Ngokungagqibekanga, i-xterm isebenzisa ifonti "elungisiweyo" yakudala, ethi, ngokutsho
Ezi sikrini zithathwe kwi-Fedora 27, njengoko inike iziphumo ezingcono kune-Debian 9, apho ezinye iinguqulelo ezindala zee-terminals (ngokukodwa mlterm) azikwazanga ukuphatha iifonti ngokufanelekileyo. Ngethamsanqa oku kwalungiswa kwiinguqulelo zamva.
Ngoku qaphela ukuba umgca uboniswa njani kwi-xterm. Kuvela ukuba isimboli iMem kunye neSemitic elandelayo
“Iinkqubo ezininzi zekhompyutha azikwazi ukubonisa umbhalo omacala omabini ngokuchanekileyo. Ngokomzekelo, igama lesiHebhere elithi "Sarah" liquka oonobumba isono (ש) (abavela ekunene), emva koko u-resh (ר) kwaye ekugqibeleni yena (ה) (omele avele ekhohlo)."
Iitheminali ezininzi ziyasilela kolu vavanyo: I-Alacritty, i-VTE-derived Gnome kunye ne-XFCE iitheminali, i-urxvt, i-st kunye ne-xterm display "Sara" ngolandelelwano olubuyela umva, ngokungathi sibhale igama elithi "Aras".
Enye ingxaki ngeetekisi ze-bidirectional kukuba kufuneka zilungelelaniswe ngandlela-thile, ngakumbi xa kuziwa ekuxubeni i-RTL kunye neetekisi ze-LTR. Izikripthi ze-RTL kufuneka zibaleke ukusuka kwicala lasekunene lefestile ye-terminal, kodwa kwenzeka ntoni kwiitheminali ezingagqibekanga kwi-LTR IsiNgesi? Uninzi lwazo alunandlela ikhethekileyo kwaye lungelelanisa konke okubhaliweyo ekhohlo (ibandakanya kwi Konsole). Izinto ezizishiyiweyo zi-pterm kunye ne-mlterm, ezihambelana nemigangatho kwaye zilungelelanise ekunene loo migca.
Ukukhuselwa kokufakwa
Inqaku elilandelayo elibalulekileyo endilichongileyo lukhuselo lokungeniswa. Nangona iyaziwa ngokubanzi ukuba ipela kanje:
$ curl http://example.com/ | sh
yimiyalelo yokutyhala yokuphunyezwa kwekhowudi, bambalwa abantu abaziyo ukuba imiyalelo efihliweyo inokuchwechwela kwikhonsoli xa ukopa kwaye uncamathisela kwisikhangeli sewebhu, nasemva kokuhlolwa ngononophelo.
git clone git: //git.kernel.org/pub/scm/utils/kup/kup.git
ijika ibe yinkathazo xa incamatheliswa kwiwebhusayithi kaHorn kwi-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
Ingaba isebenza kanjani? Ikhowudi enobungozi ibandakanyiwe kwibhloko , ekhutshwa kumbono womsebenzisi kusetyenziswa iCSS.
set enable-bracketed-paste on
Ngelishwa, indawo yovavanyo ye-Horn ikwabonisa indlela yokudlula olu khuselo ngokufomatha iteksti ngokwayo kwaye kwangaphambi kwexesha ugqibe ekubeni usebenzise imowudi eBracketed kuyo. Oku kusebenza kuba ezinye iitheminali azihluzi ngokuchanekileyo ulandelelwano lokubaleka phambi kokuba zongeze ezazo. Umzekelo, kweyam andizange ndikwazi ukugqiba ngempumelelo iimvavanyo ze Konsole nangoqwalaselo oluchanekileyo .inputrc ifayile. Oku kuthetha ukuba ungafumana ngokulula uqwalaselo lwenkqubo yakho lonakaliswe ngenxa yesicelo esingaxhaswanga okanye iqokobhe eliqwalaselwe ngokungachanekanga. Oku kuyingozi ngakumbi xa ungena kwiiseva ezikude, apho umsebenzi woqwalaselo ngononophelo ungaxhaphakanga, ngakumbi ukuba unoomatshini abaninzi abakude.
Isisombululo esilungileyo kule ngxaki kukuncamathelisa iplagi yokuqinisekisa kwi-terminal urxvt, ecela ngokulula imvume yokufaka nawuphi na umbhalo oqulathe imigca emitsha. Andifumananga ukhetho olukhuselekileyo lohlaselo lokubhaliweyo oluchazwe nguHorn.
Iithebhu kunye neeprofayili
Into edumileyo ngoku yinkxaso yojongano olunethebhu, esiya kuyichaza njengefestile yesiphelo esinezinye iitheminali ezininzi. Lo msebenzi wahlukile kwiitheminali ezahlukeneyo, kwaye nangona iitheminali zexterm zemveli zingaxhasi iithebhu konke konke, i-terminal incarnations yangoku ngakumbi njengeXfce Terminal, GNOME Terminal kunye neKonsole zinalo msebenzi. I-Urxvt ikwaxhasa iithebhu, kodwa kuphela ukuba usebenzisa iplagi. Kodwa ngokwemiqathango yenkxaso yethebhu ngokwayo, i-Terminator yinkokeli engenakuphikiswa: ayixhasi kuphela iithebhu, kodwa inokucwangcisa iitheminali kuyo nayiphi na indlela (jonga umfanekiso ongezantsi).
Olunye uphawu lwe-Terminator kukukwazi "ukudibanisa" ezi thebhu kunye kunye nokuthumela izitshixo ezifanayo kwiitheminali ezininzi ngaxeshanye, ukubonelela ngesixhobo esikrwada sokwenza imisebenzi yobuninzi kwiiseva ezininzi ngaxeshanye. Uphawu olufanayo lukwaphunyeziwe kwi Konsole. Ukusebenzisa eli nqaku kwezinye iitheminali, kufuneka usebenzise isoftware yomntu wesithathu efana
Iithebhu zisebenza kakuhle ngakumbi xa zidityaniswe neeprofayili: umzekelo, unokuba nethebhu enye ye-imeyile, enye yencoko, njalo njalo. Oku kuxhaswa kakuhle yiKonsole Terminal kunye neGNOME Terminal. Zombini zivumela ithebhu nganye ukuba iqalise ngokuzenzekelayo iprofayile yayo. I-Terminator ikwaxhasa iiprofayili, kodwa andizange ndifumane indlela yokuqalisa ngokuzenzekelayo iinkqubo ezithile xa uvula ithebhu ethile. Ezinye iitheminali azinayo ingqikelelo ye "profayile" kwaphela.
IiRuffles
Into yokugqibela endiya kuyigubungela kwinxalenye yokuqala yeli nqaku kukubonakala kwee-terminals. Umzekelo, i-GNOME, i-Xfce kunye ne-urxvt yenkxaso yokubonisa elubala, kodwa isandula ukulahla inkxaso yemifanekiso yangasemva, inyanzela abanye abasebenzisi ukuba batshintshele kwi-terminal.
Ezinye iitheminali zikwahlalutya umbhalo kwiipateni ze-URL ukwenza amakhonkco acofeke. Oku kusebenza kuzo zonke iitheminali ezivela kwi-VTE, ngelixa i-urxvt ifuna iplagin ekhethekileyo eya kuguqula ii-URL ngokucofa okanye isebenzisa indlela emfutshane yebhodibhodi. Ezinye iitheminali ndivavanye ii-URL zokubonisa ngezinye iindlela.
Okokugqibela, intsingiselo entsha kwiitheminali lukhetho lwe-buffer yokuskrola. Umzekelo, i-st ayinayo isithinteli sokuskrola; kucingelwa ukuba umsebenzisi uzakusebenzisa i-terminal multiplexer njenge-tmux kunye
I-Alacritty nayo ayinazo ii-backscroll buffers, kodwa
Iitotali ezingaphantsi
Kwinxalenye yesibini yemathiriyeli (ekuqaleni la yayingamanqaku amabini ahlukeneyo - malunga. indlela) siya kuthelekisa ukusebenza, ukusetyenziswa kwememori kunye ne-latency. Kodwa sele sibona ukuba ezinye zeetheminali ekuthethwa ngazo zineziphene ezinzulu. Umzekelo, abasebenzisi abasebenza rhoqo ngemibhalo ye-RTL banokufuna ukuqwalasela i-mlterm kunye ne-pterm, njengoko bengcono ekuphatheni imisebenzi efanayo kuneminye. UKonsole naye uqhube kakuhle. Abasebenzisi abangasebenziyo ngezikripthi ze-RTL banokukhetha enye into.
Ngokubhekiselele kukhuseleko ekufakweni kwekhowudi ekhohlakeleyo, i-urxvt ibalasele ngenxa yokuphunyezwa kwayo okukhethekileyo kokhuseleko kolu hlobo lohlaselo, olubonakala lufanelekile kum ngokuqinisekileyo. Kwabo bafuna iintsimbi kunye neempempe, iKonsole ifanelekile ukujonga. Ekugqibeleni, kuyafaneleka ukuba uqaphele ukuba i-VTE sisiseko esihle kakhulu se-terminals, esiqinisekisa inkxaso yombala, ukuqatshelwa kwe-URL, njalo njalo. Kuqala krwada, i-terminal engagqibekanga eza nendawo oyithandayo ingahlangabezana nazo zonke iimfuno, kodwa masiwushiye lo mbuzo uvuliwe side siqonde ukusebenza.
Masiqhubeke nencoko
Ngokubanzi, ukusebenza kwee-terminals ngokwayo kunokubonakala ngathi kuyingxaki, kodwa njengoko kuvela, ezinye zazo zibonisa ukubambezeleka okuphezulu okumangalisayo kwesoftware yohlobo olusisiseko. Kwakhona ngokulandelayo siza kujonga into ebizwa ngokuqhelekileyo ngokuthi "isantya" (enyanisweni, esi sisantya sokuskrola) kunye nokusetyenziswa kwememori ye-terminal (kunye ne-caveat yokuba oku akubalulekanga namhlanje njengoko kwakunjalo kumashumi eminyaka eyadlulayo).
Ukucothisa
Emva kokuphonononga ngokucokisekileyo ukusebenza kwe-terminal, ndafikelela kwisigqibo sokuba eyona parameter ibaluleke kakhulu kulo mba yi-latency (ping). Kwinqaku lakhe
Kodwa yintoni i-latency, kwaye kutheni ibaluleke kangaka? Kwinqaku lakhe, uFatin wayichaza “njengelibaziseka phakathi kokucofa isitshixo kunye nohlaziyo lwesikrini oluhambelanayo” kwaye icatshulwe.
UFatin uchaza ukuba le ping inemiphumo enzulu kunolwaneliseko nje kuphela: “Ukuchwetheza kuye kucothe, kwenzeke iimpazamo ezininzi, yaye kunyuka ukukruquka kwamehlo nezihlunu.” Ngamanye amazwi, ukulibaziseka okukhulu kunokukhokelela kwiitypos kunye nomgangatho wekhowudi ephantsi, njengoko kukhokelela kumthwalo owongezelelweyo wokuqonda kwingqondo. Kodwa eyona nto imbi ngakumbi kukuba i-ping "yandisa ukuqina kwamehlo kunye nezihlunu," okubonakala ngathi kuthetha
Ezinye zezi ziphumo zaziwa ixesha elide, kunye neziphumo
UFatin wenza iimvavanyo zakhe kubahleli besicatshulwa; wenza isixhobo esiphathwayo esibizwa ngokuba
Nazi iziphumo zemilinganiselo yam, kunye nezinye zeziphumo zikaFatin, ukubonisa ukuba umfuniselo wam uyavumelana novavanyo lwakhe:
Into yokuqala eyandibethayo yayilixesha elingcono lokuphendula leenkqubo ezindala ezifana ne-xterm kunye ne-mlterm. Ngeyona ndlela imbi yerejista latency (2,4 ms), baqhube bhetele kunetheminali yanamhlanje ekhawulezayo (10,6 ms for st). Akukho theminali yangoku iwela ngaphantsi kwe-10 millisecond threshold. Ngokukodwa, i-Alacritty iyasilela ukuhlangabezana nebango "elikhawulezayo le-terminal emulator ekhoyo", nangona amanqaku ayo ephucukile ukusukela oko kuphononongwa okokuqala ngo-2017. Ngokwenene, ababhali beprojekthi
Nangona kunjalo, iyantlukwano isenokungabonakali emehlweni. Njengoko uFatin ecacisa, “akuyomfuneko ukuba uqaphele ukulibaziseka ukuze kube nomphumo kuwe.” UFatin ukwalumkisa ngokutenxa okuqhelekileyo: “nakuphi na ukuphazamiseka kwi-latency (jitter) kubangela uxinezeleko olongezelelekileyo ngenxa yokungaqikeleli.”
Igrafu engentla ithathwe kwi-Debian 9 ecocekileyo (yolula) nge
Skrola isantya
Uvavanyo olulandelayo luvavanyo lwendabuko "isantya" okanye "i-bandwidth", elinganisa ukuba i-terminal inokukhawuleza kangakanani ukuskrola iphepha ngelixa ibonisa inani elikhulu lombhalo kwisikrini. Ubuchwephesha bovavanyo bayahluka; uvavanyo lwentsusa yayikukuvelisa umtya wokubhaliweyo ofanayo usebenzisa i seq umyalelo. Olunye uvavanyo lubandakanya uvavanyo lukaThomas E. Dickey (xterm umlondolozi), oluphindaphindayo
Apha sibona i-rxvt kunye ne-st pull phambi kokhuphiswano, ilandelwa yi-Alacritty entsha kakhulu, eyilwe ngokugxila ekusebenzeni. Okulandelayo yi-Xfce (usapho lwe-VTE) kunye ne-Konsole, eziphantse zibe kabini ngokukhawuleza. Eyokugqibela yi-xterm, ecotha ngokuphindwe kahlanu kune-rxvt. Ngexesha lovavanyo, i-xterm nayo yakhubeka kakhulu, yenza ukuba umbhalo ogqithisiweyo kube nzima ukuwubona nokuba wawungumgca ofanayo. I-Konsole yayikhawuleza, kodwa yayinenkohliso ngamanye amaxesha: isiboniso sasiza kuba ngumkhenkce ngamaxesha athile, sibonise okubhaliweyo okungaphelelanga okanye singabonisi kwaphela. Ezinye iitheminali zibonise imitya ngokucacileyo, ukuquka st, Alacritty, kunye rxvt.
UDickey ucacisa ukuba iyantlukwano yokusebenza kungenxa yoyilo lwezixhobo zokuskrola kwiitheminali ezahlukeneyo. Ngokukodwa, utyhola i-rxvt kunye nezinye iitheminali "ngokungalandeli imigaqo jikelele":
“Ngokungafaniyo ne-xterm, i-rxvt ayizange izame ukubonisa lonke uhlaziyo. Ukuba iyawa ngasemva, iya kwala uhlaziyo oluthile ukubamba. Oku kube nefuthe elikhulu kwisantya esicacileyo sokuskrola kunombutho wememori yangaphakathi. Enye into eyayisibuyisela emuva yayikukuba oopopayi be-ASCII belingachanekanga.
Ukulungisa oku kuqondwa kobuvila be-xterm, uDickey ucebisa ukusebenzisa uvimba
Ukusetyenziswa kobutyebi
Kungakhathaliseki ukuba kunengqiqo ukuqwalasela isantya sokuskrola njengemethrikhi yokusebenza, olu vavanyo luvumela ukuba silinganise umthwalo kwii-terminals, ezisivumela ukuba silinganise ezinye iiparitha ezifana nememori okanye ukusetyenziswa kwediski. Iimetriki zifunyenwe ngokuqhuba uvavanyo oluchaziweyo seq phantsi koqwalaselo lwenkqubo yePython. Uqokelele idatha yemitha
Kolu vavanyo, i-ST ithatha indawo yokuqala ngeyona ndlela isezantsi yokusetyenziswa kwememori ye-8 MB, ayimangalisi into yokuba imbono ephambili yoyilo ilula. mlterm, xterm kunye ne-rxvt zidla kancinci - malunga ne-12 MB. Esinye isiphumo esiphawulekayo yi-Alacritty, efuna i-30 MB ukuqhuba. Emva koko kukho iitheminali zosapho lwe-VTE ezinamanani ukusuka kwi-40 ukuya kwi-60 MB, into eninzi kakhulu. Oku kusetyenziswa kunokuchazwa yinyaniso yokuba ezi terminals zisebenzisa amathala eencwadi akumgangatho ophezulu, umzekelo, i-GTK. I-Konsole ingena ekugqibeleni nge-65MB yokusetyenziswa kwememori ngexesha lovavanyo, nangona oku kunokulungiswa ngoluhlu lwayo olubanzi kakhulu lweempawu.
Xa kuthelekiswa neziphumo zangaphambili ezifunyenwe kwiminyaka elishumi eyadlulayo, zonke iinkqubo zaqala ukusebenzisa inkumbulo engakumbi. I-Xterm ibikade ifuna u-4 MB, kodwa ngoku ifuna i-15 MB nje ekuqaleni. Kukho ukonyuka okufanayo kokusetyenziswa kwe-rxvt, ngoku efuna i-16 MB ngaphandle kwebhokisi. I-Xfce Terminal ithatha i-34 MB, inkulu ngokuphindwe kathathu kunangaphambili, kodwa i-GNOME Terminal ifuna kuphela i-20 MB. Ngokuqinisekileyo, zonke iimvavanyo zangaphambili zenziwa kwi-32-bit ye-architecture. Kwi-LCA 2012 Rusty Russell
Nangona kunjalo, andinakuzibamba kodwa ndivakalelwa kukuba ukwaba imemori engakumbi kwinto esisiseko njenge-terminal yinkcitho yemithombo. Ezi nkqubo kufuneka zibe zezona zincinci kwezincinci, kufuneka zikwazi ukusebenza nakweyiphi na "ibhokisi", nokuba yibhokisi yezihlangu, ukuba sithe safika kwindawo apho kufuneka baxhotyiswe ngeenkqubo zeLinux (kwaye uyazi ukuba kuya kuba njalo. ). Kodwa ngala manani, ukusetyenziswa kwememori kuya kuba ngumba kwixesha elizayo kuyo nayiphi na imeko eqhuba iitheminali ezininzi ngaphandle kwezona zikhaphukhaphu kwaye zininzi zilinganiselwe kubuchule. Ukubuyekeza oku, iGNOME Terminal, Konsole, urxvt, Terminator kunye neXfce Terminal zinendlela yeDaemon ekuvumela ukuba ulawule iitheminali ezininzi ngenkqubo enye, ukuthintela ukusetyenziswa kwememori yazo.
Ngexesha lovavanyo lwam, ndifike kwesinye isiphumo esingalindelekanga malunga nediski yokufunda-bhala: bendilindele ukubona kwanto apha, kodwa kuye kwavela ukuba ezinye iitheminali zibhala eyona datha inamandla kwidiski. Ke, ithala leencwadi le-VTE ngokwenene ligcina isithinteli sokuskrola kwidiski (eli nqaku
isiphelo
Kwinxalenye yokuqala yenqaku, sifumene ukuba ii-terminals ezisekelwe kwi-VTE zineseti efanelekileyo yeempawu, kodwa ngoku siyabona ukuba oku kuza kunye neendleko ezithile zokusebenza. Ngoku inkumbulo ayingomba kuba zonke iitheminali ze-VTE zinokulawulwa ngenkqubo ye-Daemon, enciphisa umdla wabo wokutya. Nangona kunjalo, iisistim ezindala ezinokunciphisa umzimba kwisixa se-RAM kunye ne-kernel buffers zisenokufuna iinguqulelo zangaphambili zee-terminals, kuba zisebenzisa izixhobo ezimbalwa kakhulu. Nangona iitheminali ze-VTE ziqhube kakuhle kuvavanyo lwe-throughput (scrolling), ukubonisa ukubambezeleka kwazo kungaphezulu komqobo obekwe kwiSikhokelo soMsebenzisi we-GNOME. Abaphuhlisi be-VTE ngokuqinisekileyo kufuneka bakuthathele ingqalelo oku. Ukuba sithathela ingqalelo ukuba nakubasebenzisi beLinux abasaqalayo ukudibana ne-terminal ayinakuphepheka, bangayenza ukuba isebenziseke ngakumbi. Kwiigeek ezinamava, ukutshintshela kwi-terminal engagqibekanga kusenokuthetha ukutsalana kwamehlo okuncinci kunye nokukwazi ukuphepha ukonzakala kunye nezigulo ezinxulumene nomsebenzi kwixesha elizayo ngenxa yeeseshini ezinde zomsebenzi. Ngelishwa, kuphela i-xterm yakudala kunye ne-mlterm ezisizisa kumda womlingo we-ping we-10 milliseconds, engamkelekanga kwabaninzi.
Imilinganiselo yeBenchmark ikwabonise ukuba ngenxa yophuhliso lweemeko zemizobo yeLinux, abaphuhlisi kuye kwafuneka benze izinto ezininzi eziya kuvumelana. Abanye abasebenzisi banokufuna ukujonga abaphathi befestile rhoqo njengoko bebonelela ngokuncipha okukhulu kweping. Ngelishwa, kwakungenakwenzeka ukulinganisa i-latency ye-Wayland: inkqubo yeTypometer endiyisebenzisileyo yenzelwe oko i-Wayland yenzelwe ukukhusela: ukuhlola kwezinye iifestile. Ndiyathemba ukuba i-Wayland compositing iqhuba ngcono kune-X.org, kwaye ndiyathemba ukuba kwixesha elizayo umntu uya kufumana indlela yokulinganisa ukubambezeleka kule meko.
umthombo: www.habr.com