మా అనువాద బ్యూరో నుండి కొన్ని పదాలు: సాధారణంగా ప్రతి ఒక్కరూ తాజా మెటీరియల్లు మరియు ప్రచురణలను అనువదించడానికి ప్రయత్నిస్తారు మరియు మేము మినహాయింపు కాదు. కానీ టెర్మినల్స్ వారానికి ఒకసారి నవీకరించబడేవి కావు. అందువల్ల, 2018 వసంతకాలంలో ప్రచురించబడిన ఆంటోయిన్ బ్యూప్రే యొక్క కథనాన్ని మేము మీ కోసం అనువదించాము: ఆధునిక ప్రమాణాల ప్రకారం దాని గణనీయమైన “వయస్సు” ఉన్నప్పటికీ, మా అభిప్రాయం ప్రకారం, పదార్థం దాని ఔచిత్యాన్ని ఏమాత్రం కోల్పోలేదు. అదనంగా, ఇది మొదట రెండు కథనాల శ్రేణి, కానీ మేము వాటిని ఒక పెద్ద పోస్ట్గా కలపాలని నిర్ణయించుకున్నాము.
కంప్యూటర్ చరిత్రలో టెర్మినల్లకు ప్రత్యేక స్థానం ఉంది, అయితే ఇటీవలి దశాబ్దాల్లో గ్రాఫికల్ ఇంటర్ఫేస్లు సర్వవ్యాప్తి చెందడంతో అవి కమాండ్ లైన్తో పాటు మనుగడ సాగించవలసి వచ్చింది.
కొన్ని టెర్మినల్లు చాలా ఆశ్చర్యకరమైన భద్రతా రంధ్రాలను కలిగి ఉంటాయి, ఇంకా చాలా వరకు టాబ్డ్ ఇంటర్ఫేస్కు మద్దతు నుండి స్క్రిప్టింగ్ వరకు పూర్తిగా భిన్నమైన ఫంక్షన్లను కలిగి ఉంటాయి. మేము అయినప్పటికీ
నేను సమీక్షించిన టెర్మినల్స్ ఇక్కడ ఉన్నాయి:
నేను డెబియన్ 9 లేదా ఫెడోరా 27లో విడుదల చేయగలిగాను, రాసే సమయంలో నేను స్థిరమైన బిల్డ్లకే పరిమితమయ్యాను కాబట్టి ఇవి తాజా వెర్షన్లు కాకపోవచ్చు. ఇది GPU-యాక్సిలరేటెడ్ టెర్మినల్స్ యొక్క వారసుడు మరియు ఈ పని కోసం అసాధారణమైన మరియు కొత్త భాషలో వ్రాయబడింది - రస్ట్. నేను నా సమీక్ష నుండి వెబ్ టెర్మినల్లను మినహాయించాను (వీటితో సహా
యూనికోడ్ మద్దతు
నేను యూనికోడ్ మద్దతుతో నా పరీక్షలను ప్రారంభించాను. టెర్మినల్స్ యొక్క మొదటి పరీక్ష యూనికోడ్ స్ట్రింగ్ను ప్రదర్శించడం
డిఫాల్ట్గా, xterm క్లాసిక్ "ఫిక్స్డ్" ఫాంట్ని ఉపయోగిస్తుంది, దీని ప్రకారం
ఈ స్క్రీన్షాట్లు ఫెడోరా 27లో తీయబడ్డాయి, ఎందుకంటే ఇది డెబియన్ 9 కంటే మెరుగైన ఫలితాలను ఇచ్చింది, ఇక్కడ కొన్ని పాత టెర్మినల్స్ (ప్రత్యేకంగా mlterm) ఫాంట్లను సరిగ్గా నిర్వహించలేకపోయాయి. అదృష్టవశాత్తూ ఇది తరువాతి సంస్కరణల్లో పరిష్కరించబడింది.
ఇప్పుడు xtermలో లైన్ ఎలా ప్రదర్శించబడుతుందో గమనించండి. ఇది గుర్తు మెమ్ మరియు క్రింది సెమిటిక్ అని మారుతుంది
“చాలా కంప్యూటర్ ప్రోగ్రామ్లు ద్వి దిశాత్మక వచనాన్ని సరిగ్గా ప్రదర్శించలేవు. ఉదాహరణకు, "సారా" అనే హీబ్రూ పేరు పాపం (ש) (కుడివైపున కనిపిస్తుంది), ఆపై రెష్ (ר) మరియు చివరగా అతను (ה) (ఎడమవైపు కనిపించాలి)"
అనేక టెర్మినల్స్ ఈ పరీక్షలో విఫలమయ్యాయి: అలక్రిటీ, VTE-ఉత్పన్నమైన గ్నోమ్ మరియు XFCE టెర్మినల్స్, urxvt, st మరియు xterm డిస్ప్లే "సారా" రివర్స్ ఆర్డర్లో, మనం పేరును "Aras"గా వ్రాసినట్లు.
ద్వి దిశాత్మక పాఠాలతో ఉన్న మరో సమస్య ఏమిటంటే, వాటిని ఎలాగైనా సమలేఖనం చేయాలి, ప్రత్యేకించి RTL మరియు LTR టెక్స్ట్లను కలపడం విషయానికి వస్తే. RTL స్క్రిప్ట్లు టెర్మినల్ విండో యొక్క కుడి వైపు నుండి అమలు చేయబడాలి, అయితే LTR ఇంగ్లీషుకు డిఫాల్ట్ అయ్యే టెర్మినల్స్ కోసం ఏమి జరగాలి? వాటిలో చాలా వరకు ప్రత్యేక మెకానిజమ్లు లేవు మరియు అన్ని టెక్స్ట్లను ఎడమవైపుకి (కాన్సోల్తో సహా) సమలేఖనం చేస్తాయి. మినహాయింపులు pterm మరియు mlterm, ఇవి ప్రమాణాలకు కట్టుబడి ఉంటాయి మరియు అటువంటి పంక్తులను కుడి-సమలేఖనం చేస్తాయి.
చొప్పించే రక్షణ
నేను గుర్తించిన తదుపరి క్లిష్టమైన లక్షణం యాంటీ ఇన్సర్షన్ రక్షణ. అక్షరములు ఇలా ఉన్నాయని విస్తృతంగా తెలిసినప్పటికీ:
$ curl http://example.com/ | sh
కోడ్ ఎగ్జిక్యూషన్ పుష్ కమాండ్లు, జాగ్రత్తగా తనిఖీ చేసిన తర్వాత కూడా వెబ్ బ్రౌజర్ నుండి కాపీ చేసి పేస్ట్ చేస్తున్నప్పుడు దాచిన కమాండ్లు కన్సోల్లోకి చొరబడతాయని కొంతమందికి తెలుసు.
git clone git: //git.kernel.org/pub/scm/utils/kup/kup.git
హార్న్ వెబ్సైట్ నుండి టెర్మినల్లో అతికించినప్పుడు అటువంటి ఇబ్బందిగా మారుతుంది:
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
అది ఎలా పని చేస్తుంది? బ్లాక్లో హానికరమైన కోడ్ చేర్చబడింది , ఇది CSSని ఉపయోగించి వినియోగదారు వీక్షణ నుండి తరలించబడింది.
set enable-bracketed-paste on
దురదృష్టవశాత్తూ, హార్న్ యొక్క పరీక్షా సైట్ ఈ రక్షణను టెక్స్ట్ ఫార్మాటింగ్ ద్వారా ఎలా దాటవేయాలో కూడా చూపిస్తుంది మరియు దానికి బ్రాకెట్ మోడ్ను వర్తింపజేయడం అకాలంగా ముగుస్తుంది. కొన్ని టెర్మినల్స్ వాటి స్వంత వాటిని జోడించే ముందు ఎస్కేప్ సీక్వెన్స్లను సరిగ్గా ఫిల్టర్ చేయనందున ఇది పని చేస్తుంది. ఉదాహరణకు, నాలో నేను సరైన కాన్ఫిగరేషన్తో కూడా కాన్సోల్ పరీక్షలను విజయవంతంగా పూర్తి చేయలేకపోయాను .inputrc ఫైల్. మద్దతు లేని అప్లికేషన్ లేదా తప్పుగా కాన్ఫిగర్ చేయబడిన షెల్ కారణంగా మీరు మీ సిస్టమ్ కాన్ఫిగరేషన్ను సులభంగా పాడైనట్లు పొందవచ్చని దీని అర్థం. రిమోట్ సర్వర్లలోకి లాగిన్ అయినప్పుడు ఇది చాలా ప్రమాదకరం, ఇక్కడ జాగ్రత్తగా కాన్ఫిగరేషన్ పని తక్కువగా ఉంటుంది, ప్రత్యేకించి మీరు చాలా రిమోట్ మెషీన్లను కలిగి ఉంటే.
ఈ సమస్యకు మంచి పరిష్కారం టెర్మినల్ కోసం పేస్ట్ నిర్ధారణ ప్లగ్ఇన్ urxvt, ఇది కేవలం కొత్త లైన్లను కలిగి ఉన్న ఏదైనా వచనాన్ని చొప్పించడానికి అనుమతిని అడుగుతుంది. హార్న్ వివరించిన వచన దాడికి నేను మరింత సురక్షితమైన ఎంపికను కనుగొనలేదు.
ట్యాబ్లు మరియు ప్రొఫైల్లు
ప్రస్తుతం జనాదరణ పొందిన లక్షణం టాబ్డ్ ఇంటర్ఫేస్కు మద్దతు, దీనిని మేము అనేక ఇతర టెర్మినల్స్ను కలిగి ఉన్న ఒక టెర్మినల్ విండోగా నిర్వచిస్తాము. ఈ ఫంక్షన్ వివిధ టెర్మినల్లకు భిన్నంగా ఉంటుంది మరియు సాంప్రదాయ xterm టెర్మినల్స్ ట్యాబ్లకు అస్సలు మద్దతు ఇవ్వనప్పటికీ, Xfce టెర్మినల్, GNOME టెర్మినల్ మరియు Konsole వంటి ఆధునిక టెర్మినల్ అవతారాలు ఈ ఫంక్షన్ను కలిగి ఉన్నాయి. Urxvt ట్యాబ్లకు కూడా మద్దతు ఇస్తుంది, కానీ మీరు ప్లగిన్ని ఉపయోగిస్తే మాత్రమే. కానీ ట్యాబ్ మద్దతు పరంగా, టెర్మినేటర్ తిరుగులేని నాయకుడు: ఇది ట్యాబ్లకు మద్దతు ఇవ్వడమే కాకుండా, టెర్మినల్లను ఏ క్రమంలోనైనా ఏర్పాటు చేయగలదు (క్రింద ఉన్న చిత్రాన్ని చూడండి).
టెర్మినేటర్ యొక్క మరొక లక్షణం ఏమిటంటే, ఈ ట్యాబ్లను కలిసి "గ్రూప్" చేయగల సామర్థ్యం మరియు ఒకే సమయంలో బహుళ టెర్మినల్లకు ఒకే కీస్ట్రోక్లను పంపడం, ఏకకాలంలో బహుళ సర్వర్లలో బల్క్ ఆపరేషన్లను నిర్వహించడానికి ఒక ముడి సాధనాన్ని అందించడం. ఇదే లక్షణం కాన్సోల్లో కూడా అమలు చేయబడింది. ఇతర టెర్మినల్స్లో ఈ లక్షణాన్ని ఉపయోగించడానికి, మీరు తప్పనిసరిగా మూడవ పక్ష సాఫ్ట్వేర్ను ఉపయోగించాలి
ప్రొఫైల్లతో జత చేసినప్పుడు ట్యాబ్లు బాగా పని చేస్తాయి: ఉదాహరణకు, మీరు ఇమెయిల్ కోసం ఒక ట్యాబ్, చాట్ కోసం మరొక ట్యాబ్ మరియు మొదలైనవి కలిగి ఉండవచ్చు. దీనికి కాన్సోల్ టెర్మినల్ మరియు గ్నోమ్ టెర్మినల్ బాగా మద్దతు ఇస్తున్నాయి. రెండూ ప్రతి ట్యాబ్ దాని స్వంత ప్రొఫైల్ను స్వయంచాలకంగా ప్రారంభించటానికి అనుమతిస్తాయి. టెర్మినేటర్ ప్రొఫైల్లకు కూడా మద్దతు ఇస్తుంది, కానీ మీరు నిర్దిష్ట ట్యాబ్ను తెరిచినప్పుడు కొన్ని ప్రోగ్రామ్లను స్వయంచాలకంగా ప్రారంభించే మార్గాన్ని నేను కనుగొనలేకపోయాను. ఇతర టెర్మినల్స్ "ప్రొఫైల్" అనే భావనను కలిగి ఉండవు.
రఫుల్స్
ఈ ఆర్టికల్ మొదటి భాగంలో నేను కవర్ చేసే చివరి విషయం టెర్మినల్స్ యొక్క రూపాన్ని. ఉదాహరణకు GNOME, Xfce మరియు urxvt పారదర్శకతకు మద్దతు ఇస్తున్నాయి, అయితే ఇటీవల నేపథ్య చిత్రాలకు మద్దతుని నిలిపివేసాయి, కొంతమంది వినియోగదారులు టెర్మినల్కు మారవలసి వచ్చింది.
కొన్ని టెర్మినల్స్ లింక్లను క్లిక్ చేయగలిగేలా చేయడానికి URL నమూనాల కోసం వచనాన్ని కూడా విశ్లేషిస్తాయి. ఇది అన్ని VTE-ఉత్పన్నమైన టెర్మినల్లకు వర్తిస్తుంది, అయితే urxvtకి ఒక ప్రత్యేక ప్లగ్-ఇన్ అవసరం అయితే అది ఒక క్లిక్పై లేదా కీబోర్డ్ సత్వరమార్గాన్ని ఉపయోగించి URLలను మారుస్తుంది. నేను పరీక్షించిన ఇతర టెర్మినల్స్ ఇతర మార్గాల్లో URLలను ప్రదర్శిస్తాయి.
చివరగా, టెర్మినల్స్లో కొత్త ట్రెండ్ స్క్రోల్ బఫర్ యొక్క ఐచ్ఛికం. ఉదాహరణకు, stకి స్క్రోల్ బఫర్ లేదు; వినియోగదారు tmux మరియు వంటి టెర్మినల్ మల్టీప్లెక్సర్ని ఉపయోగిస్తారని భావించబడుతుంది
అలక్రిటీలో బ్యాక్స్క్రోల్ బఫర్లు కూడా లేవు, కానీ
ఉపమొత్తాలు
పదార్థం యొక్క రెండవ భాగంలో (అసలు ఇవి రెండు వేర్వేరు వ్యాసాలు - సుమారు. వీధి) మేము పనితీరు, మెమరీ వినియోగం మరియు జాప్యాన్ని పోల్చి చూస్తాము. కానీ ప్రశ్నలోని కొన్ని టెర్మినల్స్ తీవ్రమైన లోపాలను కలిగి ఉన్నాయని మనం ఇప్పటికే చూడవచ్చు. ఉదాహరణకు, RTL స్క్రిప్ట్లతో క్రమం తప్పకుండా పని చేసే వినియోగదారులు mlterm మరియు ptermలను పరిగణించాలనుకోవచ్చు, ఎందుకంటే వారు ఇతరుల కంటే ఇలాంటి పనులను నిర్వహించడంలో మెరుగ్గా ఉంటారు. కాన్సోల్ కూడా బాగా నటించింది. RTL స్క్రిప్ట్లతో పని చేయని వినియోగదారులు వేరొకదాన్ని ఎంచుకోవచ్చు.
హానికరమైన కోడ్ చొప్పించడం నుండి రక్షణ పరంగా, urxvt ఈ రకమైన దాడికి వ్యతిరేకంగా రక్షణ యొక్క ప్రత్యేక అమలు కారణంగా నిలుస్తుంది, ఇది నాకు ఖచ్చితంగా సౌకర్యవంతంగా కనిపిస్తుంది. కొన్ని గంటలు మరియు ఈలల కోసం వెతుకుతున్న వారికి, కాన్సోల్ చూడదగినది. చివరగా, VTE అనేది టెర్మినల్స్ కోసం ఒక అద్భుతమైన బేస్ అని గమనించాలి, ఇది రంగు మద్దతు, URL గుర్తింపు మరియు మొదలైన వాటికి హామీ ఇస్తుంది. మొదటి చూపులో, మీకు ఇష్టమైన వాతావరణంతో వచ్చే డిఫాల్ట్ టెర్మినల్ అన్ని అవసరాలను తీర్చవచ్చు, అయితే మేము పనితీరును అర్థం చేసుకునే వరకు ఈ ప్రశ్నను తెరిచి ఉంచుదాం.
సంభాషణను కొనసాగిద్దాం
సాధారణంగా, టెర్మినల్స్ యొక్క పనితీరు చాలా దూరం సమస్యగా అనిపించవచ్చు, కానీ అది తేలినట్లుగా, వాటిలో కొన్ని అటువంటి ప్రాథమిక రకం సాఫ్ట్వేర్ కోసం ఆశ్చర్యకరంగా అధిక జాప్యాన్ని ప్రదర్శిస్తాయి. సాంప్రదాయకంగా "స్పీడ్" (వాస్తవానికి, ఇది స్క్రోలింగ్ వేగం) మరియు టెర్మినల్ యొక్క మెమరీ వినియోగం (దశాబ్దాల క్రితం ఉన్నంత క్లిష్టమైనది కాదనే హెచ్చరికతో) తదుపరి మేము పరిశీలిస్తాము.
ఆలస్యం
టెర్మినల్ పనితీరును పూర్తిగా అధ్యయనం చేసిన తర్వాత, ఈ విషయంలో అత్యంత ముఖ్యమైన పరామితి జాప్యం (పింగ్) అని నేను నిర్ధారణకు వచ్చాను. తన వ్యాసంలో
అయితే జాప్యం అంటే ఏమిటి మరియు ఇది ఎందుకు చాలా ముఖ్యమైనది? తన వ్యాసంలో, ఫాటిన్ దానిని "కీని నొక్కడం మరియు సంబంధిత స్క్రీన్ నవీకరణ మధ్య ఆలస్యం" అని నిర్వచించాడు మరియు కోట్ చేశాడు
ఈ పింగ్ కేవలం సంతృప్తి కంటే లోతైన పరిణామాలను కలిగి ఉందని ఫాటిన్ వివరిస్తుంది: "టైపింగ్ నెమ్మదిగా మారుతుంది, మరిన్ని లోపాలు సంభవిస్తాయి మరియు కంటి మరియు కండరాల ఒత్తిడి పెరుగుతుంది." మరో మాటలో చెప్పాలంటే, పెద్ద జాప్యం అక్షరదోషాలకు దారితీస్తుంది మరియు కోడ్ నాణ్యతను కూడా తగ్గిస్తుంది, ఎందుకంటే ఇది మెదడుపై అదనపు అభిజ్ఞా భారానికి దారితీస్తుంది. కానీ అధ్వాన్నమైన విషయం ఏమిటంటే, పింగ్ "కంటి మరియు కండరాల ఒత్తిడిని పెంచుతుంది," ఇది సూచిస్తుంది
ఈ ప్రభావాలలో కొన్ని చాలా కాలంగా తెలిసినవి, మరియు ఫలితాలు
ఫాటిన్ తన పరీక్షలను టెక్స్ట్ ఎడిటర్లపై నిర్వహించాడు; అనే పోర్టబుల్ సాధనాన్ని సృష్టించాడు
నా ప్రయోగం అతని పరీక్షలతో ఏకీభవించిందని చూపించడానికి నా కొలతల ఫలితాలు, అలాగే ఫాటిన్ యొక్క కొన్ని ఫలితాలు ఇక్కడ ఉన్నాయి:
xterm మరియు mlterm వంటి పాత ప్రోగ్రామ్ల యొక్క మెరుగైన ప్రతిస్పందన సమయం నన్ను తాకిన మొదటి విషయం. చెత్త రిజిస్టర్ లేటెన్సీతో (2,4 ms), వారు వేగవంతమైన ఆధునిక టెర్మినల్ (st కోసం 10,6 ms) కంటే మెరుగ్గా పనిచేశారు. ఆధునిక టెర్మినల్ ఏదీ 10 మిల్లీసెకన్ల థ్రెషోల్డ్ కంటే తక్కువగా ఉండదు. ప్రత్యేకించి, అలక్రిట్టి "అందుబాటులో ఉన్న వేగవంతమైన టెర్మినల్ ఎమ్యులేటర్" దావాను అందుకోవడంలో విఫలమైంది, అయినప్పటికీ 2017లో దాని మొదటి సమీక్ష నుండి దాని స్కోర్లు మెరుగుపడ్డాయి. నిజానికి, ప్రాజెక్ట్ రచయితలు
అయితే, తేడాలు కంటికి గుర్తించబడవు. ఫాటిన్ వివరించినట్లుగా, "మీపై ప్రభావం చూపడానికి ఆలస్యం గురించి మీరు తెలుసుకోవాల్సిన అవసరం లేదు." ప్రామాణిక విచలనం గురించి కూడా ఫాటిన్ హెచ్చరించాడు: "జాప్యం (జిట్టర్)లో ఏవైనా ఆటంకాలు వాటి అనూహ్యత కారణంగా అదనపు ఒత్తిడిని సృష్టిస్తాయి."
పై గ్రాఫ్ స్వచ్ఛమైన డెబియన్ 9 (స్ట్రెచ్)తో తీసుకోబడింది
స్క్రోల్ వేగం
తదుపరి పరీక్ష సాంప్రదాయ "వేగం" లేదా "బ్యాండ్విడ్త్" పరీక్ష, ఇది స్క్రీన్పై పెద్ద మొత్తంలో వచనాన్ని ప్రదర్శిస్తున్నప్పుడు టెర్మినల్ ఎంత త్వరగా పేజీని స్క్రోల్ చేయగలదో కొలుస్తుంది. పరీక్ష యొక్క మెకానిక్స్ మారుతూ ఉంటాయి; సీక్ కమాండ్ని ఉపయోగించి ఒకే టెక్స్ట్ స్ట్రింగ్ను రూపొందించడం అసలు పరీక్ష. ఇతర పరీక్షలలో థామస్ E. డిక్కీ యొక్క (xterm మెయింటెయినర్) పరీక్ష ఉంటుంది, ఇది పదే పదే
ఇక్కడ మేము rxvt మరియు st పోటీకి ముందుకి లాగడం చూస్తాము, దాని తర్వాత చాలా కొత్త అలక్రిట్టి, ఇది పనితీరుపై దృష్టి సారించి రూపొందించబడింది. తర్వాతి స్థానాల్లో Xfce (VTE కుటుంబం) మరియు Konsole ఉన్నాయి, ఇవి దాదాపు రెండు రెట్లు వేగంగా ఉంటాయి. చివరిది xterm, ఇది rxvt కంటే ఐదు రెట్లు నెమ్మదిగా ఉంటుంది. పరీక్ష సమయంలో, xterm కూడా చాలా అలలు అయ్యింది, టెక్స్ట్ పాస్ చేయడం అదే లైన్ అయినా చూడటం కష్టం. కాన్సోల్ వేగవంతమైనది, కానీ కొన్నిసార్లు ఇది గమ్మత్తైనది: ప్రదర్శన కాలానుగుణంగా స్తంభింపజేస్తుంది, పాక్షిక వచనాన్ని చూపుతుంది లేదా అస్సలు చూపదు. st, Alacritty మరియు rxvtతో సహా ఇతర టెర్మినల్స్ స్ట్రింగ్లను స్పష్టంగా ప్రదర్శించాయి.
వివిధ టెర్మినల్స్లో స్క్రోల్ బఫర్ల రూపకల్పన కారణంగా పనితీరు వ్యత్యాసాలు ఉన్నాయని డిక్కీ వివరించాడు. ప్రత్యేకించి, అతను rxvt మరియు ఇతర టెర్మినల్స్ "సాధారణ నియమాలను పాటించడం లేదు" అని నిందించాడు:
“xterm కాకుండా, rxvt అన్ని నవీకరణలను ప్రదర్శించడానికి ప్రయత్నించలేదు. అది వెనుకబడితే, అది అప్డేట్ చేయడానికి కొన్ని అప్డేట్లను నిరాకరిస్తుంది. ఇది అంతర్గత మెమరీ సంస్థపై కంటే స్పష్టమైన స్క్రోలింగ్ వేగంపై ఎక్కువ ప్రభావం చూపింది. ఒక లోపం ఏమిటంటే ASCII యానిమేషన్ కొంతవరకు అస్పష్టంగా ఉంది."
ఈ గ్రహించిన xterm బద్ధకాన్ని పరిష్కరించడానికి, Dickey వనరును ఉపయోగించమని సూచించింది
వనరుల వినియోగం
స్క్రోలింగ్ వేగాన్ని పనితీరు మెట్రిక్గా పరిగణించడం సమంజసం కాదా అనే దానితో సంబంధం లేకుండా, ఈ పరీక్ష టెర్మినల్స్పై లోడ్ను అనుకరించడానికి అనుమతిస్తుంది, ఇది మెమరీ లేదా డిస్క్ వినియోగం వంటి ఇతర పారామితులను కొలవడానికి అనుమతిస్తుంది. పేర్కొన్న పరీక్షను అమలు చేయడం ద్వారా కొలమానాలు పొందబడ్డాయి సీక్ పైథాన్ ప్రక్రియ పర్యవేక్షణ కింద. మీటర్ డేటాను సేకరించాడు
ఈ పరీక్షలో, ST అత్యల్ప సగటు మెమరీ వినియోగం 8 MBతో మొదటి స్థానంలో ఉంది, ఇది డిజైన్ యొక్క ప్రధాన ఆలోచన సరళత అని పరిగణనలోకి తీసుకోవడంలో ఆశ్చర్యం లేదు. mlterm, xterm మరియు rxvt కొంచెం ఎక్కువగా వినియోగిస్తాయి - సుమారు 12 MB. మరొక గుర్తించదగిన ఫలితం అలక్రిట్టి, దీన్ని అమలు చేయడానికి 30 MB అవసరం. అప్పుడు 40 నుండి 60 MB వరకు ఉన్న బొమ్మలతో VTE కుటుంబం యొక్క టెర్మినల్స్ ఉన్నాయి, ఇది చాలా ఎక్కువ. ఈ టెర్మినల్స్ ఉన్నత-స్థాయి లైబ్రరీలను ఉపయోగిస్తాయని వాస్తవం ద్వారా ఈ వినియోగాన్ని వివరించవచ్చు, ఉదాహరణకు, GTK. పరీక్షల సమయంలో కాన్సోల్ 65MB మెమరీ వినియోగంతో చివరి స్థానంలో వస్తుంది, అయినప్పటికీ ఇది దాని విస్తృత శ్రేణి లక్షణాల ద్వారా సమర్థించబడవచ్చు.
పదేళ్ల క్రితం పొందిన మునుపటి ఫలితాలతో పోలిస్తే, అన్ని ప్రోగ్రామ్లు గమనించదగ్గ విధంగా ఎక్కువ మెమరీని వినియోగించుకోవడం ప్రారంభించాయి. Xtermకి 4 MB అవసరం ఉండేది, కానీ ఇప్పుడు ప్రారంభంలో 15 MB అవసరం. rxvt వినియోగంలో ఇదే విధమైన పెరుగుదల ఉంది, దీనికి ఇప్పుడు బాక్స్ నుండి 16 MB అవసరం. Xfce టెర్మినల్ 34 MBని తీసుకుంటుంది, ఇది మునుపటి కంటే మూడు రెట్లు పెద్దది, కానీ GNOME టెర్మినల్కు 20 MB మాత్రమే అవసరం. వాస్తవానికి, అన్ని మునుపటి పరీక్షలు 32-బిట్ ఆర్కిటెక్చర్పై జరిగాయి. LCA 2012 రస్టీ రస్సెల్ వద్ద
అయినప్పటికీ, టెర్మినల్ వంటి ప్రాథమికమైన వాటికి ఎక్కువ మెమరీని కేటాయించడం వనరులను వృధా చేయడం అని నేను భావించలేను. ఈ ప్రోగ్రామ్లు చిన్నవాటిలో చిన్నవిగా ఉండాలి, ఏదైనా “బాక్స్”పై అయినా, షూబాక్స్పై అయినా అమలు చేయగలగాలి, ఒకవేళ మనం ఎప్పుడైనా వాటికి Linux సిస్టమ్లను కలిగి ఉండాల్సిన స్థితికి వస్తే (మరియు అది అలానే ఉంటుందని మీకు తెలుసు. ) . కానీ ఈ సంఖ్యలతో, కొన్ని తేలికైన మరియు అత్యంత పరిమిత సామర్థ్యాలు కాకుండా బహుళ టెర్మినల్స్ను అమలు చేసే ఏ వాతావరణంలోనైనా భవిష్యత్తులో మెమరీ వినియోగం సమస్యగా మారుతుంది. దీనిని భర్తీ చేయడానికి, గ్నోమ్ టెర్మినల్, కాన్సోల్, urxvt, టెర్మినేటర్ మరియు Xfce టెర్మినల్ డెమోన్ మోడ్ను కలిగి ఉంటాయి, ఇది ఒకే ప్రక్రియ ద్వారా బహుళ టెర్మినల్స్ను నియంత్రించడానికి మిమ్మల్ని అనుమతిస్తుంది, వాటి మెమరీ వినియోగాన్ని పరిమితం చేస్తుంది.
నా పరీక్షల సమయంలో, డిస్క్ రీడ్-రైట్కి సంబంధించి నేను మరొక ఊహించని ఫలితానికి వచ్చాను: నేను ఇక్కడ ఏమీ చూడలేనని అనుకున్నాను, కానీ కొన్ని టెర్మినల్స్ డిస్క్కి అత్యంత భారీ డేటాను వ్రాస్తాయని తేలింది. కాబట్టి, VTE లైబ్రరీ వాస్తవానికి డిస్క్లో స్క్రోల్ బఫర్ను ఉంచుతుంది (ఈ ఫీచర్
తీర్మానం
కథనం యొక్క మొదటి భాగంలో, VTE-ఆధారిత టెర్మినల్లు మంచి లక్షణాలను కలిగి ఉన్నాయని మేము కనుగొన్నాము, కానీ ఇప్పుడు ఇది కొన్ని పనితీరు ఖర్చులతో వస్తుంది. ఇప్పుడు మెమరీ సమస్య కాదు ఎందుకంటే అన్ని VTE టెర్మినల్స్ డెమోన్ ప్రక్రియ ద్వారా నియంత్రించబడతాయి, ఇది వాటి ఆకలిని పరిమితం చేస్తుంది. అయినప్పటికీ, RAM మరియు కెర్నల్ బఫర్ల పరిమాణంపై భౌతిక పరిమితులను కలిగి ఉన్న పాత సిస్టమ్లకు ఇప్పటికీ టెర్మినల్స్ యొక్క మునుపటి సంస్కరణలు అవసరం కావచ్చు, ఎందుకంటే అవి గణనీయంగా తక్కువ వనరులను వినియోగిస్తాయి. VTE టెర్మినల్స్ నిర్గమాంశ (స్క్రోలింగ్) పరీక్షలలో బాగా పనిచేసినప్పటికీ, వాటి ప్రదర్శన జాప్యం GNOME యూజర్ గైడ్లో సెట్ చేయబడిన థ్రెషోల్డ్ కంటే ఎక్కువగా ఉంటుంది. VTE డెవలపర్లు బహుశా దీన్ని పరిగణనలోకి తీసుకోవాలి. అనుభవం లేని Linux వినియోగదారులకు కూడా టెర్మినల్ను ఎదుర్కోవడం అనివార్యమని మేము పరిగణనలోకి తీసుకుంటే, వారు దానిని మరింత యూజర్ ఫ్రెండ్లీగా మార్చగలరు. అనుభవజ్ఞులైన గీక్ల కోసం, డిఫాల్ట్ టెర్మినల్ నుండి మారడం అనేది తక్కువ కంటి ఒత్తిడిని మరియు సుదీర్ఘ పని సెషన్ల కారణంగా భవిష్యత్తులో పనికి సంబంధించిన గాయాలు మరియు అనారోగ్యాలను నివారించే సామర్థ్యాన్ని కూడా సూచిస్తుంది. దురదృష్టవశాత్తూ, పాత xterm మరియు mlterm మాత్రమే మనల్ని 10 మిల్లీసెకన్ల మ్యాజిక్ పింగ్ థ్రెషోల్డ్కు తీసుకువస్తాయి, ఇది చాలా మందికి ఆమోదయోగ్యం కాదు.
బెంచ్మార్క్ కొలతలు కూడా Linux గ్రాఫికల్ ఎన్విరాన్మెంట్ల అభివృద్ధి కారణంగా, డెవలపర్లు అనేక రాజీలు చేసుకోవలసి వచ్చింది. కొంతమంది వినియోగదారులు సాధారణ విండో మేనేజర్లను చూడాలనుకోవచ్చు, ఎందుకంటే వారు గణనీయమైన పింగ్ తగ్గింపును అందిస్తారు. దురదృష్టవశాత్తూ, వేలాండ్ కోసం జాప్యాన్ని కొలవడం సాధ్యం కాలేదు: నేను ఉపయోగించిన టైపోమీటర్ ప్రోగ్రామ్ వేలాండ్ని నిరోధించడానికి రూపొందించబడిన దాని కోసం సృష్టించబడింది: ఇతర విండోలపై గూఢచర్యం. వేలాండ్ కంపోజిటింగ్ X.org కంటే మెరుగ్గా పనిచేస్తుందని నేను ఆశిస్తున్నాను మరియు భవిష్యత్తులో ఎవరైనా ఈ వాతావరణంలో జాప్యాన్ని కొలవడానికి ఒక మార్గాన్ని కనుగొంటారని నేను ఆశిస్తున్నాను.
మూలం: www.habr.com