Panoramica di emulatori di terminal

Uni pochi parolle da u nostru ufficio di traduzzione: di solitu tutti s'impegnanu à traduce l'ultimi materiali è publicazioni, è ùn simu micca eccezzioni. Ma i terminali ùn sò micca qualcosa chì hè aghjurnatu una volta à settimana. Dunque, avemu traduttu per voi un articulu di Antoine Beaupré, publicatu in a primavera di u 2018: malgradu a so "età" considerableu per i normi muderni, in u nostru parè, u materiale ùn hà micca persu a so rilevanza in tuttu. Inoltre, questu era uriginale una seria di dui articuli, ma avemu decisu di cumminà in un grande postu.

Panoramica di emulatori di terminal

I terminali anu un postu particulari in a storia di l'informatica, ma in l'ultimi decennii sò stati custretti à sopravvive à fiancu à a linea di cummandu cum'è l'interfacce gràfiche diventanu omnipresente. Emulatori di terminal rimpiazzatu u so propiu fratelli hardware, chì, à u turnu, eranu una mudificazione di sistemi basati nantu à carte perforate è switch toggle. I distribuzioni muderni venenu cù una varietà di emulatori di terminali di tutte e forme è culori. E mentre chì parechji sò cuntentati cù u terminal standard furnitu da u so ambiente di travagliu, alcuni utilizanu orgogliosi software esoticu per eseguisce a so cunchiglia preferita o editore di testu. Ma, cum'è avemu vistu da questu articulu, micca tutti i terminali sò stati creati in a listessa maghjina: sò assai diffirenti in funziunalità, dimensione è prestazione.

Certi terminali anu buchi di sicurezza francamente sorprendenti, in più a maiò parte anu un inseme di funzioni completamente differenti, da u supportu per una interfaccia tabulata à scripting. Ancu noi hà guardatu l'emulatori di terminal in u passatu distante, Questu articulu hè una aghjurnazione di u materiale precedente chì aiutarà i lettori à determinà quale terminal per aduprà in 2018. A prima mità di l'articulu compara caratteristiche, è a seconda mità evaluate u rendiment.

Eccu i terminali chì aghju rivedutu:

Panoramica di emulatori di terminal

Quessi ùn sò micca l'ultime versioni, postu chì era limitatu à e custruzzioni stabile à u mumentu di a scrittura, chì aghju pussutu sbulicà nantu à Debian 9 o Fedora 27. L'unica eccezzioni hè Alacritty. Hè un discendente di terminali accelerati da GPU è hè scrittu in una lingua inusual è nova per questu compitu - Rust. Aghju escluditu i terminali web da a mo rivista (cumpresi quelli nantu à Elettron), perchè e teste preliminari anu dimustratu a so prestazione estremamente povera.

Supportu Unicode

Aghju cuminciatu i mo testi cù u supportu Unicode. A prima prova di i terminali era di vede a stringa Unicode da Articuli di Wikipedia: "é, Δ, И, ק, م, ๗, あ, 叶, 葉 et 말." Questa prova simplice mostra se u terminal pò operare currettamente in u mondu sanu. U terminal xterm ùn mostra micca u caratteru arabu Mem in cunfigurazione predeterminata:

Panoramica di emulatori di terminal

Per automaticamente, xterm usa u classicu "fixed" font, chì, secondu sempre a stessa Vicky, hà "copertura Unicode sustanziale da u 1997". Ci hè qualcosa chì succede in questu font chì face chì u caratteru apparisce cum'è un quadru in biancu è hè solu quandu u font di testu hè aumentatu à 20+ punti chì u caratteru infine cumencia à vede currettamente. Tuttavia, sta "correzione" rompe a visualizazione di altri caratteri Unicode:

Panoramica di emulatori di terminal

Queste screenshots sò stati fatti in Fedora 27, postu chì hà datu risultati megliu cà Debian 9, induve alcune versioni più vechje di terminali (in particulare mlterm) ùn puderanu micca trattà bè i fonti. Per furtuna, questu hè stata corretta in versioni successive.

Avà nutate cumu a linea hè visualizata in xterm. Risulta chì u simbulu Mem è i seguenti semitichi qoph riferite à i script di stile RTL (di diritta à manca), cusì tecnicamente duveranu esse affissati da a diritta à a manca. I navigatori web cum'è Firefox 57 gestiscenu a linea sopra in modu correttu. Una versione più simplice di u testu RTL hè a parolla "Sara" in ebraicu (Sara). Pagina Wiki nantu à i testi bidirezionali dice u seguente:

"Molti prugrammi di computer ùn ponu micca vede u testu bidirezionale currettamente. Per esempiu, u nome ebraicu "Sarah" hè custituitu da i caratteri sin (ש) (chì apparisce à a diritta), dopu resh (ר) è infine ellu (ה) (chì deve apparisce à manca).

Parechji terminali fallenu sta prova: Alacritty, terminali Gnome derivati ​​​​di VTE è XFCE, urxvt, st è xterm mostranu "Sara" in ordine inversu, cum'è s'ellu avia scrittu u nome cum'è "Aras".

Panoramica di emulatori di terminal

Un altru prublema cù i testi bidirezionali hè chì anu da esse allinati in qualchì modu, soprattuttu quandu si tratta di mischjà testi RTL è LTR. I script RTL duveranu eseguisce da u latu drittu di a finestra di a terminale, ma chì deve succede per i terminali chì predeterminate à LTR English? A maiò parte di elli ùn anu micca miccanichi spiciali è allineanu tuttu u testu à a manca (cumpresu in Konsole). L'eccezzioni sò pterm è mlterm, chì aderiscenu à i normi è allineanu tali linee.

Panoramica di emulatori di terminal

Prutezzione di l'inserzione

A prossima funzione critica ch'e aghju identificatu hè a prutezzione anti-inserzione. Ancu s'ellu hè largamente cunnisciutu chì l'incantesimi cum'è:

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

sò cumandamenti push di esecuzione di codice, poche persone sanu chì i cumandamenti nascosti ponu sneak in a cunsola quandu copianu è incollà da un navigatore web, ancu dopu un'ispezione attenta. Site di verificazione Gianna Horna mostra brillantamente quantu innocu-aspettu u cumanda hè:

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

diventa un tali fastidiu quandu hè incollatu da u situ web di Horn in u 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

Cumu funziona? U codice malicioso hè inclusu in u bloccu , chì hè spustatu fora di a vista di l'utilizatori cù CSS.

Modu di pasta bracketed hè chjaramente cuncepitu per neutralizà tali attacchi. In questu modu, i terminali chjude u testu incollatu in un paru di sequenze di fuga speciale per dì à a cunchiglia di l'urigine di u testu. Questu dice à a cunchiglia chì pò ignurà caratteri speciali chì u testu incollatu pò cuntene. Tutti i terminali tornanu à u venerable xterm supportanu sta funzione, ma incolla in modu Bracketed richiede supportu da a cunchiglia o l'applicazione in esecuzione in u terminal. Per esempiu, l'usu di u software GNU Readline (stessa Bash), hà bisognu di un schedariu ~/.inputrc:

set enable-bracketed-paste on

Sfurtunatamente, u situ di prova di Horn mostra ancu cumu per passà sta prutezzione per mezu di u furmatu di testu stessu è finiscinu prematuramente per applicà u modu Bracketed. Questu funziona perchè certi terminali ùn filtranu micca currettamente e sequenze di scappata prima di aghjunghje u so propiu. Per esempiu, in u mio ùn aghju mai statu capace di cumpiendu bè i testi di Konsole ancu cù a cunfigurazione curretta .inputrc schedariu. Questu significa chì pudete fà facilmente a vostra cunfigurazione di u sistema corrotta per una applicazione micca supportata o una cunchiglia cunfigurata incorrectamente. Questu hè soprattuttu periculosu quandu si accede à i servitori remoti, induve u travagliu di cunfigurazione attentu hè menu cumuni, soprattuttu s'ellu avete parechje macchine remoti.

Una bona suluzione à stu prublema hè u plugin di cunferma di pasta per u terminal urxvt, chì dumanda solu u permessu di inserisce qualsiasi testu chì cuntene newlines. Ùn aghju micca truvatu una opzione più sicura per l'attaccu di testu descrittu da Horn.

Tabs è profili

Una funzione populari avà hè u supportu per una interfaccia tabulata, chì definiremu cum'è una finestra di terminale chì cuntene parechji altri terminali. Sta funzione differisce per i diversi terminali, è ancu chì i terminali tradiziunali xterm ùn supportanu micca e tabulazioni in tuttu, incarnazioni terminali più muderni cum'è Xfce Terminal, GNOME Terminal è Konsole anu sta funzione. Urxvt supporta ancu e tabulazioni, ma solu s'ellu utilizate un plugin. Ma in quantu à u supportu di tabulazione stessu, Terminator hè u capu indiscutitu: ùn solu sustene e tabulazioni, ma pò ancu organizà terminali in ogni ordine (vede l'imagine sottu).

Panoramica di emulatori di terminal

Un'altra caratteristica di Terminator hè a capacità di "raggruppà" queste tabulazioni inseme è di mandà e stesse pulsazioni di tasti à parechji terminali à u stessu tempu, chì furnisce un strumentu crudu per fà operazioni di massa in più servitori simultaneamente. Una funzione simili hè ancu implementata in Konsole. Per utilizà sta funzione in altri terminali, avete aduprà software di terzu partitu cum'è Cluster SSH, xlax o tmux.

I tabulazioni funzionanu soprattuttu bè quandu sò assuciati cù profili: per esempiu, pudete avè una tabulazione per email, una altra per chat, è cusì. Questu hè ben supportatu da u Terminal Konsole è u Terminal GNOME. I dui permettenu à ogni tabulazione di lancià automaticamente u so propiu prufilu. Terminator sustene ancu i profili, ma ùn aghju micca pussutu truvà un modu per lancià automaticamente certi prugrammi quandu apre una tabulazione specifica. L'altri terminali ùn anu micca cuncettu di "profilu" in tuttu.

Ruffles

L'ultima cosa ch'e aghju da copre in a prima parte di questu articulu hè l'apparizione di i terminali. Per esempiu GNOME, Xfce è urxvt supportanu a trasparenza, ma recentemente anu abbandunatu u supportu per l'imaghjini di fondo, furzendu alcuni utilizatori à cambià à u terminal. Tilix. In modu persunale, sò cuntentu cun ellu è hè simplice risorse x, chì stabilisce u set base di culori di fondo per urxvt. Tuttavia, i temi di culore non standard ponu ancu creà prublemi. Per esempiu, Solarizatu micca u travagliu cù l'applicazioni htop и IPTraf, postu chì anu digià aduprà i so culori.

Terminal VT100 originale ùn sustene micca i culori, è i novi sò spessu limitati à una paleta di 256 culori. Per l'utilizatori avanzati chì stilanu i so terminali, shell prompts o status bars in modu cumplessu pò esse una limitazione fastidiosa. Gist piste chì terminali anu supportu "True Color". I mo testi cunfirmanu chì i terminali st, Alacritty è basati in VTE supportanu perfettamente True Color. L'altri terminali ùn viaghjanu micca bè in questu sensu è, in fattu, ùn anu mancu vede 256 culori. Quì sottu pudete vede a diffarenza trà u supportu True Color in i terminali GNOME, st è xterm, chì facenu un bonu travagliu di questu cù a so paleta di culori 256, è urxvt, chì ùn solu falla a prova, ma ancu mostra qualchi caratteri lampanti invece di elli.

Panoramica di emulatori di terminal

Certi terminali analizanu ancu u testu per i mudelli URL per fà cliccà i ligami. Questu hè appiicatu à tutti i terminali derivati ​​​​di VTE, mentri urxvt richiede un plugin speciale chì trasfurmà l'URL nantu à un clic o utilizendu un shortcut di teclatu. Altri terminali chì aghju pruvatu l'URL di visualizazione in altri modi.

Infine, una nova tendenza in i terminali hè l'opzione di u buffer di scroll. Per esempiu, st ùn hà micca buffer di scorrimentu; si assume chì l'utilizatore utilizerà un multiplexer di terminal cum'è tmux è Schernu GNU.

Alacritty manca ancu di buffer di backscroll, ma sarà aghjuntu prestu u so supportu per via di "amplitu feedback" nantu à questu tema da l'utilizatori. In più di questi principianti, ogni terminale chì aghju pruvatu chì puderia truvà supporta u scrolling inversu.

Subtotali

In a seconda parte di u materiale (in l'uriginale si trattava di dui articuli diffirenti - circa. corsia) compareremu u rendiment, l'usu di a memoria è a latenza. Ma pudemu digià vede chì alcuni di i terminali in quistione anu serii difetti. Per esempiu, l'utilizatori chì travaglianu regularmente cù script RTL puderanu cunsiderà mlterm è pterm, postu ch'elli sò megliu à gestisce e cumpetenze simili à l'altri. Konsole hà ancu fattu bè. L'utilizatori chì ùn travaglianu micca cù script RTL ponu sceglie qualcosa altru.

In quantu à a prutezzione contra l'inserzione di codice maliziusi, urxvt si distingue per a so implementazione speciale di prutezzione contru stu tipu d'attaccu, chì mi pare definitamente cunvene. Per quelli chì cercanu qualchi campane è fischi, Konsole vale a pena un ochju. Infine, vale a pena nutà chì VTE hè una basa excelente per i terminali, chì guarantisci u supportu di culore, ricunniscenza URL, etc. À u primu sguardu, u terminal predeterminatu chì vene cù u vostru ambiente favuritu pò risponde à tutti i requisiti, ma lascemu sta quistione aperta finu à chì capiscenu u rendiment.

Cuntinuemu a conversazione


In generale, u funziunamentu di i terminali in sè stessu pò sembrà un prublema distanti, ma cum'è risulta, alcuni di elli presentanu una latenza sorprendentemente alta per u software di un tipu cusì fundamentale. In seguitu, guardemu ancu ciò chì hè tradiziunale chjamatu "velocità" (in fatti, questu hè a velocità di scrolling) è u cunsumu di memoria di u terminal (cù l'avvertimentu chì questu ùn hè micca cusì criticu oghje cum'è decennii fà).

Ritardu

Dopu un studiu approfonditu di u funziunamentu di u terminal, aghju ghjuntu à a cunclusione chì u paràmetru più impurtante in questu sensu hè a latenza (ping). In u so articulu "Stampemu cun piacè" Pavel Fatin hà guardatu a latenza di diversi editori di testu è hà insinuatu chì i terminali in questu sensu pò esse più lenti cà l'editori di testu più veloci. Hè statu questu suggerimentu chì in fine m'hà purtatu à fà e mo teste è à scrive stu articulu.

Ma chì hè a latenza, è perchè hè cusì impurtante? In u so articulu, Fatin hà definitu cum'è "u ritardu trà a pressione di una chjave è l'aghjurnamentu di u screnu currispundenti" è citatu "Guida à l'interazzione umanu-computer", chì dice: "U ritardu in u feedback visuale nantu à una visualizazione di l'urdinatore hà un impattu impurtante in u cumpurtamentu è a satisfaczione di u dattilografu".

Fatin spiega chì questu ping hà cunsequenze più profonde cà a solu satisfaczione: "a scrittura diventa più lenta, più errori accadenu, è a tensione di l'ochji è i musculi aumenta". In altri palori, un grande ritardu pò purtà à typos è ancu una qualità di codice più bassa, postu chì porta à una carica cognitiva supplementaria in u cervellu. Ma u peghju hè chì u ping "aumenta a tensione di l'ochji è i musculi", chì pare chì implica. u sviluppu di ferite in u travagliu in u futuru (Apparentemente, l'autore significa prublemi cù i musculi di l'ochji, spalle, braccia è, sicuru, visione - circa. corsia) a causa di u stress ripetitivu.

Certi di sti effetti sò cunnisciuti per un bellu pezzu, è i risultati ricerca, publicatu in u 1976 in u ghjurnale Ergonomia, hà dettu chì un ritardu di 100 millisecondi "implica significativamente a velocità di scrittura". Più recentemente, a Guida d'Usuariu di GNOME hà introduttu tempu di risposta accettabile in 10 millisecondi, è s'è tù vai più luntanu, tandu Microsoft Research mostra chì 1 millisecondu hè ideale.

Fatin hà realizatu i so testi nantu à editori di testu; hà criatu un strumentu portable chjamatu Tipometru, chì aghju utilizatu per pruvà ping in emulatori di terminal. Tenite in mente chì a prova hè stata realizata in modu di simulazione: in a realità, avemu bisognu di piglià in contu a latenza di input (tastiera, controller USB, etc.) è di output (buffer di carta video, monitor). Sicondu Fatin, in cunfigurazioni tipiche hè di circa 20 ms. Se tenete un equipamentu di ghjocu, pudete ottene sta figura in solu 3 millisecondi. Siccomu avemu digià un hardware cusì veloce, l'applicazione ùn deve micca aghjunghje a so propria latenza. L'obiettivu di Fatin hè di portà a latenza di l'applicazione à 1 millisecondu, o ancu ghjunghje senza dialing ritardu misurabile, cumu in IntelliJ IDEA 15.

Eccu i risultati di e mo misurazioni, è ancu alcuni di i risultati di Fatin, per dimustrà chì u mo esperimentu accunsenu cù i so testi:

Panoramica di emulatori di terminal

A prima cosa chì m'hà colpitu era u megliu tempu di risposta di i prugrammi più vechji cum'è xterm è mlterm. Cù a peor latenza di registru (2,4 ms), anu fattu megliu cà u terminal mudernu più veloce (10,6 ms per st). Nisun terminal mudernu cade sottu à u limitu di 10 millisecondi. In particulare, Alacritty ùn riesce à scuntrà a dichjarazione di "emulatore di terminale più veloce dispunibule", ancu s'è i so punteggi anu migliuratu da a so prima rivista in 2017. Infatti, l'autori di u prugettu cuscenza di a situazione è travaglianu per migliurà a visualizazione. Hè ancu esse nutatu chì Vim cù GTK3 hè un ordine di grandezza più lento di u so omologu GTK2. Da questu pudemu cuncludi chì GTK3 crea una latenza supplementaria, è questu hè riflessu in tutti l'altri terminali chì l'utilizanu (Terminator, Xfce4 Terminal è Terminal GNOME).

Tuttavia, e differenze ùn ponu micca esse notevuli à l'ochju. Cum'è Fatin spiega, "ùn devi micca esse cuscenti di u ritardu per avè un effettu nantu à voi". Fatin avvisa ancu di a deviazione standard: "qualsiasi disturbazione in a latenza (jitter) crea un stress supplementu per via di a so imprevisibilità".

Panoramica di emulatori di terminal

U graficu sopra hè pigliatu nantu à Debian 9 pura (stretch) cù i3 window manager. Stu ambiente pruduce i migliori risultati in testi di latenza. Comu risulta, GNOME crea un ping addiziale di 20 ms per tutte e misurazioni. Una spiegazione pussibule per questu hè a prisenza di prugrammi cù u prucessu sincronu di l'eventi di input. Fatin dà un esempiu per un tali casu workrave, chì aghjunghje un ritardu processendu tutti l'eventi di input in modu sincronu. Per automaticamente, GNOME vene ancu cun un gestore di finestra Mutter, chì crea una capa addiziale di buffering, chì affetta u ping è aghjunghje almenu 8 millisecondi di latenza.

Panoramica di emulatori di terminal

Velocità di scorrimentu

A prossima prova hè una prova tradiziunale di "velocità" o "larghezza di banda", chì misura quantu rapidamente u terminal pò scrollà una pagina mentre mostra una grande quantità di testu nantu à u screnu. A meccanica di a prova varieghja; a prova originale era di generà simpricimenti a stessa stringa di testu utilizendu u cumandamentu seq. Altre teste includenu a prova di Thomas E. Dickey (mantenitore xterm), chì ripetutamente u schedariu terminfo.src hè telecaricatu. In una altra rivista di u funziunamentu di u terminal Den Luu usa una stringa codificata in base32 di bytes aleatorii, chì hè uscita à u terminal cù cat. Luu cunsidereghja chì un tali test hè "un benchmark inutilmente cum'è si pò imaginà" è suggerisce invece di utilizà a risposta terminale cum'è metrica primaria. Dickey chjama ancu a so prova ingannosa. Tuttavia, i dui autori ricunnoscenu chì a larghezza di banda di a finestra di u terminal pò esse un prublema. Luu hà scupertu Emacs Eshell chì si congelava quandu mostrava i fugliali grossi, è Dickey hà ottimizatu u terminal per sbarazzarsi di a lentezza visuale di xtrerm. Dunque, ci hè ancu qualchì meritu à sta prova, ma postu chì u prucessu di rendering hè assai sfarente da u terminal à u terminal, pò ancu esse usatu cum'è cumpunente di prova per pruvà altri paràmetri.

Panoramica di emulatori di terminal

Quì vedemu u rxvt è st pull davanti à a cumpetizione, seguita da l'Alacritty assai più recente, chì hè cuncepitu cù un focusu nantu à u rendiment. Dopu sò Xfce (famiglia VTE) è Konsole, chì sò quasi duie volte più veloce. L'ultimu hè xterm, chì hè cinque volte più lento di rxvt. Duranti a prova, xterm hà ancu rippled assai, facendu u testu chì passava difficiule di vede ancu s'ellu era a stessa linea. Konsole era veloce, ma era complicatu à volte: a visualizazione si congelava da u tempu à u tempu, mostrà u testu parziale o ùn mostrava micca. Altri terminali mostranu stringhe chjaramente, cumprese st, Alacritty è rxvt.

Dickey spiega chì e differenze di rendiment sò dovute à u disignu di buffer di scroll in terminali differenti. In particulare, accusa rxvt è altri terminali di "ùn seguitanu micca e regule generale":

"A cuntrariu di xterm, rxvt ùn hà micca pruvatu à visualizà tutte l'aghjurnamenti. S'ellu cade in daretu, ricuserà alcune aghjurnamenti per ritruvà. Questu hà avutu un impattu più grande nantu à a velocità di scorrimentu apparente chì in l'urganizazione di a memoria interna. Un inconveniente era chì l'animazione ASCII era un pocu imprecisa ".

Per riparà sta lentezza percepita di xterm, Dickey suggerisce aduprà a risorsa fastScroll, chì permette à xterm di scartà alcune aghjurnamenti di schermu per seguità u flussu. I mo testi cunfirmanu chì fastScroll migliurà u rendiment è porta xterm à parità cù rxvt. Questa hè, però, una crutch piuttostu grossa, cum'è Dickey stessu spiega: "a volte xterm - cum'è konsole - pare chì stallà mentre aspetta una nova serie di aghjurnamenti di u screnu dopu chì alcuni sò stati eliminati". In questu modu, pare chì altri terminali anu truvatu u megliu cumprumissu trà a velocità è l'integrità di a visualizazione.

U cunsumu di risorse

Indipendentemente da s'ellu hè sensu di cunsiderà a velocità di scrolling cum'è una metrica di rendiment, sta prova ci permette di simule a carica nantu à i terminali, chì in turnu ci permette di misurà altri parametri cum'è memoria o usu di discu. I metrici sò stati ottenuti da eseguisce a prova specifica seq sottu u monitoraghju di u prucessu Python. Hà cullucatu dati di metri getrusage () di ru_maxrss, quantità ru_oblock и ru_inblock è un timer simplice.

Panoramica di emulatori di terminal

In questa prova, u ST occupa u primu postu cù u cunsumu mediu di memoria più bassu di 8 MB, chì ùn hè micca surprisante cunziddi chì l'idea principale di u disignu hè a simplicità. mlterm, xterm è rxvt cunsuma un pocu più - circa 12 MB. Un altru risultatu notevule hè Alacritty, chì richiede 30 MB per esse funziona. Allora ci sò terminali di a famiglia VTE cù figuri da 40 à 60 MB, chì hè assai assai. Stu cunsumu pò esse spiegatu da u fattu chì sti terminali utilizanu biblioteche di più altu livellu, per esempiu, GTK. Konsole vene in l'ultimu cun un enorme 65MB di cunsumu di memoria durante e teste, ancu s'ellu pò esse ghjustificatu da a so larga gamma di funzioni.

Comparatu à i risultati precedenti ottenuti deci anni fà, tutti i prugrammi cuminciaru à cunsumà notevolmente più memoria. Xterm necessitava 4 MB, ma avà necessita 15 MB solu à l'iniziu. Ci hè un aumentu simili di u cunsumu per rxvt, chì avà bisognu di 16 MB fora di a scatula. Xfce Terminal occupa 34 MB, chì hè trè volte più grande di prima, ma u Terminal GNOME richiede solu 20 MB. Di sicuru, tutti i testi previ sò stati realizati nantu à l'architettura 32-bit. À LCA 2012 Rusty Russell hà dettu, chì ci sò parechje ragioni più sottili chì puderanu spiegà l'aumentu di u cunsumu di memoria. Dittu chistu, avemu avà campatu in un tempu induve avemu gigabyte di memoria, cusì avemu da gestisce in qualchì manera.

Tuttavia, ùn possu micca aiutà à sente chì l'assignazione di più memoria à qualcosa di fundamentale cum'è u terminal hè una perdita di risorse. Questi prugrammi duveranu esse i più chjuchi di i più chjuchi, duveranu esse capace di eseguisce nantu à qualsiasi "scatola", ancu una scatula di scarpi, s'ellu ci hè mai ghjuntu à u puntu chì deve esse equipatu cù sistemi Linux (è sapete chì serà cusì. ). Ma cù questi numeri, l'utilizazione di a memoria diventerà un prublema in u futuru in ogni ambiente chì eseguisce parechje terminali fora di uni pochi di i più ligeri è limitati in capacità. Per cumpensà questu, GNOME Terminal, Konsole, urxvt, Terminator è Xfce Terminal anu un modu Daemon chì vi permette di cuntrullà parechji terminali attraversu un solu prucessu, limitendu u so cunsumu di memoria.

Panoramica di emulatori di terminal

Duranti i mo testi, aghju ghjuntu à un altru risultatu inespettatu in quantu à a lettura-scrittura di u discu: aghju aspittatu di vede nunda in tuttu quì, ma resultò chì certi terminali scrivenu i dati più voluminosi à u discu. Dunque, a biblioteca VTE mantene in realtà un buffer di scorrimentu nantu à u discu (sta funzione hè statu nutatu in u 2010, è questu succede sempre). Ma à u cuntrariu di implementazioni più vechje, avà almenu sta dati hè criptatu cù AES256 GCM (da a versione 0.39.2). Ma hè una quistione raghjone: ciò chì hè cusì speciale nantu à a biblioteca VTE chì esige un approcciu cusì micca standard per l'implementazione ...

cunchiusioni

In a prima parte di l'articulu, avemu truvatu chì i terminali basati in VTE anu un bonu settore di funziunalità, ma avà vedemu chì questu vene cun qualchì costu di rendiment. Avà a memoria ùn hè micca un prublema perchè tutti i terminali VTE ponu esse cuntrullati attraversu un prucessu Daemon, chì limita l'appetite. Tuttavia, i sistemi più vechji chì anu limitazioni fisiche nantu à a quantità di RAM è di buffer di kernel pò ancu avè bisognu di versioni precedenti di terminali, postu chì cunsumanu assai menu risorse. Ancu se i terminali VTE anu realizatu bè in teste di throughput (scrolling), a so latenza di visualizazione hè sopra à u limitu stabilitu in a Guida d'Usuariu di GNOME. I sviluppatori di VTE duveranu probabilmente piglià questu in contu. Se tenemu in contu chì ancu per l'utilizatori di Linux principianti chì scontranu un terminal hè inevitabbile, ponu fà più amichevule. Per i geeks sperimentati, cambià da u terminal predeterminatu pò ancu significà menu sforzu di l'ochji è a capacità di evità future ferite è e malatie di u travagliu per via di longu sessioni di travagliu. Sfurtunatamente, solu l'antica xterm è mlterm ci portanu à u limitu magicu di ping di 10 millisecondi, chì hè inacceptable per parechji.

E misurazioni di Benchmark anu dimustratu ancu chì per via di u sviluppu di l'ambienti grafichi Linux, i sviluppatori anu da fà una quantità di cumprumessi. Certi utilizatori puderanu guardà i gestori di finestra regulare chì furnisce una riduzione significativa di ping. Sfurtunatamente, ùn era micca pussibule di misurà a latenza per Wayland: u prugramma Typometer chì aghju utilizatu hè statu creatu per ciò chì Wayland hè designatu per prevene: spia in altre finestre. Spergu chì Wayland cumpusizioni cumporta megliu cà X.org, è speru ancu chì in u futuru qualchissia truvà una manera di misurà a latenza in questu ambiente.

Source: www.habr.com

Add a comment