የተርሚናል emulators አጠቃላይ እይታ

ከኛ የትርጉም ቢሮ ጥቂት ቃላት፡- ብዙውን ጊዜ ሁሉም ሰው የቅርብ ጊዜዎቹን ቁሳቁሶች እና ህትመቶች ለመተርጎም ይጥራል፣ እና እኛ የተለየ አይደለንም። ግን ተርሚናሎች በሳምንት አንድ ጊዜ የሚዘምኑ አይደሉም። ስለዚህ ፣ በ 2018 የፀደይ ወቅት የታተመውን በአንቶኒ ቢውሬ አንድ ጽሑፍ ለእርስዎ ተርጉመናል-በዘመናዊ መስፈርቶች ብዙ “ዕድሜ” ቢኖረውም ፣ በእኛ አስተያየት ፣ ቁሱ ጠቀሜታውን በጭራሽ አላጣም። በተጨማሪም, ይህ በመጀመሪያ ተከታታይ ሁለት ጽሑፎች ነበር, ነገር ግን እነሱን ወደ አንድ ትልቅ ልጥፍ ለማጣመር ወሰንን.

የተርሚናል emulators አጠቃላይ እይታ

ተርሚናሎች በኮምፒዩተር ታሪክ ውስጥ ልዩ ቦታ አላቸው፣ ነገር ግን ከቅርብ አሥርተ ዓመታት ወዲህ ግራፊክ መገናኛዎች በሁሉም ቦታ ስለሚገኙ ከትእዛዝ መስመሩ ጋር አብረው ለመኖር ተገደዋል። ተርሚናል emulators የራሳቸውን ተክተዋል። የሃርድዌር ወንድሞች, እሱም በተራው, በጡጫ ካርዶች እና በመቀያየር ላይ የተመሰረቱ ስርዓቶች ማሻሻያ ነበር. ዘመናዊ ስርጭቶች ከሁሉም ቅርጾች እና ቀለሞች ከተለያዩ ተርሚናል ኢምዩተሮች ጋር ይመጣሉ። እና ብዙዎቹ በስራ አካባቢያቸው በሚቀርበው መደበኛ ተርሚናል ረክተው ሳለ፣ አንዳንዶች የሚወዱትን ሼል ወይም የጽሁፍ አርታኢ ለማስኬድ ትክክለኛ የሆነ እንግዳ ሶፍትዌር በኩራት ይጠቀማሉ። ነገር ግን, ከዚህ ጽሑፍ እንደምናየው, ሁሉም ተርሚናሎች በአንድ ምስል አልተፈጠሩም: በተግባራዊነት, በመጠን እና በአፈፃፀም በጣም ይለያያሉ.

አንዳንድ ተርሚናሎች በጣም የሚያስደንቁ የደህንነት ቀዳዳዎች አሏቸው፣ በተጨማሪም አብዛኛዎቹ ሙሉ ለሙሉ የተለየ የተግባር ስብስብ አሏቸው፣ ከተጣራ በይነገጽ ድጋፍ እስከ ስክሪፕት። እኛ ቢሆንም በሩቅ ጊዜ ውስጥ ተርሚናል ኢምፖችን ተመልክቷል።, ይህ ጽሑፍ አንባቢዎች በ 2018 የትኛውን ተርሚናል እንደሚጠቀሙ ለመወሰን የሚረዳው የቀደመው ይዘት ማሻሻያ ነው. የአንቀጹ የመጀመሪያ አጋማሽ ባህሪያትን ያወዳድራል, እና ሁለተኛው አጋማሽ አፈፃፀሙን ይገመግማል.

የገመገምኳቸው ተርሚናሎች እነሆ፡-

የተርሚናል emulators አጠቃላይ እይታ

እነዚህ የቅርብ ጊዜ ስሪቶች ላይሆኑ ይችላሉ፣ ምክንያቱም እኔ በምጽፍበት ጊዜ በነበሩት የተረጋጋ ግንባታዎች ብቻ የተወሰነ ስለነበር ልወጣቸው በቻልኳቸው ግንባታዎች ላይ ብቻ የተወሰነ ስለነበር። Debian 9 ወይም Fedora 27። ብቸኛው ልዩነት አላክሪቲ ነው። ከጂፒዩ የተጣደፉ ተርሚናሎች ዝርያ ሲሆን ለዚህ ተግባር ባልተለመደ እና አዲስ ቋንቋ የተጻፈ ነው - ዝገት። የድር ተርሚናሎችን ከግምገማዬ ውስጥ አስወግጃለሁ (በላይ ያሉትን ጨምሮ)። ኤሌክትሮኖ), ምክንያቱም የመጀመሪያ ሙከራዎች እጅግ በጣም ደካማ አፈፃፀማቸውን አሳይተዋል.

የዩኒኮድ ድጋፍ

ፈተናዎቼን የጀመርኩት በዩኒኮድ ድጋፍ ነው። የተርሚናሎቹ የመጀመሪያ ሙከራ የዩኒኮድ ሕብረቁምፊን ማሳየት ነበር። Wikipedia ጽሑፎች: "é, Δ, И, ק, م, ๗, あ, 叶, 葉 እና 말." ይህ ቀላል ሙከራ ተርሚናል በዓለም ዙሪያ በትክክል መሥራት ይችል እንደሆነ ያሳያል። xterm ተርሚናል የአረብኛ ቁምፊን አያሳይም። ሜም በነባሪ ውቅር፡-

የተርሚናል emulators አጠቃላይ እይታ

በነባሪ፣ xterm የሚታወቀው "ቋሚ" ቅርጸ-ቁምፊን ይጠቀማል፣ እሱም እንደ አሁንም ተመሳሳይ ቪኪ, "ከ1997 ጀምሮ ጉልህ የሆነ የዩኒኮድ ሽፋን" አለው። በዚህ ቅርጸ-ቁምፊ ውስጥ ገጸ-ባህሪው ባዶ ፍሬም ሆኖ እንዲታይ የሚያደርግ ነገር አለ እና የጽሑፍ ቅርጸ-ቁምፊው ወደ 20+ ነጥብ ሲጨምር ብቻ ነው በመጨረሻ ገጸ ባህሪው በትክክል ማሳየት የሚጀምረው። ሆኖም፣ ይህ “ማስተካከያ” የሌሎችን የዩኒኮድ ቁምፊዎችን ማሳያ ይሰብራል፡-

የተርሚናል emulators አጠቃላይ እይታ

እነዚህ ቅጽበታዊ ገጽ እይታዎች የተነሱት በFedora 27 ላይ ነው ምክንያቱም ከነሱ የተሻሉ ውጤቶችን ስለሰጡ Debian 9፣ አንዳንድ አሮጌ የተርሚናል ስሪቶች (በተለይም mlterm) ቅርጸ-ቁምፊዎችን በአግባቡ ማስተናገድ የማይችሉበት። እንደ እድል ሆኖ፣ ይህ በኋለኞቹ ስሪቶች ላይ ተስተካክሏል።

አሁን መስመሩ በ xterm ውስጥ እንዴት እንደሚታይ ልብ ይበሉ። ምልክቱ ሜም እና የሚከተለው ሴማዊ እንደሆነ ተገለጠ ኩፍ የ RTL ዘይቤ ስክሪፕቶችን ይመልከቱ (ከቀኝ ወደ ግራ), ስለዚህ በቴክኒካዊ ከቀኝ ወደ ግራ መታየት አለባቸው. እንደ ፋየርፎክስ 57 ያሉ የድር አሳሾች ከላይ ያለውን መስመር በትክክል ይይዛሉ። ቀላሉ የ RTL ጽሑፍ እትም የሚለው ቃል ነው.Ара" በዕብራይስጥ (ሳራ). በሁለት አቅጣጫ ጽሑፎች ላይ የዊኪ ገጽ እንዲህ ይላል።

“ብዙ የኮምፒውተር ፕሮግራሞች ባለሁለት አቅጣጫ ጽሁፍ በትክክል ማሳየት አይችሉም። ለምሳሌ፣ “ሣራ” የሚለው የዕብራይስጥ ስም ኃጢአት (ש) (በስተቀኝ የሚታየው)፣ ከዚያም ሬሽ (ר) እና በመጨረሻም እሱ (ה) (በግራ በኩል መታየት ያለበት) ገጸ-ባህሪያትን ያካትታል።

ብዙ ተርሚናሎች በዚህ ፈተና ወድቀዋል፡- Alacritty፣ VTE-derived Gnome እና XFCE ተርሚናሎች፣ urxvt፣ st እና xterm display "Sara" በተቃራኒው ቅደም ተከተል፣ ስሙን "አራስ" ብለን የፃፍነው ይመስል።

የተርሚናል emulators አጠቃላይ እይታ

ሌላው የሁለት አቅጣጫ ጽሑፎች ችግር በተለይ የ RTL እና LTR ጽሑፎችን በሚቀላቀሉበት ጊዜ በሆነ መንገድ መስተካከል አለባቸው። የRTL ስክሪፕቶች ከተርሚናል መስኮቱ በቀኝ በኩል መሮጥ አለባቸው፣ነገር ግን ከ LTR እንግሊዘኛ ነባሪ ለሆኑ ተርሚናሎች ምን መሆን አለባቸው? አብዛኛዎቹ ምንም ልዩ ስልቶች የላቸውም እና ሁሉንም ፅሁፎች ወደ ግራ (ኮንሶሌ ውስጥ ጨምሮ) ያስተካክሉ። ልዩዎቹ ደረጃዎችን የሚያከብሩ እና እንደዚህ ያሉትን መስመሮች በትክክል የሚያስተካክሉ pterm እና mlterm ናቸው።

የተርሚናል emulators አጠቃላይ እይታ

የማስገባት ጥበቃ

እኔ የለየሁት የሚቀጥለው ወሳኝ ባህሪ የፀረ-ማስገባት ጥበቃ ነው። እንደሚከተሉት ያሉ ድግምቶች በሰፊው ቢታወቅም

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

ከድር አሳሽ ሲገለብጡ እና ሲለጥፉ የተደበቁ ትዕዛዞች ወደ ኮንሶሉ ውስጥ ሊገቡ እንደሚችሉ ጥቂት ሰዎች ያውቃሉ ፣ በጥንቃቄ ከተመረመሩም በኋላ። የማረጋገጫ ጣቢያ Gianna Horna ትዕዛዙ ምን ያህል ጉዳት የሌለው መሆኑን በሚያምር ሁኔታ ያሳያል፡-

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 ን በመጠቀም ከተጠቃሚው እይታ የወጣ ነው።

በቅንፍ የተሰራ የመለጠፍ ሁነታ እንደዚህ ያሉ ጥቃቶችን ለማስወገድ በግልፅ የተነደፈ ነው. በዚህ ሁነታ ተርሚናሎች የተለጠፈውን ጽሑፍ በሁለት ልዩ የማምለጫ ቅደም ተከተሎች ውስጥ ለቅርፊቱን ስለ ጽሁፉ አመጣጥ ለመንገር ያጠጋሉ። ይህ ዛጎሉ የተለጠፈው ጽሑፍ ሊይዝ የሚችለውን ልዩ ቁምፊዎችን ችላ ሊል እንደሚችል ይነግረዋል። ወደ የተከበረው xterm የሚመለሱ ሁሉም ተርሚናሎች ይህንን ባህሪ ይደግፋሉ፣ ነገር ግን በቅንፍ ሁነታ መለጠፍ ከሼል ወይም በተርሚናል ላይ ከሚሰራ መተግበሪያ ድጋፍን ይፈልጋል። ለምሳሌ, ሶፍትዌር በመጠቀም የጂኤንዩ ማንበብ መስመር (ተመሳሳይ Bash)፣ ፋይል ያስፈልገዋል ~/. inputrc:

set enable-bracketed-paste on

እንደ አለመታደል ሆኖ፣ የሆርን የሙከራ ጣቢያ በራሱ የጽሑፍ ቅርጸት ይህንን ጥበቃ እንዴት ማለፍ እንደሚቻል እና ያለጊዜው በብሬኬትድ ሁነታ ላይ መተግበር እንዳለበት ያሳያል። ይህ የሚሰራው አንዳንድ ተርሚናሎች የራሳቸውን ከመጨመራቸው በፊት የማምለጫ ቅደም ተከተሎችን በትክክል ስላጣሩ ነው። ለምሳሌ፣ በእኔ ውስጥ የኮንሶልን ፈተናዎች በትክክለኛው ውቅረት እንኳን በተሳካ ሁኔታ ማጠናቀቅ አልቻልኩም ግቤት ፋይል. ይህ ማለት በማይደገፍ አፕሊኬሽን ወይም በስህተት በተዘጋጀ ሼል ምክንያት የስርዓት ውቅርዎን በቀላሉ ሊበላሹ ይችላሉ። ይህ በተለይ ወደ የርቀት አገልጋዮች ሲገቡ በጣም አደገኛ ነው, ጥንቃቄ የተሞላበት የማዋቀር ስራ ብዙም ያልተለመደ ነው, በተለይም ብዙ እንደዚህ ያሉ የርቀት ማሽኖች ካሉዎት.

ለዚህ ችግር ጥሩ መፍትሄ ለተርሚናል የመለጠፍ ማረጋገጫ ተሰኪ ነው። ዩ አርቪት, በቀላሉ አዲስ መስመሮችን የያዘ ማንኛውንም ጽሑፍ ለማስገባት ፈቃድ ይጠይቃል. በሆርን ለተገለጸው የጽሑፍ ጥቃት የበለጠ ደህንነቱ የተጠበቀ አማራጭ አላገኘሁም።

ትሮች እና መገለጫዎች

በአሁኑ ጊዜ ታዋቂው ባህሪ የታብድ በይነገጽ ድጋፍ ነው ፣ እሱም እንደ አንድ ተርሚናል ሌሎች በርካታ ተርሚናሎችን የያዘ መስኮት እንገልፃለን። ይህ ተግባር ለተለያዩ ተርሚናሎች የተለየ ነው፣ እና ምንም እንኳን ባህላዊ የ xterminals ትሮችን ባይደግፉም ፣ እንደ Xfce Terminal ፣ GNOME Terminal እና Konsole ያሉ በጣም ዘመናዊ ተርሚናል ትሥጉት ይህ ተግባር አላቸው። Urxvt ደግሞ ትሮችን ይደግፋል ነገር ግን ፕለጊን ከተጠቀሙ ብቻ ነው። ነገር ግን በትሩ ድጋፍ በራሱ, Terminator የማይከራከር መሪ ነው: ትሮችን ብቻ ይደግፋል, ነገር ግን ተርሚናሎችን በማንኛውም ቅደም ተከተል ማዘጋጀት ይችላል (ከዚህ በታች ያለውን ምስል ይመልከቱ).

የተርሚናል emulators አጠቃላይ እይታ

ሌላው የTerminator ባህሪ እነዚህን ትሮች በአንድ ላይ "መቧደን" እና ተመሳሳይ የቁልፍ ጭነቶችን ወደ ብዙ ተርሚናሎች በአንድ ጊዜ መላክ መቻል ሲሆን ይህም በበርካታ አገልጋዮች ላይ የጅምላ ስራዎችን በአንድ ጊዜ ለማከናወን የሚያስችል ድፍድፍ መሳሪያ ነው። በኮንሶሌም ተመሳሳይ ባህሪ ተተግብሯል። ይህንን ባህሪ በሌሎች ተርሚናሎች ውስጥ ለመጠቀም እንደ የሶስተኛ ወገን ሶፍትዌር መጠቀም አለብዎት ክላስተር ኤስኤስኤች, xlax ወይም tmux.

ትሮች በተለይ ከመገለጫ ጋር ሲጣመሩ በደንብ ይሰራሉ፡ ለምሳሌ አንድ ትር ለኢሜል፣ ሌላው ለውይይት እና የመሳሰሉት ሊኖርህ ይችላል። ይህ በኮንሶል ተርሚናል እና በጂኖኤምኢ ተርሚናል በደንብ የተደገፈ ነው። ሁለቱም እያንዳንዱ ትር የራሱን መገለጫ በራስ-ሰር እንዲጀምር ያስችለዋል። Terminator ፕሮፋይሎችንም ይደግፋል፣ ነገር ግን የተወሰነ ትር ሲከፈት አንዳንድ ፕሮግራሞችን በራስ ሰር የማስጀመርበትን መንገድ አላገኘሁም። ሌሎች ተርሚናሎች በጭራሽ “መገለጫ” ጽንሰ-ሀሳብ የላቸውም።

Ruffles

በዚህ ጽሑፍ የመጀመሪያ ክፍል ላይ የማቀርበው የመጨረሻው ነገር የተርሚናሎች ገጽታ ነው. ለምሳሌ GNOME፣ Xfce እና urxvt ግልጽነትን ይደግፋሉ፣ ነገር ግን በቅርቡ ለጀርባ ምስሎች ድጋፍን አቋርጠዋል፣ ይህም አንዳንድ ተጠቃሚዎች ወደ ተርሚናል እንዲቀይሩ አስገድዷቸዋል። Tilix. በግሌ ደስተኛ ነኝ እና ቀላል ነው። Xreso ምንጮችለ urxvt የበስተጀርባ ቀለሞችን መሠረት ያዘጋጃል። ሆኖም ግን, መደበኛ ያልሆኑ የቀለም ገጽታዎች ችግር ሊፈጥሩ ይችላሉ. ለምሳሌ, ፀሐያማ አይሰራም ከመተግበሪያዎች ጋር htop и IPTraf, አስቀድመው የራሳቸውን ቀለሞች ስለሚጠቀሙ.

ኦሪጅናል VT100 ተርሚናል ቀለሞችን አይደግፉም, እና አዲሶቹ ብዙውን ጊዜ በ 256 ባለ ቀለም ቤተ-ስዕል ብቻ የተገደቡ ነበሩ. የላቁ ተጠቃሚዎች ተርሚናሎቻቸውን፣ የሼል መጠየቂያዎች ወይም የሁኔታ አሞሌዎች ውስብስብ በሆነ መንገድ ለሚያበሳጭ ገደብ ሊሆን ይችላል። Gist የትኛዎቹ ተርሚናሎች "እውነተኛ ቀለም" ድጋፍ እንዳላቸው ይከታተላል። የእኔ ፈተናዎች በst፣ Alacritty እና VTE ላይ የተመሰረቱ ተርሚናሎች እውነተኛ ቀለምን በትክክል እንደሚደግፉ አረጋግጠዋል። ሌሎች ተርሚናሎች በዚህ ረገድ ጥሩ ውጤት የላቸውም እና እንዲያውም 256 ቀለሞችን እንኳን አያሳዩም. ከዚህ በታች በGNOME ተርሚናሎች ፣ st እና xterm ውስጥ በእውነተኛ ቀለም ድጋፍ መካከል ያለውን ልዩነት ማየት ይችላሉ ፣ይህን በ 256 የቀለም ቤተ-ስዕል እና urxvt ፣ ይህም በፈተናው ላይ ውድቀት ብቻ ሳይሆን በእነሱ ፈንታ አንዳንድ ብልጭ ድርግም የሚሉ ቁምፊዎችን ያሳያል።

የተርሚናል emulators አጠቃላይ እይታ

አንዳንድ ተርሚናሎች አገናኞችን ጠቅ የሚያደርጉ ለማድረግ የዩአርኤል ቅጦችን ጽሑፍ ይተነትናል። ይህ በሁሉም VTE-የተገኙ ተርሚናሎች ላይ የሚተገበር ሲሆን urxvt ግን ዩአርኤሎችን በጠቅታ ወይም የቁልፍ ሰሌዳ አቋራጭን የሚቀይር ልዩ ፕለጊን ይፈልጋል። የማሳያ URLዎችን በሌላ መንገድ የሞከርኳቸው ሌሎች ተርሚናሎች።

በመጨረሻም፣ በተርሚናሎች ውስጥ ያለው አዲስ አዝማሚያ የጥቅልል ቋት አማራጭ ነው። ለምሳሌ, st ምንም ጥቅልል ​​ቋት የለውም; ተጠቃሚው እንደ tmux እና እንደ ተርሚናል multiplexer ይጠቀማል ተብሎ ይታሰባል። GNU Screen.

አላክሪቲ የኋላ ማሸብለል ቋት የለውም፣ ነገር ግን በቅርቡ ይታከላል በዚህ ርዕስ ላይ ከተጠቃሚዎች "ሰፊ ግብረመልስ" ምክንያት የእሱ ድጋፍ. ከነዚህ ጀማሪዎች በተጨማሪ፣ እኔ የሞከርኩት እያንዳንዱ ተርሚናል በግልባጭ ማሸብለልን ይደግፋል።

ንዑስ ድምር

በሁለተኛው የቁስ አካል (እ.ኤ.አ.)በመጀመሪያው ውስጥ እነዚህ ሁለት የተለያዩ ጽሑፎች ነበሩ - በግምት. መስመር) አፈጻጸምን፣ የማህደረ ትውስታ አጠቃቀምን እና መዘግየትን እናነፃፅራለን። ነገር ግን በጥያቄ ውስጥ ያሉት አንዳንድ ተርሚናሎች ከባድ ድክመቶች እንዳሏቸው አስቀድመን ማየት እንችላለን። ለምሳሌ፣ ከ RTL ስክሪፕቶች ጋር በመደበኛነት የሚሰሩ ተጠቃሚዎች ከሌሎች ተመሳሳይ ስራዎችን በማስተናገድ የተሻሉ በመሆናቸው mlterm እና ptermን ግምት ውስጥ ማስገባት ይፈልጉ ይሆናል። ኮንሶሌም ጥሩ እንቅስቃሴ አድርጓል። ከ RTL ስክሪፕቶች ጋር የማይሰሩ ተጠቃሚዎች ሌላ ነገር መምረጥ ይችላሉ።

ተንኮል አዘል ኮድ ከማስገባት ጥበቃ አንፃር፣ urxvt በተለይ ለኔ ምቹ መስሎ በሚታየው የዚህ አይነት ጥቃት መከላከያ ልዩ አተገባበር ምክንያት ጎልቶ ይታያል። አንዳንድ ደወሎች እና ፊሽካ ለሚፈልጉ ኮንሶሌ ሊመለከታቸው የሚገባ ነው። በመጨረሻም, VTE ለተርሚናሎች እጅግ በጣም ጥሩ መሰረት መሆኑን ልብ ሊባል የሚገባው ነው, ይህም የቀለም ድጋፍን, የዩአርኤል እውቅናን, ወዘተ. በመጀመሪያ እይታ፣ ከሚወዱት አካባቢ ጋር የሚመጣው ነባሪ ተርሚናል ሁሉንም መስፈርቶች ሊያሟላ ይችላል፣ነገር ግን አፈፃፀሙን እስክንረዳ ድረስ ይህን ጥያቄ ክፍት እንተወው።

ንግግሩን እንቀጥል


በአጠቃላይ፣ የተርሚናሎች አፈጻጸም በራሱ የራቀ ችግር ሊመስል ይችላል፣ ነገር ግን እንደ ተለወጠ፣ አንዳንዶቹ ለእንደዚህ አይነት መሰረታዊ አይነት ሶፍትዌሮች በሚያስደንቅ ሁኔታ ከፍተኛ መዘግየት ያሳያሉ። እንዲሁም በቀጣይ በተለምዶ "ፍጥነት" ተብሎ የሚጠራውን (በእርግጥ ይህ የማሸብለል ፍጥነት ነው) እና የተርሚናሉን የማስታወሻ ፍጆታ (ከአስርተ ዓመታት በፊት እንደነበረው ዛሬ ወሳኝ እንዳልሆነ በማሳየት) እንመለከታለን.

መዘግየት

የተርሚናል አፈፃፀምን በጥልቀት ካጠናሁ በኋላ በዚህ ረገድ በጣም አስፈላጊው ግቤት መዘግየት (ፒንግ) ነው ወደሚል መደምደሚያ ደረስኩ። በእሱ መጣጥፍ ውስጥ "በደስታ እንጽፋለን" ፓቬል ፋቲን የተለያዩ የጽሑፍ አዘጋጆችን መዘግየት ተመልክቶ በዚህ ረገድ ተርሚናሎች በጣም ፈጣን ከሆኑ የጽሑፍ አርታኢዎች ቀርፋፋ ሊሆኑ እንደሚችሉ ፍንጭ ሰጥቷል። በመጨረሻ የራሴን ፈተና እንድፈጽም እና ይህን ጽሑፍ እንድጽፍ ያደረገኝ ይህ ፍንጭ ነበር።

ግን መዘግየት ምንድን ነው, እና ለምን በጣም አስፈላጊ ነው? ፋቲን በአንቀጹ ላይ “ቁልፉን በመጫን እና በተዛማጅ ስክሪን ዝመና መካከል ያለው መዘግየት” ሲል ገልጾታል እና ጠቅሷል። "የሰው-ኮምፒውተር መስተጋብር መመሪያ"“በኮምፒዩተር ማሳያ ላይ የሚታየው የእይታ ምላሽ መዘግየት በአሳታሚዎች ባህሪ እና እርካታ ላይ ትልቅ ተጽእኖ አለው” ይላል።

ፋቲን ይህ ፒንግ እርካታ ብቻ ሳይሆን ጥልቅ መዘዝ እንዳለው ሲገልጽ “መተየብ እየቀነሰ ይሄዳል፣ ብዙ ስህተቶች ይከሰታሉ እንዲሁም የዓይንና የጡንቻ ውጥረት ይጨምራል። በሌላ አገላለጽ ትልቅ መዘግየት ወደ ታይፖስ ሊያመራ ይችላል እና እንዲሁም የኮድ ጥራትን ዝቅ ያደርገዋል ፣ ምክንያቱም በአንጎል ላይ ተጨማሪ የግንዛቤ ጭነት ያስከትላል። ከሁሉ የከፋው ግን ፒንግ "የአይን እና የጡንቻ ውጥረትን ይጨምራል" ይህም የሚያመለክት ይመስላል የሙያ ጉዳቶች እድገት ወደፊት (በግልጽ ለማየት እንደሚቻለው, ደራሲው ማለት በአይን, በጀርባ, በክንድ እና በጡንቻዎች ጡንቻዎች ላይ ችግሮች እና በእርግጥ, ራዕይ - በግምት. መስመር) በተደጋጋሚ ውጥረት ምክንያት.

ከእነዚህ ተጽእኖዎች መካከል አንዳንዶቹ ለረጅም ጊዜ ይታወቃሉ, ውጤቱም ምርምራእ.ኤ.አ. በ 1976 በ Ergonomics መጽሔት ላይ የታተመው የ 100 ሚሊሰከንዶች መዘግየት "የመተየብ ፍጥነትን በእጅጉ ይጎዳል" ብሏል። በቅርቡ፣ የGNOME የተጠቃሚ መመሪያ አስተዋውቋል ተቀባይነት ያለው ምላሽ ጊዜ በ 10 ሚሊሰከንዶች, እና ተጨማሪ ከሄዱ, ከዚያ Microsoft Research 1 ሚሊሰከንድ ተስማሚ መሆኑን ያሳያል.

ፋቲን በጽሑፍ አርታኢዎች ላይ ፈተናዎቹን አከናውኗል; የሚባል ተንቀሳቃሽ መሳሪያ ፈጠረ ታይፖሜትርፒንግን በተርሚናል ኢምዩተሮች ውስጥ ለመፈተሽ የተጠቀምኩት። ፈተናው የተካሄደው በማስመሰል ሁነታ ላይ መሆኑን ያስታውሱ-በእውነቱ, ሁለቱንም ግብአት (የቁልፍ ሰሌዳ, የዩኤስቢ መቆጣጠሪያ, ወዘተ) እና ውፅዓት (የቪዲዮ ካርድ ቋት, ሞኒተር) መዘግየትን ግምት ውስጥ ማስገባት አለብን. እንደ ፋቲን አባባል, በተለመደው ውቅሮች ውስጥ ወደ 20 ሚ.ሜ. የመጫወቻ መሳሪያዎች ካሉዎት, ይህንን አሃዝ በ 3 ሚሊሰከንዶች ውስጥ ማግኘት ይችላሉ. ቀደም ሲል እንደዚህ ያለ ፈጣን ሃርድዌር ስላለን አፕሊኬሽኑ የራሱን መዘግየት መጨመር የለበትም። የፋቲን አላማ የመተግበሪያውን መዘግየት ወደ 1 ሚሊሰከንድ ማምጣት ወይም ያለ መደወያ እንኳን መድረስ ነው። ሊለካ የሚችል መዘግየት፣ እንዴት ውስጥ IntelliJ IDEA 15.

የእኔ ሙከራ ከምርመራዎቹ ጋር እንደሚስማማ ለማሳየት የኔ መለኪያ ውጤቶች እና አንዳንድ የፋቲን ውጤቶች እነሆ፡-

የተርሚናል emulators አጠቃላይ እይታ

እኔን የገረመኝ የመጀመሪያው ነገር እንደ xterm እና mlterm ያሉ የቆዩ ፕሮግራሞች የተሻለ የምላሽ ጊዜ ነው። በጣም በከፋ የመመዝገቢያ መዘግየት (2,4 ሚሴ) ከፈጣኑ ዘመናዊ ተርሚናል (10,6 ms for st) የተሻለ አፈጻጸም አሳይተዋል። ምንም ዘመናዊ ተርሚናል ከ10 ሚሊሰከንድ ጣራ በታች አይወድቅም። በተለይም አላክሪቲ በ 2017 ከመጀመሪያው ግምገማ በኋላ ውጤቶቹ የተሻሻሉ ቢሆኑም "ፈጣኑ ተርሚናል ኢምዩተር ይገኛል" የሚለውን ጥያቄ ማሟላት አልቻለም። በእርግጥ, የፕሮጀክቱ ደራሲዎች ሁኔታውን ማወቅ እና ማሳያውን ለማሻሻል እየሰሩ ነው. እንዲሁም ቪም GTK3 ን በመጠቀም ከ GTK2 አቻው ያነሰ የክብደት ቅደም ተከተል መሆኑን ልብ ሊባል ይገባል። ከዚህ በመነሳት GTK3 ተጨማሪ መዘግየትን ይፈጥራል ብለን መደምደም እንችላለን እና ይህ በሁሉም በሚጠቀሙት ሌሎች ተርሚናሎች (Terminator, Xfce4 Terminal እና GNOME Terminal) ላይ ይንጸባረቃል.

ይሁን እንጂ ልዩነቶቹ ለዓይን ላይታዩ ይችላሉ. ፋቲን እንዳብራራው፣ “በእርስዎ ላይ ተጽእኖ እንዲያሳድር መዘግየቱን ማወቅ የለብዎትም። ፋቲን በተጨማሪም ስለ መደበኛ መዛባት ያስጠነቅቃል፡- “በማዘግየት (በማዘግየት) ላይ የሚፈጠሩ ማናቸውም ረብሻዎች ሊተነብዩ ባለመቻላቸው ተጨማሪ ጭንቀት ይፈጥራሉ።

የተርሚናል emulators አጠቃላይ እይታ

ከላይ ያለው ግራፍ የተወሰደው ከንፁህ Debian 9 (ዘርጋ) ዎች i3 መስኮት አስተዳዳሪ. ይህ አካባቢ በድብቅ ሙከራዎች ውስጥ ምርጡን ውጤት ያስገኛል. እንደ ተለወጠ፣ GNOME ለሁሉም ልኬቶች ተጨማሪ የ 20 ms ፒንግ ይፈጥራል። ለዚህ ሊሆን የሚችለው ማብራሪያ የግብአት ክስተቶች የተመሳሰለ ሂደት ያላቸው ፕሮግራሞች መኖራቸው ነው። ፋቲን እንዲህ ላለው ጉዳይ ምሳሌ ይሰጣል Workrave, ይህም ሁሉንም የግቤት ክስተቶችን በአንድ ጊዜ በማስኬድ መዘግየትን ይጨምራል። በነባሪ፣ GNOME ከመስኮት አስተዳዳሪ ጋር አብሮ ይመጣል እናትበፒንግ ላይ ተጽእኖ የሚያሳድር እና ቢያንስ 8 ሚሊሰከንድ መዘግየትን የሚጨምር ተጨማሪ የማቋረጫ ንብርብር ይፈጥራል።

የተርሚናል emulators አጠቃላይ እይታ

የማሸብለል ፍጥነት

የሚቀጥለው ፈተና ባህላዊ "ፍጥነት" ወይም "ባንድዊድዝ" ፈተና ሲሆን ይህም ተርሚናል በስክሪኑ ላይ ከፍተኛ መጠን ያለው ጽሁፍ እያሳየ ምን ያህል በፍጥነት ማሸብለል እንደሚችል ይለካል። የፈተናው መካኒኮች ይለያያሉ; የመጀመሪያው ሙከራ የሴክ ትዕዛዝን በመጠቀም በቀላሉ ተመሳሳይ የጽሑፍ ሕብረቁምፊ መፍጠር ነበር። ሌሎች ፈተናዎች የቶማስ ኢ ዲኪ (xterm maintainer) ፈተናን ያካትታሉ፣ እሱም በተደጋጋሚ የ terminfo.src ፋይል ወርዷል. በሌላ የተርሚናል አፈጻጸም ግምገማ ዴን ሉ ድመትን በመጠቀም ወደ ተርሚናል የሚወጣውን ቤዝ32 ኮድ የተደረገ የዘፈቀደ ባይት ሕብረቁምፊ ይጠቀማል። ሉ እንዲህ ዓይነቱን ሙከራ "አንድ ሰው መገመት እንደሚችለው የማይጠቅም መለኪያ" አድርጎ ይቆጥረዋል እና በምትኩ የተርሚናል ምላሽን እንደ ዋና መለኪያ መጠቀምን ይጠቁማል። ዲኪ ፈተናውን አሳሳች ብሎታል። ሆኖም ሁለቱም ደራሲዎች የተርሚናል መስኮት የመተላለፊያ ይዘት ችግር ሊሆን እንደሚችል አምነዋል። ሉው ትላልቅ ፋይሎችን በሚያሳይበት ጊዜ Emacs Eshell በረዶ ሆኖ አገኘው እና ዲኪ የ xtrerm ምስላዊ ዝግመትን ለማስወገድ ተርሚናልን አመቻችቷል። ስለዚህ ለዚህ ሙከራ አሁንም የተወሰነ ጠቀሜታ አለ ፣ ግን የማቅረብ ሂደቱ ከተርሚናል ወደ ተርሚናል በጣም የተለየ ስለሆነ ፣ ሌሎች መለኪያዎችን ለመፈተሽ እንደ የሙከራ አካልም ሊያገለግል ይችላል።

የተርሚናል emulators አጠቃላይ እይታ

እዚህ ላይ rxvt እና st ውድድሩን ቀድመው ሲጎተቱ እናያለን፣ በመቀጠልም በጣም አዲስ የሆነው አላክሪቲ፣ እሱም በአፈጻጸም ላይ ያተኮረ ነው። በመቀጠል Xfce (VTE ቤተሰብ) እና ኮንሶሌ ናቸው፣ እነሱም በእጥፍ የሚበልጥ ፍጥነት አላቸው። የመጨረሻው xterm ነው፣ እሱም ከrxvt በአምስት እጥፍ ቀርፋፋ ነው። በፈተናው ወቅት፣ xterm እንዲሁ ብዙ ተንኮታኩቷል፣ ይህም የማለፊያ ጽሑፍ ተመሳሳይ መስመር ቢሆንም ለማየት አስቸጋሪ አድርጎታል። ኮንሶሌ ፈጣን ነበር፣ ነገር ግን አንዳንድ ጊዜ ተንኮለኛ ነበር፡ ማሳያው ከጊዜ ወደ ጊዜ ይበርዳል፣ ከፊል ጽሁፍ ያሳያል ወይም ጨርሶ አይታይም። ሌሎች ተርሚናሎች st፣ Alacritty እና rxvtን ጨምሮ ሕብረቁምፊዎችን በግልፅ አሳይተዋል።

ዲኪ የአፈጻጸም ልዩነቶቹ በተለያዩ ተርሚናሎች ውስጥ በጥቅል ማገጃዎች ዲዛይን ምክንያት እንደሆነ ያስረዳሉ። በተለይም rxvt እና ሌሎች ተርሚናሎችን “አጠቃላይ ህጎችን አልተከተሉም” ሲል ይከሳል።

"ከ xterm በተለየ፣ rxvt ሁሉንም ዝመናዎች ለማሳየት አልሞከረም። ወደ ኋላ ከወደቀ፣ አንዳንድ ዝማኔዎችን ለማግኘት እምቢ ይላል። ይህ ከውስጣዊ ማህደረ ትውስታ አደረጃጀት ይልቅ በሚታየው የማሸብለል ፍጥነት ላይ የበለጠ ተፅዕኖ አሳድሯል። አንዱ ችግር የ ASCII አኒሜሽን በተወሰነ ደረጃ ትክክል ያልሆነ ነበር."

ይህንን የ xterm ቀርፋፋነት ለማስተካከል፣ ዲኪ ሀብቱን ለመጠቀም ይጠቁማል ፈጣን ማሸብለል, ፍሰቱን ለመከታተል xterm አንዳንድ የስክሪን ማሻሻያዎችን እንዲያስወግድ ያስችለዋል። የእኔ ሙከራዎች ፈጣን ማሸብለል አፈጻጸምን እንደሚያሻሽል እና xtermን ከrxvt ጋር እንደሚያመጣ አረጋግጠዋል። ይህ ግን ጨካኝ ክራንች ነው፣ ዲኪ እራሱ እንዳብራራው፡ "አንዳንድ ጊዜ xterm - ልክ እንደ ኮንሶል - አንዳንዶቹ ከተወገዱ በኋላ አዲስ የስክሪን ማሻሻያ ስብስብ ሲጠብቅ የሚቆም ይመስላል።" በዚህ መንገድ፣ ሌሎች ተርሚናሎች በፍጥነት እና በማሳያ ታማኝነት መካከል ጥሩ ስምምነትን ያገኙ ይመስላል።

የሀብት ፍጆታ

የማሸብለል ፍጥነትን እንደ የአፈጻጸም መለኪያ መቁጠሩ ምንም ፋይዳ ቢኖረውም ይህ ፈተና በተርሚናሎች ላይ ያለውን ጭነት ለመምሰል ያስችለናል, ይህ ደግሞ እንደ ማህደረ ትውስታ ወይም የዲስክ አጠቃቀምን የመሳሰሉ ሌሎች መለኪያዎችን ለመለካት ያስችለናል. መለኪያዎቹ የተገኘው የተጠቀሰውን ሙከራ በማሄድ ነው። ተከታይ በ Python ሂደት ክትትል ስር. የሜትር መረጃን ሰብስቧል ግርዶሽ() ለ ru_maxrss፣ መጠን ru_oublock и ru_inblock እና ቀላል ሰዓት ቆጣሪ.

የተርሚናል emulators አጠቃላይ እይታ

በዚህ ሙከራ ST በዝቅተኛው አማካኝ የማስታወሻ ፍጆታ 8 ሜጋ ባይት የመጀመሪያውን ቦታ ይይዛል፣ ይህም የንድፍ ዋናው ሃሳብ ቀላልነት መሆኑ አያስደንቅም። mlterm፣ xterm እና rxvt ትንሽ ተጨማሪ ይበላሉ - 12 ሜባ አካባቢ። ሌላው ጉልህ ውጤት Alcritty ነው, ይህም ለማሄድ 30 ሜባ ያስፈልገዋል. ከዚያ ከ 40 እስከ 60 ሜባ አኃዝ ያላቸው የ VTE ቤተሰብ ተርሚናሎች አሉ ፣ ይህ በጣም ብዙ ነው። ይህ ፍጆታ እነዚህ ተርሚናሎች ከፍተኛ ደረጃ ያላቸውን ቤተ-መጻሕፍት ስለሚጠቀሙ ሊገለጽ ይችላል, ለምሳሌ, GTK. ኮንሶሌ በፈተናዎች ወቅት እጅግ በጣም ግዙፍ በሆነ 65ሜባ የማስታወሻ ፍጆታ በመጨረሻ ይመጣል፣ ምንም እንኳን ይህ በጣም ሰፊ በሆነው ባህሪው ሊረጋገጥ ይችላል።

ከአስር አመታት በፊት ከተገኙት ውጤቶች ጋር ሲነፃፀሩ ሁሉም ፕሮግራሞች በሚያስደንቅ ሁኔታ የበለጠ ማህደረ ትውስታን መጠቀም ጀመሩ። Xterm 4 ሜባ ይፈልጋል አሁን ግን ሲጀመር 15 ሜባ ይፈልጋል። ለ rxvt ተመሳሳይ የፍጆታ መጨመር አለ, አሁን ከሳጥኑ ውስጥ 16 ሜባ ያስፈልገዋል. Xfce ተርሚናል 34 ሜባ ይወስዳል፣ይህም ከበፊቱ በሶስት እጥፍ ይበልጣል፣ግን GNOME ተርሚናል የሚፈልገው 20 ሜባ ብቻ ነው። እርግጥ ነው, ሁሉም የቀደሙት ሙከራዎች በ 32 ቢት አርክቴክቸር ላይ ተካሂደዋል. በኤልሲኤ 2012 Rusty Russell ነገረውየማስታወስ ፍጆታ መጨመርን የሚያብራሩ ብዙ ተጨማሪ ስውር ምክንያቶች እንዳሉ። ይህን ካልኩ በኋላ አሁን የምንኖረው ጊጋባይት የማስታወስ ችሎታ ባለንበት ወቅት ላይ ነው፣ ስለዚህ እንደምንም እናስተዳድራለን።

ይሁን እንጂ፣ እንደ ተርሚናል ላሉ መሰረታዊ ሶፍትዌሮች ተጨማሪ ማህደረ ትውስታን መስጠት የሀብት ብክነት እንደሆነ ከማሰብ ውጪ ምንም ማድረግ አልችልም። እነዚህ ፕሮግራሞች ከትንንሾቹ ውስጥ ትንሹ፣ በማንኛውም "ሳጥን" ላይ፣ በጫማ ሳጥንም ቢሆን፣ ማስኬድ የሚችሉ መሆን አለባቸው። Linux-ሲስተምስ (እና የሚመጣው ይሄ እንደሆነ ያውቃሉ)። ነገር ግን በእነዚህ ቁጥሮች፣ በርካታ ተርሚናሎች በሚሰሩበት በማንኛውም አካባቢ የማህደረ ትውስታ አጠቃቀም ችግር ይሆናል፣ ጥቂት በጣም ቀላል እና ውስን ከሆኑ በስተቀር። ይህንን ለማካካስ፣ የGNOME ተርሚናል፣ Konsole፣ urxvt፣ Terminator እና Xfce ተርሚናል ሁሉም የDaemon ሁነታ አላቸው፣ ይህም በርካታ ተርሚናሎች በአንድ ሂደት እንዲተዳደሩ ያስችላቸዋል፣ ይህም የማህደረ ትውስታ ፍጆታቸውን ይገድባል።

የተርሚናል emulators አጠቃላይ እይታ

በፈተናዎቼ ወቅት፣ የዲስክ ንባብ-ፃፍን በተመለከተ ወደ ሌላ ያልተጠበቀ ውጤት መጣሁ፡ እዚህ ምንም ነገር አላየሁም ብዬ ጠብቄ ነበር፣ ነገር ግን አንዳንድ ተርሚናሎች በጣም ከፍተኛውን መረጃ በዲስክ ላይ ይጽፋሉ። ስለዚህ፣ የVTE ቤተ-መጽሐፍት በእውነቱ በዲስክ ላይ ጥቅልል ​​ቋት ይይዛል (ይህ ባህሪ በ 2010 ተስተውሏል, እና ይህ አሁንም እየሆነ ነው). ግን እንደ አሮጌ አተገባበር፣ አሁን ቢያንስ ይህ ውሂብ AES256 GCM (ኢ.ሲ.ኤም.ኤም.) በመጠቀም የተመሰጠረ ነው።ከስሪት 0.39.2). ነገር ግን ምክንያታዊ ጥያቄ የሚነሳው፡- ስለ VTE ቤተ-መጽሐፍት ልዩ የሆነው ነገር ምንድ ነው, እናም ለትግበራው መደበኛ ያልሆነ አቀራረብን ይጠይቃል.

መደምደሚያ

በዚህ ጽሑፍ የመጀመሪያ ክፍል፣ በVTE ላይ የተመሰረቱ ተርሚናሎች ጥሩ የባህሪ ስብስብ እንደሚያቀርቡ አግኝተናል፣ ነገር ግን ይህ በዋጋ እንደሚመጣ አሁን እናያለን። ማህደረ ትውስታ በአሁኑ ጊዜ ችግር አይደለም፣ ምክንያቱም ሁሉም የVTE ተርሚናሎች የማህደረ ትውስታ አጠቃቀማቸውን በሚገድብ የዳኢሞን ሂደት ሊተዳደሩ ይችላሉ። ሆኖም፣ በራም እና በከርነል ቋት ቦታ ላይ አካላዊ ገደቦች ያሏቸው አሮጌ ስርዓቶች አሁንም በጣም ጥቂት ሀብቶችን ስለሚጠቀሙ ከቀደሙት የተርሚናሎች ስሪቶች ሊጠቀሙ ይችላሉ። የVTE ተርሚናሎች በመተላለፊያ ሙከራዎች (ማሸብለል) ጥሩ ቢሰሩም፣ የማሳያ መዘግየትያቸው በGNOME የተጠቃሚ መመሪያ ውስጥ ከተቀመጠው ገደብ ከፍ ያለ ነው። ምናልባት የVTE ገንቢዎች ይህንን ግምት ውስጥ ማስገባት አለባቸው። ለጀማሪ ተጠቃሚዎች እንኳን፣ Linux ከተርሚናል ጋር መገናኘት የማይቀር ስለሆነ፣ የበለጠ ለተጠቃሚ ምቹ ያደርጉታል። ልምድ ላላቸው ጀማሪዎች፣ ከነባሪው ተርሚናል መቀየር የዓይን ውጥረትን መቀነስ እና ረጅም የስራ ክፍለ ጊዜዎችን ምክንያት የሚመጡ የወደፊት የስራ ጉዳቶችን እና ህመሞችን የማስወገድ እድልን ሊያመለክት ይችላል። እንደ አለመታደል ሆኖ፣ የቆዩ xterm እና mlterm ብቻ አስማታዊ የፒንግ ገደብን 10 ሚሊሰከንዶች ያሳካሉ፣ ይህም ለብዙዎች ተቀባይነት የለውም።

የቁጥጥር መለኪያዎችም እንደሚያሳዩት በግራፊክ አካባቢዎች እድገት ምክንያት Linux ገንቢዎቹ በርካታ ስምምነቶችን ማድረግ ነበረባቸው። አንዳንድ ተጠቃሚዎች መደበኛ የመስኮት አስተዳዳሪዎችን መጠቀም ያስቡ ይሆናል፣ ምክንያቱም ጉልህ የሆነ የሌሊት ቅነሳ ስለሚሰጡ። እንደ አለመታደል ሆኖ፣ ለዌይላንድ የሌትት ጊዜን መለካት አልተቻለም፡ የተጠቀምኩበት የታይፖሜትር ፕሮግራም ዌይላንድን ለመከላከል የተነደፈውን በትክክል ለማድረግ የተነደፈ ነው - በሌሎች መስኮቶች ላይ ስለላ ማድረግ። የዌይላንድ ውህድ ከ X.org የተሻለ እንደሚሰራ ተስፋ አደርጋለሁ፣ እና ወደፊት በዚህ አካባቢ ውስጥ ያለውን የሌትት ጊዜ ለመለካት አንድ ሰው መንገድ እንደሚያገኝ ተስፋ አደርጋለሁ።

ምንጭ: hab.com

በDDoS ጥበቃ፣ VPS VDS አገልጋዮች ለጣቢያዎች አስተማማኝ ማስተናገጃ ይግዙ 🔥 አስተማማኝ የድር ጣቢያ ማስተናገጃ በዲዶኤስ ጥበቃ፣ በቪፒኤስ ቪዲኤስ አገልጋዮች ይግዙ | ProHoster