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.
Amatheminali anendawo ekhethekile emlandweni wekhompiyutha, kodwa emashumini eminyaka amuva saphoqeleka ukuthi aphile eduze komugqa womyalo njengoba izixhumanisi zezithombe ziba yonke indawo.
Amanye amatheminali anezimbobo zokuphepha ezimangazayo, futhi eziningi zinesethi yemisebenzi ehluke ngokuphelele, kusukela ekusekelweni kwesixhumi esibonakalayo esinamathebhu kuya ekubhalweni. Nakuba thina
Nawa amatheminali engiwabuyekezile:
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
Ukusekelwa kwe-Unicode
Ngiqale izivivinyo zami ngokusekelwa kwe-Unicode. Ukuhlolwa kokuqala kwamatheminali kwakuwukubonisa iyunithi yezinhlamvu ye-Unicode esuka kuyo
Ngokuzenzakalelayo, i-xterm isebenzisa ifonti "elungisiwe" yakudala, okuthi, ngokusho
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
“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".
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.
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.
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.
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).
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
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.
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-Alacritty nayo ayinazo ama-backscroll buffers, kodwa
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
Kodwa yini i-latency, futhi kungani ibaluleke kangaka? Esihlokweni sakhe, u-Fatin wakuchaza ngokuthi “ukubambezeleka phakathi kokucindezela ukhiye kanye nesibuyekezo sesikrini esihambisanayo” futhi wacashunwa.
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
Eminye yale miphumela yaziwa isikhathi eside, kanye nemiphumela
UFatin wenza izivivinyo zakhe kubahleli bombhalo; wakha ithuluzi eliphathwayo elibizwa ngokuthi
Nansi imiphumela yezilinganiso zami, kanye neminye yemiphumela kaFatin, ukukhombisa ukuthi ukuhlola kwami kuvumelana nokuhlolwa kwakhe:
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
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.”
Igrafu engenhla ithathwe ku-Debian 9 ehlanzekile (yelula) nge
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
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
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
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
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.
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
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