Ftit kelmiet mill-uffiċċju tat-traduzzjoni tagħna: normalment kulħadd jistinka biex jittraduċi l-aħħar materjali u pubblikazzjonijiet, u aħna mhux eċċezzjoni. Iżda t-terminals mhumiex xi ħaġa li tiġi aġġornata darba fil-ġimgħa. Għalhekk, ttraduċijna għalik artiklu minn Antoine Beaupré, ippubblikat fir-rebbiegħa tal-2018: minkejja l-"età" konsiderevoli tiegħu skont standards moderni, fl-opinjoni tagħna, il-materjal ma tilef xejn ir-rilevanza tiegħu. Barra minn hekk, din oriġinarjament kienet serje ta 'żewġ artikli, iżda ddeċidejna li ngħaqqduhom f'kariga waħda kbira.
It-terminals għandhom post speċjali fl-istorja tal-kompjuter, iżda f'dawn l-aħħar deċennji ġew sfurzati jgħix flimkien mal-linja tal-kmand hekk kif l-interfaces grafiċi jsiru kullimkien.
Xi terminali għandhom toqob ta 'sigurtà detta sorprendenti, kif ukoll il-biċċa l-kbira għandhom sett ta' funzjonijiet kompletament differenti, minn appoġġ għal interface ta 'tabbed għal scripting. Għalkemm aħna
Hawn huma t-terminals li rrevedjajt:
Dawn jistgħu ma jkunux l-aħħar verżjonijiet, peress li kont limitat għal bini stabbli fil-ħin tal-kitba, li stajt nagħmel fuq Debian 9 jew Fedora 27. L-unika eċċezzjoni hija Alacritty. Huwa dixxendent ta 'terminals aċċelerati bil-GPU u huwa miktub f'lingwa mhux tas-soltu u ġdida għal dan il-kompitu - Rust. Esklujejt terminali tal-web mir-reviżjoni tiegħi (inklużi dawk fuq
Appoġġ Unicode
Bdejt it-testijiet tiegħi bl-appoġġ Unicode. L-ewwel test tat-terminals kien li juri s-sekwenza Unicode minn
B'mod awtomatiku, xterm juża t-tipa klassika "fissa", li, skond
Dawn il-screenshots ittieħdu f'Fedora 27, peress li ta riżultati aħjar minn Debian 9, fejn xi verżjonijiet anzjani tat-terminals (speċifikament mlterm) ma setgħux jimmaniġġjaw fonts kif suppost. Fortunatament dan ġie ffissat f'verżjonijiet aktar tard.
Issa innota kif il-linja hija murija f'xterm. Jirriżulta li s-simbolu Mem u s-Semitiku li ġej
“Ħafna programmi tal-kompjuter ma jistgħux juru test bidirezzjonali b’mod korrett. Pereżempju, l-isem Ebrajk "Sarah" jikkonsisti mill-karattri sin (ש) (li jidher fuq il-lemin), imbagħad resh (ר) u finalment hu (ה) (li għandu jidher fuq ix-xellug)."
Ħafna terminali jeħlu minn dan it-test: Alacritty, terminali Gnome u XFCE derivati minn VTE, urxvt, st u xterm juru "Sara" f'ordni inversa, bħallikieku konna ktibna l-isem bħala "Aras".
Problema oħra bit-testi bidirezzjonali hija li jeħtieġ li jiġu allinjati b'xi mod, speċjalment meta niġu biex jitħalltu testi RTL u LTR. L-iskripts RTL għandhom jimxu min-naħa tal-lemin tat-tieqa tat-terminal, imma x'għandu jiġri għat-terminals li default għal LTR Ingliż? Ħafna minnhom m'għandhom l-ebda mekkaniżmu speċjali u jallinjaw it-test kollu lejn ix-xellug (inkluż f'Konsole). L-eċċezzjonijiet huma pterm u mlterm, li jaderixxu mal-istandards u jallinjaw il-lemin tali linji.
Protezzjoni għall-inserzjoni
Il-karatteristika kritika li jmiss li identifikajt hija l-protezzjoni kontra l-inserzjoni. Għalkemm huwa magħruf ħafna li jispeċifika bħal:
$ curl http://example.com/ | sh
huma kmandi push ta 'eżekuzzjoni tal-kodiċi, ftit nies jafu li kmandi moħbija jistgħu Sneak fil-console meta tikkopja u tippejstja minn web browser, anke wara spezzjoni bir-reqqa.
git clone git: //git.kernel.org/pub/scm/utils/kup/kup.git
jinbidel f'inkonvenjent bħal dan meta jitwaħħal mill-websajt ta' Horn fit-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
Kif taħdem? Kodiċi malizzjuż huwa inkluż fil-blokk , li titmexxa 'l barra mill-fehma tal-utent bl-użu ta' CSS.
set enable-bracketed-paste on
Sfortunatament, is-sit tat-test ta 'Horn juri wkoll kif tevita din il-protezzjoni permezz tal-ifformattjar tat-test innifsu u qabel iż-żmien tispiċċa tapplika l-modalità Bracketed għaliha. Dan jaħdem minħabba li xi terminali ma jiffiltrawx b'mod korrett is-sekwenzi tal-ħarba qabel ma jżidu tagħhom stess. Per eżempju, f'mini qatt ma kont kapaċi nlesti b'suċċess it-testijiet tal-Konsole anki bil-konfigurazzjoni korretta .inputrc fajl. Dan ifisser li tista 'faċilment tikseb il-konfigurazzjoni tas-sistema tiegħek korrotta minħabba applikazzjoni mhux appoġġjata jew qoxra kkonfigurata ħażin. Dan huwa speċjalment perikoluż meta tidħol f'servers remoti, fejn xogħol ta' konfigurazzjoni bir-reqqa huwa inqas komuni, speċjalment jekk għandek ħafna magni remoti bħal dawn.
Soluzzjoni tajba għal din il-problema hija l-plugin ta 'konferma tal-pejst għat-terminal urxvt, li sempliċiment jitlob permess biex jiddaħħal kwalunkwe test li jkun fih linji ġodda. Ma sibtx għażla aktar sigura għall-attakk tat-test deskritt minn Horn.
Tabs u profili
Karatteristika popolari bħalissa hija l-appoġġ għal interface ta 'tabbed, li aħna ser niddefinixxu bħala tieqa terminali waħda li fiha diversi terminali oħra. Din il-funzjoni tvarja għal terminals differenti, u għalkemm it-terminals tradizzjonali xterm ma jappoġġjawx tabs xejn, inkarnazzjonijiet terminali aktar moderni bħal Xfce Terminal, GNOME Terminal u Konsole għandhom din il-funzjoni. Urxvt jappoġġja wkoll tabs, iżda biss jekk tuża plugin. Iżda f'termini ta 'appoġġ tat-tab innifsu, Terminator huwa l-mexxej mhux ikkontestat: mhux biss jappoġġja t-tabs, iżda jista' wkoll jirranġa terminali fi kwalunkwe ordni (ara l-immaġni hawn taħt).
Karatteristika oħra ta 'Terminator hija l-abbiltà li "jiġbor" dawn it-tabs flimkien u tibgħat l-istess keystrokes lil terminali multipli fl-istess ħin, li tipprovdi għodda mhux raffinata biex twettaq operazzjonijiet bl-ingrossa fuq servers multipli simultanjament. Karatteristika simili hija implimentata wkoll f'Konsole. Biex tuża din il-karatteristika f'terminals oħra, trid tuża softwer ta 'parti terza bħal
It-tabs jaħdmu tajjeb speċjalment meta jkunu mqabbda ma' profili: pereżempju, jista' jkollok tab waħda għall-email, oħra għaċ-chat, eċċ. Dan huwa appoġġjat tajjeb minn Konsole Terminal u GNOME Terminal. It-tnejn jippermettu li kull tab tniedi awtomatikament il-profil tagħha stess. Terminator jappoġġja wkoll il-profili, iżda ma stajtx insib mod biex tniedi awtomatikament ċerti programmi meta tiftaħ tab speċifika. Terminali oħra m'għandhom il-kunċett ta' "profil" xejn.
Ruffles
L-aħħar ħaġa li ser tkopri fl-ewwel parti ta 'dan l-artikolu hija d-dehra tat-terminals. Pereżempju GNOME, Xfce u urxvt jappoġġjaw it-trasparenza, iżda dan l-aħħar waqgħu l-appoġġ għall-immaġini fl-isfond, u ġiegħel lil xi utenti jaqilbu għat-terminal
Xi terminali janalizzaw ukoll it-test għall-mudelli tal-URL biex jagħmlu links klikkabbli. Dan japplika għat-terminals kollha derivati minn VTE, filwaqt li urxvt jeħtieġ plugin speċjali li jittrasforma l-URLs fuq klikk jew billi juża shortcut tat-tastiera. Terminali oħra I ttestjajt URLs tal-wiri b'modi oħra.
Fl-aħħarnett, xejra ġdida fit-terminals hija l-għażla tal-iscroll buffer. Per eżempju, st m'għandu l-ebda buffer ta 'scroll; huwa preżunt li l-utent se juża multiplexer terminali bħal tmux u
Alacritty wkoll m'għandhiex backscroll buffers, iżda
Subtotali
Fit-tieni parti tal-materjal (fl-oriġinal dawn kienu żewġ artikoli differenti - madwar. korsija) se nqabblu l-prestazzjoni, l-użu tal-memorja u l-latenza. Iżda diġà nistgħu naraw li wħud mit-terminals inkwistjoni għandhom nuqqasijiet serji. Pereżempju, utenti li jaħdmu b'mod regolari bi skripts RTL jistgħu jkunu jridu jikkunsidraw mlterm u pterm, peress li huma aħjar biex jimmaniġġjaw kompiti simili minn oħrajn. Konsole wkoll wettaq tajjeb. Utenti li ma jaħdmux bi skripts RTL jistgħu jagħżlu xi ħaġa oħra.
F'termini ta 'protezzjoni kontra l-inserzjoni ta' kodiċi malizzjuż, urxvt jispikka minħabba l-implimentazzjoni speċjali tiegħu ta 'protezzjoni kontra dan it-tip ta' attakk, li jidher definittivament konvenjenti għalija. Għal dawk li qed ifittxu xi qniepen u sfafar, Konsole ta’ min iħares. Fl-aħħarnett, ta 'min jinnota li VTE hija bażi eċċellenti għat-terminals, li tiggarantixxi appoġġ tal-kulur, rikonoxximent tal-URL, eċċ. L-ewwel daqqa t'għajn, it-terminal default li jiġi mal-ambjent favorit tiegħek jista 'jissodisfa r-rekwiżiti kollha, iżda ejja nħallu din il-mistoqsija miftuħa sakemm nifhmu l-prestazzjoni.
Ejja nkomplu l-konversazzjoni
B'mod ġenerali, il-prestazzjoni tat-terminals fiha nnifisha tista 'tidher problema mbiegħda, iżda kif jirriżulta, xi wħud minnhom juru latenza sorprendentement għolja għal softwer ta' tip fundamentali bħal dan. Barra minn hekk se nħarsu lejn dik li tradizzjonalment tissejjaħ "veloċità" (fil-fatt, din hija l-veloċità tal-iskrolljar) u l-konsum tal-memorja tat-terminal (bil-twiddib li dan mhuwiex kritiku llum daqs kemm kien għexieren ta 'snin ilu).
Dewmien
Wara studju bir-reqqa tal-prestazzjoni tat-terminal, wasalt għall-konklużjoni li l-aktar parametru importanti f'dan ir-rigward huwa l-latency (ping). Fl-artiklu tiegħu
Imma x'inhu latency, u għaliex hija daqshekk importanti? Fl-artiklu tiegħu, Fatin iddefinixxa bħala "id-dewmien bejn l-ippressar ta' ċavetta u l-aġġornament tal-iskrin korrispondenti" u kkwota
Fatin jispjega li dan il-ping għandu konsegwenzi aktar profondi minn sempliċi sodisfazzjon: "it-tajpjar isir aktar bil-mod, iseħħu aktar żbalji, u t-tensjoni tal-għajnejn u tal-muskoli tiżdied." Fi kliem ieħor, dewmien kbir jista 'jwassal għal typos u wkoll kwalità tal-kodiċi aktar baxxa, peress li jwassal għal tagħbija konjittiva addizzjonali fuq il-moħħ. Imma l-agħar huwa li l-ping "iżżid it-tensjoni tal-għajnejn u tal-muskoli," li jidher li jimplika
Xi wħud minn dawn l-effetti ilhom magħrufa għal żmien twil, u r-riżultati
Fatin wettaq it-testijiet tiegħu fuq edituri tat-testi; ħoloq strument portabbli imsejjaħ
Hawn huma r-riżultati tal-kejl tiegħi, kif ukoll xi wħud mir-riżultati ta 'Fatin, biex juru li l-esperiment tiegħi jaqbel mat-testijiet tiegħu:
L-ewwel ħaġa li laqtitni kien il-ħin aħjar ta 'rispons ta' programmi anzjani bħal xterm u mlterm. Bl-agħar latency tar-reġistru (2,4 ms), marru aħjar mill-iktar terminal modern veloċi (10,6 ms għal st). L-ebda terminal modern ma jaqa 'taħt il-limitu ta' 10 millisekonda. B'mod partikolari, Alacritty tonqos milli tissodisfa t-talba ta '"emulatur tat-terminal l-aktar mgħaġġel disponibbli", għalkemm il-punteġġi tiegħu tjiebu mill-ewwel reviżjoni tiegħu fl-2017. Tabilħaqq, l-awturi tal-proġett
Madankollu, id-differenzi jistgħu ma jkunux notevoli għall-għajn. Kif jispjega Fatin, “m’għandekx għalfejn tkun konxju tad-dewmien biex dan ikollu effett fuqek.” Fatin iwissi wkoll dwar devjazzjoni standard: "kwalunkwe tfixkil fil-latency (jitter) joħloq stress addizzjonali minħabba l-imprevedibbiltà tagħhom."
Il-grafika t'hawn fuq hija meħuda fuq Debian 9 pur (stretch) bi
Scroll veloċità
It-test li jmiss huwa test tradizzjonali ta '"veloċità" jew "bandwidth", li jkejjel kemm it-terminal jista' jiskrollja paġna waqt li juri ammonti kbar ta 'test fuq l-iskrin. Il-mekkanika tat-test ivarja; it-test oriġinali kien li sempliċement jiġġenera l-istess sekwenza tat-test bl-użu tal-kmand seq. Testijiet oħra jinkludu t-test ta 'Thomas E. Dickey (mantenitur xterm), li ripetutament
Hawnhekk naraw ir-rxvt u st pull qabel il-kompetizzjoni, segwiti mill-Alacritty ħafna aktar ġodda, li hija mfassla b'fokus fuq il-prestazzjoni. Sussegwentement hemm Xfce (familja VTE) u Konsole, li huma kważi d-doppju veloċi. L-aħħar huwa xterm, li huwa ħames darbiet aktar bil-mod minn rxvt. Matul it-test, xterm wkoll rippled ħafna, u għamel it-test li jgħaddi diffiċli biex tara anki jekk kienet l-istess linja. Konsole kien mgħaġġel, iżda xi drabi kien diffiċli: il-wiri kien jiffriża minn żmien għal żmien, juri test parzjali jew ma jurih xejn. Terminali oħra murija kordi b'mod ċar, inklużi st, Alacritty, u rxvt.
Dickey jispjega li d-differenzi fil-prestazzjoni huma dovuti għad-disinn ta 'scroll buffers f'terminals differenti. B'mod partikolari, huwa jakkuża lil rxvt u terminali oħra li "mhux isegwu r-regoli ġenerali":
“B'differenza minn xterm, rxvt ma ppruvawx juru l-aġġornamenti kollha. Jekk taqa 'lura, se tirrifjuta xi aġġornamenti biex tlaħħaq. Dan kellu impatt akbar fuq il-veloċità apparenti ta 'scrolling milli fuq l-organizzazzjoni tal-memorja interna. Żvantaġġ wieħed kien li l-animazzjoni ASCII kienet kemmxejn impreċiża."
Biex tiffissa din in-nuqqas ta 'xterm perċepit, Dickey jissuġġerixxi li tuża r-riżors
Konsum tar-riżorsi
Irrispettivament minn jekk jagħmilx sens li nikkunsidraw il-veloċità tal-iskrolljar bħala metrika tal-prestazzjoni, dan it-test jippermettilna nissimulaw it-tagħbija fuq it-terminals, li mbagħad jippermettilna nkejlu parametri oħra bħall-memorja jew l-użu tad-disk. Il-metriċi nkisbu billi tmexxi t-test speċifikat seq taħt il-monitoraġġ tal-proċess Python. Huwa ġabar data tal-meter
F'dan it-test, l-ST jieħu l-ewwel post bl-inqas konsum medju ta 'memorja ta' 8 MB, li mhux sorprendenti meta wieħed iqis li l-idea ewlenija tad-disinn hija s-sempliċità. mlterm, xterm u rxvt jikkunsmaw ftit aktar - madwar 12 MB. Riżultat notevoli ieħor huwa Alacritty, li jeħtieġ 30 MB biex jaħdem. Imbagħad hemm terminali tal-familja VTE b'ċifri minn 40 sa 60 MB, li huwa pjuttost ħafna. Dan il-konsum jista 'jiġi spjegat mill-fatt li dawn it-terminals jużaw libreriji ta' livell ogħla, pereżempju, GTK. Konsole jiġi fl-aħħar b'konsum enormi ta' 65MB ta' memorja waqt it-testijiet, għalkemm dan jista' jiġi ġġustifikat mill-firxa wiesgħa ħafna ta' karatteristiċi tiegħu.
Meta mqabbla mar-riżultati preċedenti miksuba għaxar snin ilu, il-programmi kollha bdew jikkunsmaw notevolment aktar memorja. Xterm kien jeħtieġ 4 MB, iżda issa jeħtieġ 15 MB eżatt mal-istartjar. Hemm żieda simili fil-konsum għal rxvt, li issa jeħtieġ 16 MB barra mill-kaxxa. Xfce Terminal jieħu 34 MB, li huwa tliet darbiet akbar minn qabel, iżda GNOME Terminal jeħtieġ biss 20 MB. Naturalment, it-testijiet preċedenti kollha saru fuq arkitettura ta '32-bit. Fl-LCA 2012 Rusty Russell
Madankollu, ma nistax ma nħossx li l-allokazzjoni ta' aktar memorja għal xi ħaġa fundamentali daqs it-terminal hija ħela ta' riżorsi. Dawn il-programmi għandhom ikunu l-iżgħar fost l-iżgħar, għandhom ikunu jistgħu jaħdmu fuq kwalunkwe "kaxxa", anke kaxxa taż-żraben, jekk qatt naslu sal-punt fejn jeħtieġ li jkunu mgħammra b'sistemi Linux (u taf li hekk ikun ). Iżda b'dawn in-numri, l-użu tal-memorja se jsir kwistjoni fil-futur fi kwalunkwe ambjent li jħaddem terminali multipli minbarra ftit mill-eħfef u l-aktar limitati fil-kapaċitajiet. Biex jikkumpensaw għal dan, GNOME Terminal, Konsole, urxvt, Terminator u Xfce Terminal għandhom modalità Daemon li tippermettilek tikkontrolla terminali multipli permezz ta 'proċess wieħed, li jillimita l-konsum tal-memorja tagħhom.
Matul it-testijiet tiegħi, wasalt għal riżultat ieħor mhux mistenni rigward disk read-write: Jien stennejt li ma nara xejn hawn, iżda rriżulta li xi terminali jiktbu l-aktar data voluminuża fuq disk. Għalhekk, il-librerija VTE fil-fatt iżżomm scroll buffer fuq disk (din il-karatteristika
Konklużjoni
Fl-ewwel parti tal-artikolu, sibna li terminali bbażati fuq VTE għandhom sett tajjeb ta 'karatteristiċi, iżda issa naraw li dan jiġi ma' xi spejjeż ta 'prestazzjoni. Issa l-memorja mhix kwistjoni minħabba li t-terminals VTE kollha jistgħu jiġu kkontrollati permezz ta 'proċess Daemon, li jillimita l-aptit tagħhom. Madankollu, sistemi eqdem li għandhom limitazzjonijiet fiżiċi fuq l-ammont ta 'RAM u buffers tal-kernel xorta jistgħu jeħtieġu verżjonijiet preċedenti tat-terminals, peress li jikkunsmaw ferm inqas riżorsi. Għalkemm it-terminals VTE marru tajjeb fit-testijiet tal-fluss (iskrolljar), il-latenza tal-wiri tagħhom hija 'l fuq mil-limitu stabbilit fil-Gwida għall-Utent ta' GNOME. L-iżviluppaturi tal-VTE probabbilment għandhom iqisu dan. Jekk inqisu li anke għal utenti novizzi tal-Linux li jiltaqgħu ma' terminal huwa inevitabbli, jistgħu jagħmluha aktar faċli għall-utent. Għal geeks b'esperjenza, il-bidla mit-terminal default tista 'saħansitra tfisser inqas tensjoni tal-għajnejn u l-abbiltà li tevita korrimenti u mard futuri relatati max-xogħol minħabba sessjonijiet twal ta' xogħol. Sfortunatament, l-xterm u l-mlterm qodma biss iwassluna sal-limitu tal-ping maġiku ta '10 millisekondi, li huwa inaċċettabbli għal ħafna.
Il-kejl ta' referenza wera wkoll li minħabba l-iżvilupp ta' ambjenti grafiċi Linux, l-iżviluppaturi kellhom jagħmlu għadd ta' kompromessi. Xi utenti jistgħu jixtiequ jħarsu lejn il-maniġers tat-twieqi regolari peress li jipprovdu tnaqqis sinifikanti tal-ping. Sfortunatament, ma kienx possibbli li titkejjel il-latenza għal Wayland: il-programm Typometer li użajt inħoloq għal dak li Wayland huwa ddisinjat biex jipprevjeni: l-ispjunjar fuq twieqi oħra. Nittama li Wayland compositing jaħdem aħjar minn X.org, u nittama wkoll li fil-futur xi ħadd isib mod kif ikejjel il-latency f'dan l-ambjent.
Sors: www.habr.com