Pauca verba ex translatione nostra hendrerit: omnes fere recentissimas materias et publicationes interpretari nititur, nec nos excipimus. Sed terminales non sunt aliquid quod semel in hebdomada renovatur. Ideo tibi articulum ab Antoine Beaupré, in fonte 2018 editum, interpretati sumus: quamvis a modernis signis «aetas», nostro iudicio, materia momentum suum omnino non amisit. Atque haec duorum articulorum series originaliter fuit, sed eas in unum magnum postum coniungere decrevimus.

Terminationes peculiarem locum habent in historia computatrale, sed his decenniis iuxta lineam mandatum superesse coactae sunt ut interfaces graphicae ubiquitae factae sunt. pro suis quae in vicem erant modificatio systematum in schedulis impugnatis et virgas toggle. Distributiones modernae veniunt cum variis aemulis terminalibus omnium figurarum et colorum. Et dum multi contenti sunt regulae terminalis in ambitu operis eorum praedito, quidam superbe utuntur programmate exotico plane ad currendum concha vel text editor. Sed, ut ex hoc articulo videbimus, non omnes terminales in eadem imagine creati sunt: multum differunt in functione, magnitudine, et effectu.
Quidam terminales plane mirae securitatis foramina habent, plus plus habent in functionibus omnino diversis, ab auxilio interfacii tabbdae ad scripting. licet Hic articulus est renovatio materiae superioris quae legentibus adiuvabit uter terminatio utatur in MMXVIII. Primum dimidium articulum lineamenta comparat, medium effectus aestimat.
Terminationes hic recensui;

Hae fortasse non sunt recentissimae versiones, cum tempore scribendi ad versiones stabiles restrictus sim, quas evolvere potui. Debian 9 vel Fedora 27. Sola exceptio est Alacritty. Est progenies terminalium GPU-acceleratorum et scriptum est lingua insolita et nova huic operi - Rust. Terminalia interretialia ex recensione mea exclusi (ea etiam quae in...) ) , quia praevia probationes suas maxime inopes ostendebant.
Unicode firmamentum
Probat cum Unicode auxilium meum coepi. Prima terminalium probatio erat ut chorda Unicode e . proponeret : "E, , , , , , , , et ." Haec simplex probatio ostendit num terminatio recte per orbem operari possit. xterm terminatio non ostendit Arabica character configuratione in default:

Defalta, xterm utitur fonte "fixo" classico, qui, secundum to habet "substantialem Unicode coverage ex 1997". Aliquid in hoc fonte agatur quod characterem ut tabulae vestis patefaciat et solum cum textus fontis augetur ad 20+ puncta quae character tandem incipit recte ostendere. Nihilominus, haec "fix" ostentationem aliarum characterum Unicode frangit:

Hae imagines captae sunt in Fedora 27, quia meliora praebuit quam... Debian 9, ubi nonnullae versiones terminales antiquiores (praesertim mlterm) fontes recte tractare non poterant. Feliciter, hoc in versionibus posterioribus correctum est.
Nunc vide quomodo in xterm linea exponatur. Evenit ut Symbolum Mem, et Semitic ad RTL scriptor style () , ut technice a dextra ad sinistram exhibeantur. Interretiales navigatores tales ut Firefox 57 lineam superius recte tractant. Simplicior versio textus RTL est verbum "" Hebraice (). haec dicit:
"Multi programmata computatoria textum bidirectionalem recte ostendere non possunt. Verbi gratia, nomen Hebraicum "Sarah" characteribus peccat (ש) (quod dextrorsum apparet), tum resh (ר) et tandem ille (ה) (quod a sinistris apparere debet).
Multi terminales hoc test deficiunt: Alacritty, VTE-Gnome derivata et XFCE terminales, urxvt, st et xterm "Sara" ordine inverso, ac si nomen "Aras" scripsissent.

Alia quaestio cum textibus bidirectionalibus est quod aliquo modo alignari debent, praesertim cum fit mixturas RTL et LTR textuum. RTL scripta currere debent a dextra parte fenestrae terminalis, sed quid fiet pro terminalibus qui defectui sunt LTR Anglice? Plerique non habent aliquas machinas speciales et totum textum ad sinistram ponunt (including in Konsole). Exceptiones pterm et mlterm, quae in signis et lineis rectis talibus adhaerent.

praesidium insertio
Postero notam criticam quam identificavi, praesidium anti-insertionis est. Tametsi haec carmina similia esse notum est;
$ curl http://example.com/ | shcodicem exsecutioni mandaverit, pauci sciunt mandata occulta obrepsisse in consolatorium cum exscribere et praeterire ex navigatro interreti, etiam post diligentem inspectionem. praeclare ostendit quam innocens sit mandatum;
git clone git: //git.kernel.org/pub/scm/utils/kup/kup.gitin tale nocumentum vertit cum ex Horn's website in terminale conglutinatum est:
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.gitQuomodo facitur? Malicious includitur in codice obstructionum quae movetur ex sententia utentis CSS.
evidenter ordinatur ad tales impetus corrumpebant. Hoc modo, terminales concludunt textum crustulum in binis sequentiarum specialium effugium ad indicandam concham de origine textus. Hoc testa narrat quod characteres speciales ignorare potest quae textus crustulum contineat. Omnes terminales ad venerabilem xterm reducunt hanc plumam, sed modus transiens in bracketed fulcimentum a testa seu applicatione ad terminalem currentem requirit. Exempli gratia, programmata usura (Eadem Bash), lima eget ~/.inputrc:
set enable-bracketed-paste onInfeliciter, situs examinis Horn etiam ostendit quomodo hanc tutelam per ipsum textum formantem praeterire et praemature finem adhibendi iungatur modus ei. Haec opera, quia nonnulli terminales non recte percolant, sequentia effugiunt antequam sua adiecerint. Exempli gratia, in mea voluntate numquam valebam ut bene perfice Konsole etiam cum recta configuratione .inputrc fasciculus. Hoc significat ut facile systema tuum configurationem corruptum ex applicatione sine testa vel non recte conformatione acquirere possis. Hoc praesertim periculosum est cum colligationem in servientibus remotis, ubi accurata configuratione opus minus commune est, praesertim si multas tam remotas machinas habeas.
Bona solutio huius problematis est crustulum confirmationis plugin pro termino urxvtquae simpliciter petit licentiam cuilibet textui novitates continenti inserendi. Securiorem optionem non inveni pro impetu textus descripto ab Hom.
Tabs et profiles
Nunc populare pluma suffragatur pro interfacie tabbed, quam fenestram terminalem plures plures terminales continentem definiemus. Hoc munus pro diversis terminalibus differt, et quamvis traditionales xterm terminales tabs omnino non sustinent, recentiores incarnationes terminales sicut Xfce Terminal, GNOME Terminal et Konsole hoc munus habent. Urxvt etiam tabs sustinet, sed solum si plugin uteris. Sed in terminis tab subsidii, Terminator indubii est princeps: is non solum tabs sustinet, sed etiam terminales in quolibet ordine disponere potest (vide infra imaginem).

Aliud notum Terminatoris facultas est "coetus" has tabs simul et easdem keystros mittere ad plures terminales simul, rudis instrumentum ad operandum molem operationum multiplicium simul ministrantium praestando. Similis notatio etiam in Konsole impletur. Hoc pluma uteris in aliis terminalibus, tertia-pars programmate utere debetis , aut .
Tabulae praesertim bene laborant cum perfiles iungantur: exempli gratia, unam tabm habere potes pro electronico, aliam pro chat, et sic porro. Hoc bene confirmatur Konsole Terminatio et GNOME Terminatio. Ambae permittunt singulas tab ut sponte sua profile deducant. Terminator etiam profiles sustinet, sed viam invenire non potui ut certos programmata sponte emitteret cum tab specificam aperis. Aliae terminales omnino notionem "profile" non habent.
Ruffles
Ultimum quod in prima parte huius articuli tegam, terminalium species est. Exempli gratia GNOME, Xfce et urxvt fulcimentum perspicuitatis, sed nuper subsidium omiserunt pro imaginibus background, cogentes aliquos usores ad terminalem flectendum. . Personaliter, gaudeo cum illo et suus simplex xresourcesqui ponit basin colorum pro urxvt. Autem, color non-vexillum themata etiam difficultates creare possunt. Exempli gratia cum applications и cum iam suis coloribus utantur.
colores non adiuvabat, et novae saepe ad 256-color palette limitatae erant. Pro provectis utentes qui terminales suos appellant, putamen suggerit vel vectis status complexis modis potest esse molestissima limitatio. vestigia quae terminales "Verum Colorem" habent. Meae probationes confirmant quod st, Alacritty et VTE-substructio terminales verum colorem perfecte confirmant. Aliae terminales hac in re non bene valent, immo etiam 256 colores ne ostendunt. Infra videre potes differentiam inter Veri Coloris fulcimentum in GNOME terminalis, st et xterm, quae bonum opus hoc faciunt cum suo 256 colore palette, et urxvt, quae non solum experimentum fallit, sed etiam notas quasdam nictans pro illis ostendit.

Quaedam terminales etiam textum analyse pro URL exemplaria ad nexus clickabiles fac. Hoc valet ad omnes terminales VTE derivatas, dum urxvt specialem plugin requirit quae URLs in strepita vel claviculae compendio utendo transformet. Alias terminales delatas aliis modis ostendere temptavi.
Denique inclinatio nova in terminalibus est libitum libri quiddam. For example, 'st nullum volumen quiddam habet; ponatur utens terminatio multiplexer uti tmux et .
Alacrita etiam bubundis backscroll caret, sed eius subsidium ob "extensive feedback" in hoc argumento ab utentibus. Praeter hos motus, omnem terminalem temptavi me subsidia inversa scrolling.
subtotals
In secunda parte materiae (in archetypo haec erant duo capitula diversa — proxime. venellam) Finitionem, memoriam, consuetudinem et late- tudinem comparabimus. Sed iam videre possumus aliquos terminales in quaestione graves defectus habere. Exempli gratia, utentes qui regulariter cum RTL scriptis laborant, mlterm et pterm volentes considerare possunt, sicut meliores sunt in similibus operibus tractandis quam aliis. Konsole etiam praestitit. Users qui cum scriptis RTL non laborant, aliquid aliud eligere possunt.
In verbis defensionis contra malitiosam codicem insertis, urxvt eminet ob singularem eius tutelam contra hoc genus oppugnationis, quod mihi certo opportunum videtur. Pro quaerentibus aliquas campanas et sibilos, Konsole vultu valet. Denique notatu dignum est VTE esse optimam basim terminalum, quae colorem adiuvat, recognitionem URL, et cetera. In primo aspectu, defectus terminatio, quae cum ambitu ventus occurrit, omnia requisita possunt occurrere, sed hanc quaestionem apertam abeamus donec effectum intelligamus.
Permanere colloquium
In genere, exsecutio terminalium in se quasi quaestio longe petita videri potest, sed, ut evenit, quaedam ex eis exhibent mirae altitudinis latendi causa programmatis talis fundamentalis generis. Deinde etiam quaeramus quae traditio "celeritate" (re vera haec est celeritas scrolling) et memoriam consummationis terminalis (cum cautione hanc non tam criticam hodie sicut ante decennium esse videbimus).
mora
Post accuratam terminalis observantiae studium, ad conclusionem maxime maximus modulus hac in re latency est. In eius articulum Pavel Fatin latentiam variarum editorum inspexit et insinuavit terminales hac in re tardiores esse quam editores velocissimi textus. Hoc admonitus est quod tandem me ad proprias probationes currit et hunc articulum scribens.
Sed quid est latens, et quid est magnum? In suo articulo, Fatin id definivit "mora inter prementem clavem et debitam velamentum renovationis" et allatum , qui dicit: "Moratio in feedback visivae in ostentatione computatralis momenti momentum habet in moribus et satisfactione typist."
Fatin explicat hanc ping maiorem consequentiam habere quam iustam satisfactionem: "typing tardius fit, plures errores occurrunt, oculus et tensio musculus augetur". Aliis verbis, magna mora ad typos et etiam qualitatem codicis inferiorem ducere potest, sicut ad additionem oneris cognitivae in cerebro ducit. Sed quid peius est quod ping "oculum auget et musculus contentionem", quod videtur significare? in futuro (Ut videtur, auctor significat problemata cum musculis oculorum, dorsi, brachii, visionis utique approx. venellam) Ex repetita accentus.
Horum effectus quidam diu notus est, et eventus , anno 1976 in ephemeride Ergonomica editum dixit moram centum millium secundorum "celeritate typing signanter imminuit". Recentius, dux GNOME User introductus in 10 milliseconds, et si longius ibis, tunc I millisecond specimen esse ostendit.
Fatin his probat on text editors. portatile instrumentum creavit vocavitque quos ego ing emulatores examinis. Meminerint experimentum factum in simulatione modum: in re, oportet considerare utrumque input (keyboard, USB moderatoris, etc.) et output (video card quiddam, monitor) latency. Secundum Fatin, in figurationibus typicis agitur de 20 ms. Si ludum apparatum habes, hanc figuram in tantum 3 milliseconds consequi potes. Cum iam tam celeriter ferramenta habeamus, applicatio suam latentiam addere non debet. Propositum fatin est applicationem latency ad 1 millisecondum deducere, aut etiam dialing sine , Quemadmodum in .
Hic exitus mensurarum mearum sunt, sicut quidam eventus Fatin, ut ostendant experimentum meum cum probationibus congruere:

Primum illud quod me percussit melius fuit tempus programmatum antiquiorum responsio ut xterm et mlterm. Cum latency mandare pessimum (2,4 ms), melius quam celerrime terminalem modernam fecerunt (10,6 ms pro st). Nullus modernus terminatio sub limine 10 millium secundo cadit. Peculiariter, Alacritty non occurrit "aemulator promptissimus terminalis promptus" affirmatio, licet eius ustulo emendaverit cum primam recensionem anno MMXVII. Immo, auctoribus rei et opus ad meliorem ostentationem. Notandum etiam est quod Vim usura GTK3 tardior est ordo magnitudinis quam GTK2 sui instar. Hinc concludi potest quod latency GTK3 additicium creet, et hoc in omnibus aliis terminalibus utentibus (Terminator, Xfce4 Terminal et GNOME Terminal).
Sed differentiae non possunt esse notabiles ad oculum. Ut Fatin explicat, "scire non debes morae quod in te effectum est." Fatin etiam monet de norma declinationis: "quasvis perturbationes in latencia (jitter) additos accentus ob eorum vagus efficiunt."

Graphica supra ex pura sumpta est. Debian 9 (extensio) s . Haec environment in latentia probat optimos eventus. Ut evenit, GNOME additum pingendi 20 ms omnibus mensuris creat. Ratio possibilis haec est praesentia programmatum cum processu synchrono initus eventuum. Exemplum fatin dat pro tali casu qui moram addit synchrone omnia initus eventus. Defalta, GNOME etiam procurator cum fenestra venit quae additam iacum buffering creat, qui pingem afficit et saltem 8 milliseconds latentiae addit.

Librum celeritatem
Proximus testis traditum "celeritate" vel "bandwidth" est experimentum, quod quam cito terminatio mensurat, paginam volumen potest cum magnas copiae textuum in screen ostendens. Mechanica experimentum variat; test originalis erat simpliciter generare eundem textum chorda utendi mandato seq. Aliae probationes includunt Thomam E. Dickey testem (xterm assertorem) qui saepe . In alia recognitione terminatio perficientur base32 chorda bytes temere encoded utitur, quae output in cat ad terminalem utens. Luu iudicat talem probationem esse "tamquam inutilem probationem ut opinari potest" et suggerit utendo responsionem terminalem tamquam loco metrico primario. Dickey etiam vocat probationem erroris. Uterque tamen agnoscunt auctores fenestrae terminatio longitudinis fluxum esse posse. Luu Emacs Eshell congelatio inventa est cum magnas tabulas ostentans, et Dickey optimized terminalem ad tollendum torpor visualis xtrerm. Itaque adhuc aliquid meriti huic probationi est, sed cum processus reddendi longe diversus sit a termino ad terminum, adhiberi potest etiam ut pars experimentalis ad alios parametri probandos.

Videmus hic rxvt et st antecedere certationem, quam sequitur multo recentior Alacritty, quae cum umbilico ad perficiendum destinatur. Proxima sunt Xfce (VTE familia) et Konsole, quae sunt fere duplo celeriora. Ultima est xterm, quae quinquies tardior est quam rxvt. Per experimentum, xterm etiam multum eiecit, textum difficilem praeteriens etiam si eadem linea esset videre. Konsole ieiunium erat, sed insidiosum interdum erat: ostentatio subinde frigesceret, textum partialem ostendens vel omnino non ostendens. Aliae terminales chordae clare ostenduntur, inter st, Alacritty et rxvt.
Dickey explicat differentias perficiendi ob consilium libri buffers in diversis terminalibus debere. Praesertim accusat rxvt et alias terminales "non sequentes regulas generales";
"Dissimilis xterm, rxvt non omnia updates ostendere conatus est. Si retro ceciderit, aliquas renovationes capere recusabit. Hoc plus momenti habuit in celeritate apparentis scrolling quam in internae memoriae ordo. Incommodum unum fuit quod ASCII animationem aliquantum definitam esse.
Ad hoc perceptum xterm socordiam figere, Dickey suggerit utens eopia permittens xterm deponere aliquas tabulas araneos ut cum fluxu contineantur. Meae probationes confirmant quod fastScroll melioris effectus et adfert xterm in par cum rxvt. Hoc tamen fusum magis scabrum est, ut Dickey ipse exponit: "interdum xterm - sicut konsole - stabulo videtur, quod exspectat novam rationem screen updates, quibusdam remotis". In hac vena, videtur quod aliae terminales optimae compromissum inter velocitatem et integritatem ostentationem invenerunt.
Resource consummatio
Neglegens an sentiat ad considerandam scrolling celeritatem ut metrica opera, haec probatio nos sinit simulare onus in terminalibus, quod vicissim nos sinit metiri alios parametros sicut memoria vel orbis usus. In metrics certa test currit adepti sunt seq sub Pythone processu vigilantia. Metrum notitia collecta ad ru_maxrss, moles ru_oublock и ru_inblock et simplex timer.

In hoc experimento, ST primum locum obtinet cum infimis mediocris memoriae consumptio 8 MB, quod mirum non est considerare quod principalis idea consilii est simplicitas. mlterm, xter et rxvt paulo plus consumunt — 12 MB. Alius effectus notabilis est Alacritty, quod 30 MB ad currendum requirit. Tunc terminationes familiae VTE sunt cum figuris ab 40 ad 60 MB, quod multum est. Haec consumptio ex eo explicari potest quod hae terminales librariae altiori gradu utuntur, exempli gratia, GTK. Konsole tandem venit cum tabes a whopping 65MB memoriae in probationibus, licet hoc per amplissimas lineas iustificari possit.
Comparati ad priores eventus decem annos consecuti, programmata omnia memoriae notabiliter magis consumere coeperunt. Xterm usus 4 MB requirebat, nunc 15 MB requirit mox in satus. Similis in phthisi aucta est pro rxvt, quae nunc 16 MB e archa requirit. Xfce Terminatio 34 MB sumit, quae triplo maior est quam ante, sed GNOME Terminatio tantum 20 MB requirit. Utique omnes superiores probationes in architectura 32-bit exercebantur. In LCA 2012 Rusty Russell quod multae sunt subtiliores rationes quae augeri memoriae possit consummatio. Quod cum dixisset, nunc vivimus tempore quo gigabytes memoriae habemus, sic quodammodo agemus.
Attamen, non possum non sentire plus memoriae programmatibus tam fundamentalibus quam terminali dedicare iacturam opum esse. Haec programmata minima minimorum esse debent, capaces currendi in quavis "capsa", etiam capsa calcearia, si umquam ad punctum pervenerimus ubi ea instruere necesse erit. Linux-systemata (et scis hoc futurum esse). Sed cum his numeris, usus memoriae problema fiet in quolibet ambitu ubi plures terminales currunt, exceptis paucis levissimis et limitatis. Ad hoc compensandum, GNOME Terminal, Konsole, urxvt, Terminator, et Xfce Terminal omnes modum Daemonis habent, qui permittit plures terminales per unum processum administrari, consumptionem memoriae eorum limitans.

In meis probationibus, ad alium eventum inopinatum veni de orbe lectito-scribo: nihil omnino hic videre expectavi, sed evenit aliquos terminales notitias voluminosas ad orbem scribere. Ita, bibliotheca VTE librum quiddam in disco (hoc pluma . custodit quod adhuc accidit). Sed dissimilis exsecutiones antiquarum, nunc saltem haec notitia in usu AES256 GCM encrypta est (). Sed rationabilis quaestio oritur: quid tam speciale de bibliotheca VTE ut requirit talem accessum ad exsequendum non vexillum.
conclusio,
In prima parte huius articuli, invenimus terminales VTE fundatos bonas facultates praebere, sed nunc videmus hoc pretio venire. Memoria nunc non est problema, cum omnia terminalia VTE per daemonem administrari possint qui usum memoriae limitat. Attamen systemata vetustiora cum limitationibus physicis in RAM et spatio intermedio nuclei adhuc ex versionibus prioribus terminalium utilitatem capere possunt, cum opes multo pauciores consumant. Dum terminalia VTE bene in probationibus transmissionis (volutatione) funguntur, latentia eorum ostensionis altior est quam limen in duce usoris GNOME statutum. Fortasse artifices VTE hoc in rationem ducere debent. Cum etiam pro usoribus novitiis,... Linux Cum congressus cum terminali inevitabiles sint, illud faciliorem usu reddere possunt. Peritis ingeniosis, commutatio a terminali implicito etiam significare potest reductionem lassitudinis oculorum et possibilitatem vitandi futuras iniurias et morbos professionales ob longas sessiones laboris. Infeliciter, tantum vetustiores xterm et mlterm limen magicum ping decem millisecundorum attingunt, quod multis intolerabile est.
Mensurae moderatrices etiam demonstraverunt propter evolutionem ambituum graphicorum Linux Fabricatoribus nonnulla compromissa facere oportuit. Quidam usores fortasse administratores fenestrarum regulares considerare velint, cum hi significantem reductionem latentiae offerunt. Infeliciter, latentiam pro Wayland metiri non licuit: programma Typometer quod usus sum designatum erat ad id ipsum faciendum quod Wayland prohibere destinatum est — alias fenestras inspiciendas. Spero compositionem Wayland melius quam X.org fungi, et etiam spero aliquem modum inventurum ad latentiam in hoc ambitu metiendam in futuro.
Source: www.habr.com
