Kakaretso ea li-emulator tsa terminal

Mantsoe a seng makae a tsoang setsing sa rona sa phetolelo: hangata e mong le e mong o leka ka matla ho fetolela lingoliloeng tsa morao-rao le lingoliloeng, 'me le rona re joalo. Empa li-terminals ha se ntho e nchafalitsoeng hang ka beke. Ka hona, re u fetoletse sehlooho sa Antoine Beaupré, se hatisitsoeng nakong ea selemo sa 2018: ho sa tsotellehe "lilemo" tse ngata ka litekanyetso tsa morao-rao, ka maikutlo a rona, boitsebiso boo ha boa lahleheloa ke bohlokoa ba bona ho hang. Ho phaella moo, qalong ena e ne e le letoto la lihlooho tse peli, empa re ile ra etsa qeto ea ho li kopanya hore e be poso e le 'ngoe e kholo.

Kakaretso ea li-emulator tsa terminal

Li-terminals li na le sebaka se khethehileng historing ea lik'homphieutha, empa lilemong tse mashome tsa morao tjena li qobelletsoe ho phela haufi le mohala oa taelo ha li-interface tsa litšoantšo li fetoha hohle. Li-emulators tsa terminal ba nkela tsa bona sebaka barab'abo rōna ba hardware, eo, hape, e neng e le phetoho ea litsamaiso tse thehiloeng ho likarete tse phunyeletsoeng le li-switches. Liphatlalatso tsa sejoale-joale li tla le mefuta e fapaneng ea li-emulator tsa mefuta eohle le mebala. Mme leha ba bangata ba khotsofetse ke terminal e tloaelehileng e fanoeng ke tikoloho ea bona ea mosebetsi, ba bang ka boikhohomoso ba sebelisa software ea kantle ho naha ho tsamaisa khetla eo ba e ratang haholo kapa mohlophisi oa mongolo. Empa, joalokaha re tla bona sehloohong sena, hase li-terminals tsohle tse entsoeng ka setšoantšo se le seng: li fapane haholo ka ts'ebetso, boholo le ts'ebetso.

Li-terminals tse ling li na le masoba a ts'ireletso a makatsang, 'me boholo ba tsona li na le likarolo tse fapaneng ka ho felletseng, ho tloha ho ts'ehetso ea sebopeho sa li-tabbed ho isa ho mongolo. Leha re e shebile li-emulator tsa terminal nakong e fetileng, sengoloa sena ke ntlafatso ea litaba tse fetileng tse tla thusa babali ho tseba hore na ba ka sebelisa terminal efe ka 2018. Karolo ea pele ea sengoloa e bapisa likarolo, 'me halofo ea bobeli e lekola ts'ebetso.

Mona ke li-terminals tseo ke li hlahlobileng:

Kakaretso ea li-emulator tsa terminal

Tsena e ka 'na ea se ke ea e-ba liphetolelo tsa morao-rao, kaha ke ne ke lekanyelitsoe ho haha ​​​​tse tsitsitseng nakong ea ho ngola, eo ke ileng ka khona ho e hlahisa ho Debian 9 kapa Fedora 27. Ntho e le 'ngoe feela ke Alacritty. Ke setloholo sa li-terminals tse potlakileng tsa GPU 'me e ngotsoe ka puo e sa tloaelehang le e ncha bakeng sa mosebetsi ona - Rust. Ke qheletse li-terminals tsa webo tlhahlobong ea ka (ho kenyeletsoa le tse ho Electron), hobane liteko tsa pele li bonts'itse ts'ebetso ea bona e mpe haholo.

Tšehetso ea Unicode

Ke qalile liteko tsa ka ka tšehetso ea Unicode. Teko ea pele ea li-terminals e ne e le ho bonts'a khoele ea Unicode ho tloha Lingoloa tsa Wikipedia: “é, Δ, И, ק, م, ๗, あ, 叶, 葉 le 말.” Teko ena e bonolo e bontša hore na terminal e ka sebetsa ka nepo lefatšeng ka bophara. xterm terminal ha e hlahise litlhaku tsa Searabia mem ho tlhophiso ea kamehla:

Kakaretso ea li-emulator tsa terminal

Ka mokhoa o ikhethileng, xterm e sebelisa fonte ea khale "e tsitsitseng", eo, ho latela e ntse e le Vicky ea tšoanang, e na le "karolo e kholo ea Unicode ho tloha 1997". Ho na le ho hong ho etsahalang fonteng ena e etsang hore sebapali se hlahe e le foreimi e se nang letho mme ke feela ha mongolo oa mongolo o eketsoa ho lintlha tse 20+ moo sebapali se qalang ho hlahisa ka nepo. Leha ho le joalo, "tokiso" ena e senya ponts'o ea litlhaku tse ling tsa Unicode:

Kakaretso ea li-emulator tsa terminal

Lits'oants'o tsena tsa skrini li nkuoe ho Fedora 27, kaha e fane ka litholoana tse betere ho feta Debian 9, moo mefuta e meng ea khale ea li-terminals (haholo-holo mlterm) e neng e sa khone ho sebetsana le lifonti hantle. Ka lehlohonolo sena se ile sa lokisoa liphetolelong tse latelang.

Joale hlokomela hore na mohala o bontšoa joang ho xterm. Hoa etsahala hore letšoao la Mem le la Semitic le latelang qoph sheba lingoloa tsa mofuta oa RTL (ho tloha ho le letshehadi), kahoo ka botekgeniki li lokela ho hlahisoa ho tloha ho le letona ho ea ho le letšehali. Libatli tsa marang-rang tse kang Firefox 57 li sebetsana le mohala o ka holimo ka nepo. Mofuta o bonolo oa mongolo oa RTL ke lentsoe "Сара"ka Seheberu (Sarah). Leqephe la Wiki mabapi le lingoloa tse peli e re:

Mananeo a mangata a khomphutha ha a khone ho hlahisa mongolo oa mahlakore a mabeli ka nepo. Ka mohlala, lebitso la Seheberu “Sarah” le na le litlhaku sin (ש) (tse hlahang ka ho le letona), ebe resh (ר) ’me qetellong eena (ה) (tse lokelang ho hlaha ka ho le letšehali).”

Li-terminals tse ngata li hlōleha tlhahlobo ena: Alacritty, VTE-derived Gnome le XFCE terminals, urxvt, st le xterm display "Sara" ka tatellano e fapaneng, joalokaha eka re ngotse lebitso "Aras".

Kakaretso ea li-emulator tsa terminal

Bothata bo bong ka litemana tse fapaneng ke hore li hloka ho lumellana ka tsela e itseng, haholo-holo ha ho tluoa tabeng ea ho kopanya litemana tsa RTL le LTR. Lingoliloeng tsa RTL li lokela ho tsoa ka lehlakoreng le letona la fensetere ea theminale, empa ho lokela ho etsahala'ng ka li-terminals tse sa fetoheng ho LTR English? Bongata ba bona ha ba na mekhoa e khethehileng 'me ba hokahanya mongolo o mong le o mong ka ho le letšehali (ho kenyeletsoa le Konsole). Mekhelo ke pterm le mlterm, tse ikamahanyang le maemo le ho tsepanya mela e joalo ka nepo.

Kakaretso ea li-emulator tsa terminal

Tšireletso ea ho kenya

Karolo e latelang ea bohlokoa eo ke e khethileng ke ts'ireletso e khahlanong le ho kenya. Le hoja ho tsebahala hohle hore mantsoe a pele a kang:

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

ke litaelo tsa push execution, batho ba fokolang ba tseba hore litaelo tse patiloeng li ka nyenyelepa ka har'a console ha li kopitsa le ho li fetisa ho tsoa ho sebatli sa marang-rang, le kamora ho hlahlojoa ka hloko. Sebaka sa ho netefatsa Gianna Horna e bontša ka bokhabane kamoo taelo e shebahalang e se na molato:

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

e fetoha khathatso ha e fetisoa ho tsoa webosaeteng ea Horn ho ea setsing sa ho qetela:

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

E sebetsa joang? Khoutu e kotsi e kenyelelitsoe bolokong , e tlositsoeng ponong ea mosebelisi ho sebelisoa CSS.

Mokhoa oa ho peista ka bracketed ka ho hlakileng e etselitsoe ho fokotsa litlhaselo tse joalo. Ka mokhoa ona, li-terminals li kenyelletsa mongolo o pentiloeng ka mokhoa o ikhethileng oa tatelano ea ho baleha ho bolella khetla ka tšimoloho ea mongolo. Sena se bolella khetla hore e ka iphapanyetsa litlhaku tse ikhethileng tseo mongolo o phethiloeng o ka bang le tsona. Li-terminals tsohle tse khutlelang ho xterm tse hlomphehang li tšehetsa tšobotsi ena, empa ho peista ka mokhoa oa Bracketed ho hloka tšehetso ho tsoa ho khetla kapa sesebelisoa se sebetsang ho terminal. Ka mohlala, ho sebelisa software Mokhoa oa ho bala oa GNU (Bash e tšoanang), e hloka faele ~/.inputrc:

set enable-bracketed-paste on

Ka bomalimabe, sebaka sa tlhahlobo sa Horn se boetse se bonts'a mokhoa oa ho tlola ts'ireletso ena ka mokhoa oa ho fomata mongolo ka boyona ebe o qetella o sebelisa mokhoa oa Bracketed ho ona. Sena se sebetsa hobane li-terminals tse ling ha li sefe ka nepo tatellano ea ho phonyoha pele e kenya ea tsona. Ka mohlala, ho 'na ha kea ka ka khona ho qeta liteko tsa Konsole ka katleho esita le ka tlhophiso e nepahetseng .inputrc faele. Sena se bolela hore o ka senya tlhophiso ea sistimi ea hau habonolo ka lebaka la ts'ebeliso e sa tšehetsoeng kapa khetla e hlophisitsoeng hantle. Sena se kotsi haholo ha o kena ka har'a li-server tse hole, moo mosebetsi oa tlhophiso ka hloko o sa tloahelehileng haholo, haholo haeba o na le mechini e joalo e hole.

Tharollo e ntle bothateng bona ke plugin ea netefatso ea peista bakeng sa terminal urvvt, e kopang tumello ea ho kenya mongolo ofe kapa ofe o nang le mela e mecha. Ha ke so fumane khetho e sireletsehileng haholoanyane bakeng sa tlhaselo ea mongolo e hlalositsoeng ke Horn.

Li-tab le liprofaele

Karolo e tsebahalang hona joale ke ts'ehetso ea sebopeho sa li-tabbed, seo re tla se hlalosa e le fensetere e le 'ngoe ea terminal e nang le li-terminals tse ling tse' maloa. Ts'ebetso ena e fapana bakeng sa li-terminals tse fapaneng, mme leha li-terminals tsa setso tsa xterm li sa tšehetse li-tab ho hang, li-terminal tsa sejoale-joale tse kang Xfce Terminal, GNOME Terminal le Konsole li na le mosebetsi ona. Urxvt e boetse e ts'ehetsa li-tab, empa ha feela o sebelisa plugin. Empa mabapi le ts'ehetso ea li-tab ka boeona, Terminator ke moetapele ea sa tsitsang: ha e tšehetse li-tab feela, empa e ka boela ea hlophisa li-terminals ka tatellano leha e le efe (sheba setšoantšo se ka tlase).

Kakaretso ea li-emulator tsa terminal

Tšobotsi e 'ngoe ea Terminator ke bokhoni ba ho "hlopha" li-tab tsena hammoho le ho romela li-keytroke tse tšoanang ho li-terminals tse ngata ka nako e le' ngoe, ho fana ka sesebelisoa se se nang thuso bakeng sa ho etsa mesebetsi e mengata ho li-server tse ngata ka nako e le 'ngoe. Karolo e ts'oanang e kengoa ts'ebetsong ho Konsole. Ho sebelisa tšobotsi ena ho li-terminals tse ling, o tlameha ho sebelisa software ea motho oa boraro joalo ka Sehlopha sa SSH, hlolla kapa tmux.

Li-tab li sebetsa hantle haholo ha li tsamaisana le profaele: mohlala, u ka ba le tabo e le 'ngoe bakeng sa lengolo-tsoibila, e' ngoe bakeng sa moqoqo, joalo-joalo. Sena se tšehetsoa hantle ke Konsole Terminal le GNOME Terminal. Ka bobeli li lumella tab ka 'ngoe hore e iketsetse profaele ea eona. Terminator e boetse e ts'ehetsa liprofaele, empa ha kea fumana mokhoa oa ho qala mananeo a itseng ka bo eona ha o bula tab e itseng. Li-terminals tse ling ha li na mohopolo oa "profile" ho hang.

Li-ruffles

Ntho ea ho qetela eo ke tla e koahela karolong ea pele ea sengoloa sena ke ponahalo ea li-terminals. Mohlala GNOME, Xfce le urxvt tšehetso pepeneneng, empa haufinyane li theohile tšehetso bakeng sa litšoantšo tse ka morao, tsa qobella basebelisi ba bang ho fetohela ho terminal. Tilix. Ka bonna, ke thabile ka eona ebile e bonolo Lisebelisoa, e behang motheo oa mebala ea bokamorao bakeng sa urxvt. Leha ho le joalo, lihlooho tse sa tloaelehang tsa mebala le tsona li ka baka mathata. Ka mohlala, E khotsofetse ha e sebetse ka likopo htop и IPTraf, kaha ba se ba ntse ba sebelisa mebala ea bona.

Terminal ea mantlha ea VT100 e ne e sa tšehetse mebala, 'me e mecha hangata e ne e lekanyelitsoe ho phalete ea mebala e 256 feela. Bakeng sa basebelisi ba tsoetseng pele ba etsang li-terminals tsa bona, li-shell prompts kapa li-bars tsa maemo ka mekhoa e rarahaneng e ka ba moeli o khopisang. Sehlooho lipina tseo li-terminals li nang le tšehetso ea "True Color". Liteko tsa ka li tiisa hore li-terminals tsa st, Alacritty le VTE li tšehetsa 'Nete ea' Nete ka mokhoa o phethahetseng. Li-terminals tse ling ha li tsamaee hantle tabeng ena, 'me, ha e le hantle, ha li bontše le mebala e 256. Ka tlase u ka bona phapang lipakeng tsa tšehetso ea 'Nete ea Mmala ho li-terminals tsa GNOME, st le xterm, tse etsang mosebetsi o motle oa sena ka phalete ea tsona ea mebala e 256, le urxvt, e sa hloleheng tlhahlobo feela, empa e bile e bonts'a litlhaku tse panyang ho e-na le tsona.

Kakaretso ea li-emulator tsa terminal

Li-terminals tse ling li boetse li sekaseka mongolo bakeng sa lipaterone tsa URL ho etsa hore lihokelo li tobehe. Sena se sebetsa ho li-terminals tsohle tse nkiloeng ho VTE, athe urxvt e hloka plugin e khethehileng e ka fetolang li-URL ha motho a penya kapa a sebelisa sekhechana sa keyboard. Li-terminals tse ling ke lekile li-URL tsa ponts'o ka litsela tse ling.

Qetellong, mokhoa o mocha oa li-terminals ke boikhethelo ba buffer ea moqolo. Mohlala, st ha e na buffer ea moqolo; ho nahanoa hore mosebelisi o tla sebelisa terminal multiplexer joalo ka tmux le Screen ea GNU.

Alacritty e boetse e haelloa ke li-buffers tsa backscroll, empa e tla ekeletsoa haufinyane tšehetso ea eona ka lebaka la "maikutlo a pharaletseng" tabeng ena ho tsoa ho basebelisi. Ntle le li-upstarts tsena, terminal e 'ngoe le e' ngoe eo ke e lekileng eo nka e fumanang e tšehetsa ho qhekella ka morao.

Lipalopalo tse tlase

Karolong ea bobeli ea thepa (qalong tsena e ne e le lingoliloeng tse peli tse fapaneng - hoo e ka bang. lane) re tla bapisa ts'ebetso, ts'ebeliso ea mohopolo le latency. Empa re se re ntse re bona hore tse ling tsa li-terminals tse boletsoeng li na le mefokolo e tebileng. Ka mohlala, basebelisi ba sebetsang ka mokhoa oa RTL kamehla ba ka 'na ba batla ho nahana ka mlterm le pterm, kaha ba sebetsa hantle ho feta mesebetsi e meng. Konsole le yona e sebeditse hantle. Basebelisi ba sa sebetseng ka mongolo oa RTL ba ka khetha ho hong.

Mabapi le tšireletso khahlanong le ho kenngoa ha khoutu e mpe, urxvt e hlahella ka lebaka la ts'ebetsong ea eona e khethehileng ea tšireletso khahlanong le tlhaselo ea mofuta ona, eo ho bonahalang eka e loketse ho 'na. Bakeng sa ba batlang litloloko le liloli, Konsole e loketse ho shejoa. Qetellong, ke habohlokoa ho hlokomela hore VTE ke motheo o babatsehang bakeng sa li-terminals, tse tiisang tšehetso ea mebala, kananelo ea URL, joalo-joalo. Ha u habanya feela, terminal ea kamehla e tlang le tikoloho eo u e ratang e ka fihlela litlhoko tsohle, empa ha re tloheleng potso ena e butsoe ho fihlela re utloisisa ts'ebetso.

Ha re tsoeleng pele moqoqo


Ka kakaretso, ts'ebetso ea li-terminals ka boeona e kanna ea utloahala e le bothata bo tebileng, empa ha ho le joalo, tse ling tsa tsona li bonts'a latency e phahameng ka mokhoa o makatsang bakeng sa software ea mofuta o joalo oa mantlha. Hape ka mor'a moo re tla sheba seo ka tloaelo se bitsoang "lebelo" (ha e le hantle, sena ke lebelo la ho phalla) le tšebeliso ea mohopolo ea terminal (ka caveat ea hore sena ha se bohlokoa kajeno joaloka lilemong tse mashome tse fetileng).

Ho lieha

Ka mor'a ho ithuta ka botlalo ka ts'ebetso ea ho qetela, ke ile ka fihlela qeto ea hore parameter ea bohlokoa ka ho fetisisa tabeng ena ke latency (ping). Sehloohong sa hae “Re hatisa ka thabo” Pavel Fatin o ile a sheba latency ea bahlophisi ba mongolo ba fapaneng mme a fana ka maikutlo a hore li-terminals ntlheng ena li kanna tsa lieha ho feta bahlophisi ba mongolo ba potlakileng. Ke maikutlo ana a ileng a qetella a entse hore ke iketsetse liteko le ho ngola sengoloa sena.

Empa latency ke eng, hona ke hobane'ng ha e le ea bohlokoa hakaale? Sengoliloeng sa hae, Fatin o se hlalositse e le "tieho lipakeng tsa ho tobetsa konopo le ho ntlafatsa skrineng" mme a qotsa. "Guide to Human-Computer Interaction", e reng: “Ho lieha ha maikutlo a hlahang k’homphieutheng ho na le phello ea bohlokoa boitšoarong le khotsong ea mothaepi.”

Fatin o hlalosa hore ping ena e na le liphello tse tebileng ho feta khotsofalo feela: “ho thaepa hoa lieha, ho ba le liphoso tse ngata, ’me tsitsipano ea mahlo le mesifa ea eketseha.” Ka mantsoe a mang, ho lieha ho hoholo ho ka lebisa ho typos hape le boleng bo tlase ba khoutu, kaha bo lebisa moroalo o eketsehileng oa kelello bokong. Empa ho hobe le ho feta ke hore ping "e eketsa khatello ea mahlo le mesifa," e bonahalang e bolela nts'etsopele ea likotsi tsa mosebetsi nakong e tlang (Kamoo ho bonahalang kateng, mongoli o bolela mathata ka mesifa ea mahlo, mokokotlo, matsoho 'me, ha e le hantle, pono - hoo e ka bang. lane) ka baka la kgatello ya maikutlo e iphetang.

Tse ling tsa liphello tsena li tsebahala ka nako e telele, le liphello ho etsa lipatlisiso, e hatisitsoeng morao koana ka 1976 koranteng ea Ergonomics, e boletse hore ho lieha ha 100 milliseconds "ho senya haholo lebelo la ho thaepa." Haufinyane tjena, Tataiso ea Mosebelisi ea GNOME e hlahisitsoe nako e amohelehang ya karabo ka 10 milliseconds, 'me haeba u fetela pele, joale Lipatlisiso tsa Microsoft e bontša hore millisecond e 1 e nepahetse.

Fatin o ile a etsa liteko tsa hae ho bahlophisi ba mongolo; o ile a etsa seletsa se nkehang habobebe se bitsoang Typometer, eo ke neng ke e sebelisa ho leka ping ho li-emulator tsa terminal. Hopola hore tlhahlobo e entsoe ka mokhoa oa papiso: ha e le hantle, re hloka ho ela hloko lintlha tse peli (keyboard, USB controller, joalo-joalo) le tlhahiso (buffer ea karete ea video, monitor) latency. Ho ea ka Fatin, ka tlhophiso e tloaelehileng e ka ba 20 ms. Haeba u na le lisebelisoa tsa ho bapala, u ka fihlela palo ena ka li-milliseconds tse 3 feela. Kaha re se re na le lisebelisoa tse potlakileng joalo, ts'ebeliso ha ea tlameha ho eketsa latency ea eona. Sepheo sa Fatin ke ho tlisa latency ea ts'ebeliso ho millisecond e le 1, kapa ho fihlella ho daela ntle le tieho e lekanyang, joang ka IntelliJ IDEA 15.

Mona ke liphetho tsa litekanyo tsa ka, hammoho le tse ling tsa liphetho tsa Fatin, ho bontša hore liteko tsa ka li lumellana le liteko tsa hae:

Kakaretso ea li-emulator tsa terminal

Ntho ea pele e ileng ea nkama ke nako e betere ea karabelo ea mananeo a khale a kang xterm le mlterm. Ka "register latency" e mpe ka ho fetesisa (2,4 ms), e sebelitse hantle ho feta terminal e potlakileng ea sejoale-joale (10,6 ms bakeng sa st). Ha ho terminal ea sejoale-joale e oelang ka tlase ho 10 millisecond threshold. Haholo-holo, Alacritty e hloleha ho fihlela tseko ea "terminal emulator e potlakileng ka ho fetesisa e fumanehang", leha lintlha tsa eona li ntlafetse ho tloha tlhahlobo ea eona ea pele ka 2017. Ka sebele, bangoli ba morero hlokomela boemo 'me ba sebetsa ho ntlafatsa pontšo. Hape ho lokela ho hlokomeloa hore Vim e sebelisang GTK3 ke taelo ea boholo butle ho feta molekane oa eona oa GTK2. Ho tsoa ho sena re ka fihlela qeto ea hore GTK3 e theha latency e eketsehileng, 'me sena se bonahala ho li-terminals tse ling tsohle tse e sebelisang (Terminator, Xfce4 Terminal le GNOME Terminal).

Leha ho le joalo, ho se tšoane ho ka ’na ha se hlokomelehe mahlong. Joalokaha Fatin a hlalosa, “ha ho hlokahale hore u elelloe tieho e le hore e ka ba le phello ho uena.” Fatin e boetse e hlokomelisa ka ho kheloha ho tloaelehileng: “Litšitiso leha e le life tsa ho lieha ho lieha ho fihla (jitter) li baka khatello e eketsehileng ka lebaka la ho se lebelle ha tsona esale pele.”

Kakaretso ea li-emulator tsa terminal

Setšoantšo se ka holimo se nkiloe ho Debian 9 e hloekileng (otlolla) ka i3 mookameli oa fensetere. Tikoloho ena e hlahisa litholoana tse ntle ka ho fetisisa litekong tsa latency. Ha e le hantle, GNOME e theha ping e eketsehileng ea 20 ms bakeng sa litekanyo tsohle. Tlhaloso e ka khonehang bakeng sa sena ke boteng ba mananeo a nang le ts'ebetso ea synchronous ea liketsahalo tsa ho kenya. Fatin e fana ka mohlala bakeng sa nyeoe e joalo Sebetsa, e leng se eketsang tieho ka ho sebetsana le liketsahalo tsohle tsa ho kenya ka ho lumellana. Ka ho feletseng, GNOME e boetse e tla le mookameli oa fensetere Mutter, e hlahisang karolo e 'ngoe ea buffering, e amang ping le ho eketsa bonyane li-milliseconds tse 8 tsa latency.

Kakaretso ea li-emulator tsa terminal

Lebelo la ho phenya

Teko e latelang ke teko ea setso ea "speed" kapa "bandwidth", e lekanyang hore na terminal e ka tsamaisa leqephe kapele hakae ha e ntse e hlahisa mongolo o mongata skrineng. Mechine ea tlhahlobo e fapana; teko ea pele e ne e le ho hlahisa khoele e tšoanang ea mongolo ho sebelisa taelo ea seq. Liteko tse ling li kenyelletsa tlhahlobo ea Thomas E. Dickey's (xterm maintainer), eo khafetsa faele ea terminfo.src e jarollotsoe. Tlhahlobong e 'ngoe ea ts'ebetso ea terminal Den Luu e sebelisa khoele e kentsoeng ea base32 ea li-byte tse sa reroang, tse hlahisoang ho terminal ho sebelisa katse. Luu o nka tlhahlobo e joalo e le "e se nang thuso joalo ka ha motho a ka nahana" mme o fana ka tlhahiso ea ho sebelisa karabo ea mantlha joalo ka metric ea mantlha. Dickey o boetse a bitsa tlhahlobo ea hae e khelosa. Leha ho le joalo, bangoli ka bobeli baa lumela hore bandwidth ea fensetere ea terminal e ka ba bothata. Luu o ile a sibolla Emacs Eshell e batang ha a hlahisa lifaele tse kholo, 'me Dickey a ntlafatsa terminal ho tlosa botsoa ba xtrerm. Kahoo ho ntse ho na le molemo o itseng tekong ena, empa kaha mokhoa oa ho fana o fapane haholo ho tloha ho terminal ho ea ho terminal, e ka boela ea sebelisoa e le karolo ea teko ho leka likarolo tse ling.

Kakaretso ea li-emulator tsa terminal

Mona re bona rxvt le st pull ka pele ho tlhōlisano, e lateloa ke Alacritty e ncha haholo, e entsoeng ka ho tsepamisa maikutlo mosebetsing. E latelang ke Xfce (lelapa la VTE) le Konsole, tse batlang li potlakile habeli. Ea ho qetela ke xterm, e liehang ka makhetlo a mahlano ho feta rxvt. Nakong ea tlhahlobo, xterm le eona e ile ea phahama haholo, ea etsa hore ho be thata ho bona mongolo o fetang le haeba e ne e le mohala o le mong. Konsole e ne e potlakile, empa e ne e qhekella ka linako tse ling: pontšo e ne e hoama nako le nako, e bontša mongolo o sa fellang kapa e sa e bontše ho hang. Li-terminals tse ling li ne li bonts'a likhoele ka ho hlaka, ho kenyelletsa st, Alacritty, le rxvt.

Dickey o hlalosa hore liphapang tsa ts'ebetso li bakoa ke moralo oa li-buffers tsa meqolo libakeng tse fapaneng. Haholo-holo, o qosa rxvt le li-terminals tse ling ka "ho se latele melao e akaretsang":

Ho fapana le xterm, rxvt ha ea leka ho hlahisa lintlafatso tsohle. Haeba e oela morao, e tla hana lintlafatso tse ling ho e fumana. Sena se bile le tšusumetso e kholo ho lebelo le hlakileng la ho phenya ho feta mokhatlong oa memori ea kahare. Taba e 'ngoe e ne e le hore animation ea ASCII e ne e batla e sa nepahala. "

Ho lokisa botsoa bona ba xterm, Dickey o khothaletsa ho sebelisa sesebelisoa fastScroll, e lumellang xterm ho lahla lisebelisoa tse ling tsa skrine ho tsamaisana le phallo. Liteko tsa ka li tiisa hore fastScroll e ntlafatsa ts'ebetso mme e tlisa xterm par le rxvt. Leha ho le joalo, sena ke mokhoa o thata, joalo ka ha Dickey ka boeena a hlalosa: "ka linako tse ling xterm - joalo ka konsole - e bonahala e tsitsitse ha e emetse sete e ncha ea liapdeite tsa skrine ka mor'a hore tse ling li tlosoe." Tabeng ena, ho bonahala eka li-terminals tse ling li fumane ho sekisetsa ho molemo ka ho fetisisa pakeng tsa lebelo le botšepehi ba pontšo.

Tšebeliso ea lisebelisoa

Ho sa tsotellehe hore na ke ntho e utloahalang ho nka lebelo la ho phalla e le tekanyo ea ts'ebetso, tlhahlobo ena e re lumella ho etsisa mojaro ho li-terminals, e leng se re lumellang hore re lekanye likarolo tse ling tse kang memori kapa ts'ebeliso ea disk. Li-metrics li fumanoe ka ho etsa tlhahlobo e boletsoeng seq tlas'a ts'ebetso ea ts'ebetso ea Python. O ile a bokella lintlha tsa meter getrusage() etsoe ru_maxrss, chelete ru_oublock и ru_inblock le sebali sa nako se bonolo.

Kakaretso ea li-emulator tsa terminal

Tekong ena, ST e nka sebaka sa pele ka tšebeliso e tlase ea memori ea 8 MB, e leng ntho e sa makatseng ha ho nahanoa hore mohopolo oa mantlha oa moralo ke bonolo. mlterm, xterm le rxvt li ja hanyane - hoo e ka bang 12 MB. Sephetho se seng se hlokomelehang ke Alacritty, e hlokang 30 MB ho sebetsa. Ebe ho na le li-terminals tsa lelapa la VTE tse nang le lipalo ho tloha ho 40 ho isa ho 60 MB, tse ngata haholo. Tšebeliso ena e ka hlalosoa ke taba ea hore li-terminals tsena li sebelisa lilaebrari tsa boemo bo holimo, mohlala, GTK. Konsole e fihla qetellong ka 65MB e kholo ea tšebeliso ea mohopolo nakong ea liteko, leha sena se ka lokafatsoa ke mefuta e mengata ea likarolo.

Ha ho bapisoa le liphetho tse fetileng tse fumanoeng lilemong tse leshome tse fetileng, mananeo ohle a ile a qala ho sebelisa mohopolo haholoanyane. Xterm e ne e hloka 4 MB, empa joale e hloka 15 MB ha e qala. Ho na le keketseho e ts'oanang ea tšebeliso ea rxvt, eo hona joale e hlokang 16 MB ka ntle ho lebokose. Xfce Terminal e nka 34 MB, e leng kholo ka makhetlo a mararo ho feta pele, empa GNOME Terminal e hloka 20 MB feela. Ehlile, liteko tsohle tse fetileng li entsoe ho meralo ea 32-bit. Ho LCA 2012 Rusty Russell tsebisitsoe, hore ho na le mabaka a mangata a poteletseng a ka hlalosang keketseho ea tšebeliso ea mohopolo. Ha re se re boletse joalo, joale re phela nakong eo re nang le li-gigabytes tsa memori, kahoo re tla khona ho laola ka tsela e itseng.

Leha ho le joalo, ha ke khone ho ithiba empa ke ikutloa hore ho fana ka mohopolo o mongata ho ntho ea bohlokoa joalo ka terminal ke tšenyo ea lisebelisoa. Mananeo ana e lokela ho ba a manyane ho a manyane, a tsebe ho sebetsa ho "lebokose" lefe kapa lefe, esita le lebokose la lieta, haeba re ka fihla moo ba hlokang ho hlomelloa ka lisebelisoa tsa Linux ('me ua tseba hore ho tla ba joalo. ) . Empa ka lipalo tsena, ts'ebeliso ea memori e tla fetoha bothata nakong e tlang tikolohong efe kapa efe e nang le li-terminals tse ngata ntle le tse 'maloa tse bobebe le tse fokolang haholo ka bokhoni. Ho lefella sena, GNOME Terminal, Konsole, urxvt, Terminator le Xfce Terminal li na le mokhoa oa Daemon o u lumellang ho laola li-terminals tse ngata ka ts'ebetso e le 'ngoe, ho fokotsa tšebeliso ea mohopolo oa bona.

Kakaretso ea li-emulator tsa terminal

Nakong ea liteko tsa ka, ke ile ka fumana sephetho se seng se neng se sa lebelloa mabapi le ho bala disk: Ke ne ke lebelletse hore nke ke ka bona letho ho hang mona, empa ho ile ha fumaneha hore li-terminals tse ling li ngola data e matla ka ho fetisisa ho disk. Kahoo, laeborari ea VTE e hlile e boloka buffer ea moqolo ho disk (tšobotsi ena e ile ea bonoa ka 2010, mme sena se ntse se etsahala). Empa ho fapana le ts'ebetsong ea khale, joale bonyane data ena e patiloe ka ho sebelisa AES256 GCM (ho tsoa ho mofuta oa 0.39.2). Empa ho hlaha potso e utloahalang: ke eng e ikhethang ka laebrari ea VTE hoo e hlokang mokhoa o sa tloaelehang oa ho kenya ts'ebetsong ...

fihlela qeto e

Karolong ea pele ea sengoloa, re fumane hore li-terminals tse thehiloeng ho VTE li na le likarolo tse ntle, empa joale rea bona hore sena se tla le litšenyehelo tse ling tsa ts'ebetso. Hona joale mohopolo ha se bothata hobane li-terminals tsohle tsa VTE li ka laoloa ka ts'ebetso ea Daemon, e fokotsang takatso ea bona ea lijo. Leha ho le joalo, litsamaiso tsa khale tse nang le mefokolo ea 'mele ho palo ea RAM le kernel buffers li ntse li ka hloka mefuta ea pejana ea li-terminals, kaha li sebelisa lisebelisoa tse fokolang haholo. Leha li-terminals tsa VTE li sebelitse hantle litekong tsa "throughput" (scrolling), latency ea bona ea ponts'o e kaholimo ho moeli o behiloeng ho GNOME User Guide. Baetsi ba VTE mohlomong ba lokela ho ela sena hloko. Haeba re ela hloko hore le bakeng sa basebelisi ba Linux ba qalang ho kopana le terminal ha ho khonehe, ba ka e etsa hore e be bonolo haholoanyane. Bakeng sa li-geek tse nang le phihlelo, ho tloha setsing sa ho qetela ho ka ba ha bolela khatello e fokolang ea mahlo le bokhoni ba ho qoba likotsi le maloetse a amanang le mosebetsi nakong e tlang. Ka bomalimabe, ke xterm le mlterm tsa khale feela tse re tlisang moeling oa ping oa 10 milliseconds, o sa amoheleheng ho ba bangata.

Litekanyo tsa benchmark li boetse li bonts'itse hore ka lebaka la nts'etsopele ea tikoloho ea litšoantšo tsa Linux, bahlahisi ba tlameha ho etsa litšitiso tse 'maloa. Basebelisi ba bang ba kanna ba batla ho sheba batsamaisi ba lifensetere tse tloaelehileng ha ba ntse ba fana ka phokotso e kholo ea ping. Ka bomalimabe, ho ne ho sa khonehe ho lekanya latency bakeng sa Wayland: lenaneo la Typometer leo ke le sebelisitseng le bōpiloe bakeng sa seo Wayland e etselitsoeng ho se thibela: ho hloela lifensetere tse ling. Ke tšepa hore Wayland compoting e sebetsa hantle ho feta X.org, hape ke tšepa hore kamoso motho e mong o tla fumana mokhoa oa ho lekanya latency tikolohong ena.

Source: www.habr.com

Eketsa ka tlhaloso