Overview terminalis aemuli

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.

Overview terminalis aemuli

Terminationes peculiarem locum habent in historia computatrale, sed his decenniis iuxta lineam mandatum superesse coactae sunt ut interfaces graphicae ubiquitae factae sunt. Terminatio aemulorum pro suis hardware fratribusquae 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 At terminus aemuli decurriturHic articulus est renovatio materiae superioris quae legentibus adiuvabit uter terminatio utatur in MMXVIII. Primum dimidium articulum lineamenta comparat, medium effectus aestimat.

Terminationes hic recensui;

Overview terminalis aemuli

Hae versiones novissimae non possunt esse, cum scriberem tempore aedificationis stabilis limitatus sum, quas in Debian 9 vel Fedora evolvere potui 27. Sola exceptio est Alacritty. Ortus est GPU-acceleratus terminalium et inusitato et novo sermone ad hoc opus scriptum - Rust. Excluduntur textus terminales e mea recensione (including his on- Mycobacterium) , quia praevia probationes suas maxime inopes ostendebant.

Unicode firmamentum

Probat cum Unicode auxilium meum coepi. Prima terminalium probatio erat ut chorda Unicode e . proponeret Vicipaedia vasa: "E, , , , , , , , et ." Haec simplex probatio ostendit num terminatio recte per orbem operari possit. xterm terminatio non ostendit Arabica character MEM configuratione in default:

Overview terminalis aemuli

Defalta, xterm utitur fonte "fixo" classico, qui, secundum to tamen idem Vickyhabet "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:

Overview terminalis aemuli

Hae eenshotsscrae in Fedora 27, cum meliores proventus dederunt quam Debian 9, ubi nonnullae versiones antiquarum terminalium (specialis mlterm) fontes recte tractare non potuerunt. Feliciter hoc in recentioribus codicibus fixum est.

Nunc vide quomodo in xterm linea exponatur. Evenit ut Symbolum Mem, et Semitic qoph' ad RTL scriptor style (dextra ad sinistram) , ut technice a dextra ad sinistram exhibeantur. Interretiales navigatores tales ut Firefox 57 lineam superius recte tractant. Simplicior versio textus RTL est verbum "Сара" Hebraice (שרה). Wiki paginam in textibus bidirectionalibus 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.

Overview terminalis aemuli

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.

Overview terminalis aemuli

praesidium insertio

Postero notam criticam quam identificavi, praesidium anti-insertionis est. Tametsi haec carmina similia esse notum est;

$ curl http://example.com/ | sh

codicem exsecutioni mandaverit, pauci sciunt mandata occulta obrepsisse in consolatorium cum exscribere et praeterire ex navigatro interreti, etiam post diligentem inspectionem. Verification site Gianna Horna praeclare ostendit quam innocens sit mandatum;

git clone git: //git.kernel.org/pub/scm/utils/kup/kup.git

in 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.git

Quomodo facitur? Malicious includitur in codice obstructionum quae movetur ex sententia utentis CSS.

iungitur crustulum modus 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 GNU Readline (Eadem Bash), lima eget ~/.inputrc:

set enable-bracketed-paste on

Infeliciter, 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).

Overview terminalis aemuli

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 Botrus SSH, xlax aut tmux.

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. Tilix. Personaliter, gaudeo cum illo et suus simplex xresourcesqui ponit basin colorum pro urxvt. Autem, color non-vexillum themata etiam difficultates creare possunt. Exempli gratia Solarised non operatur cum applications htop и IPTrafcum iam suis coloribus utantur.

Originale VT100 terminale 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. summa 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.

Overview terminalis aemuli

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 Commons Attribution 'collaborative text.

Alacrita etiam bubundis backscroll caret, sed addetur mox 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 "Nos imprimere cum voluptate" 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 "Dux Humani Computer Interaction", 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? progressionem de iniuriis occupational 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 investigationem, anno 1976 in ephemeride Ergonomica editum dixit moram centum millium secundorum "celeritate typing signanter imminuit". Recentius, dux GNOME User introductus gratum responsum tempus in 10 milliseconds, et si longius ibis, tunc Microsoft Research I millisecond specimen esse ostendit.

Fatin his probat on text editors. portatile instrumentum creavit vocavitque Typometerquos 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 mensurabilis mora, Quemadmodum in Intellij idea 15.

Hic exitus mensurarum mearum sunt, sicut quidam eventus Fatin, ut ostendant experimentum meum cum probationibus congruere:

Overview terminalis aemuli

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 conscientiam 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."

Overview terminalis aemuli

Aliquam lacinia purus sumitur in puro Debian 9 (tractum) cum i3 fenestra procurator. 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 Workravequi moram addit synchrone omnia initus eventus. Defalta, GNOME etiam procurator cum fenestra venit Gubaidulinaquae additam iacum buffering creat, qui pingem afficit et saltem 8 milliseconds latentiae addit.

Overview terminalis aemuli

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 terminfo.src file downloaded. In alia recognitione terminatio perficientur Den Luu 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.

Overview terminalis aemuli

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 fastScrollpermittens 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 getrusage () ad ru_maxrss, moles ru_oublock и ru_inblock et simplex timer.

Overview terminalis aemuli

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 dixiquod multae sunt subtiliores rationes quae augeri memoriae possit consummatio. Quod cum dixisset, nunc vivimus tempore quo gigabytes memoriae habemus, sic quodammodo agemus.

Nihilominus non possum non sentire plus memoriae aliquid collocare sicut fundamentale sicut terminus est perditio rerum. Hae programmae minimae debent esse minimae, si in quamlibet capsam vel corigiam discurrere possint, si quando ad id perventum est quo cum Linux systematis instruendi opus est (et scis ita futurum esse. ) . Sed cum his numeris, memoria usus fiet in futuro in aliqua rerum ambitu plures terminationes currentes praeter paucas levissimas et limitatas in capacitatibus. Ad hoc compenset GNOME Terminal, Konsole, urxvt, Terminator et Xfce Terminatio daemonum modum habent, qui permittit ut multiplices terminationes per unum processum regere sinat, memoriam consummationis limitans.

Overview terminalis aemuli

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 animadversum est in MMX "quod adhuc accidit). Sed dissimilis exsecutiones antiquarum, nunc saltem haec notitia in usu AES256 GCM encrypta est (ex versione 0.39.2). Sed rationabilis quaestio oritur: quid tam speciale de bibliotheca VTE ut requirit talem accessum ad exsequendum non vexillum.

conclusio,

In prima parte articuli, invenimus VTE-substructio terminales bona lineamenta habere, sed nunc videmus hoc fieri cum aliqua opera facienda. Memoria autem non est exitus, quia omnes VTE terminales possunt per Daemonum processum coerceri, qui appetitum suum terminat. Attamen systemata vetustiora quae corporis limitationem super moles RAM et nuclei buffers habent, versionibus terminalium prioribus adhuc indigent, cum signanter pauciores facultates consumunt. Quamvis VTE terminales bene in probationibus perput (scrolling) perstiterint, latencia eorum ostentatio supra limen in GNOME User Guide positum est. VTE tincidunt probabiliter hoc inputatur. Si consideremus etiam pro Linux utentibus novitiis terminalem occurrentibus inevitabilem esse, possunt eam magis amicabilem usorem reddere. Pro geeks periti, mutandi ex defectu terminalis oculi etiam minus intente possunt et facultas vitare futuras iniurias et morbos laboris relatos propter sessiones longas laboris. Dolendum est, solum vetus xterm et mlterm nos ad limen magicae pingendi 10 millisecondorum, quod multis ingratum est.

Probatio mensurarum etiam ostendit ob evolutionem Linux ambitus graphicos, tincidunt plures medios facere debebant. Nonnulli usores ad actores fenestras regulares spectare volunt, prout reductionem pingentem significantem praebent. Infeliciter, latentiam pro Wayland metiri non potuit: programmatis typometri usus sum creatus ad quod Wayland destinatur ne: alias fenestras explorarent. Wayland componens melius praestare quam X.org spero, et spero etiam in futuro aliquem invenire viam ad latentiam metiendam in hac rerum ambitu.

Source: www.habr.com

Add a comment