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

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

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

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

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

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

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

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

የዩኒኮድ ድጋፍ

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

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

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

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

አንዳንድ የቆዩ የተርሚናሎች ስሪቶች (በተለይ mlterm) ቅርጸ-ቁምፊዎችን በአግባቡ መያዝ በማይችሉበት ከዴቢያን 27 የተሻለ ውጤት ስላስገኘ እነዚህ ቅጽበታዊ ገጽ እይታዎች በፌዶራ 9 ተወስደዋል። እንደ እድል ሆኖ ይህ በኋለኞቹ ስሪቶች ውስጥ ተስተካክሏል.

አሁን መስመሩ በ 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 አጠቃላይ እይታ

ከላይ ያለው ግራፍ በንጹህ ዴቢያን 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 ነገረውየማስታወስ ፍጆታ መጨመርን የሚያብራሩ ብዙ ተጨማሪ ስውር ምክንያቶች እንዳሉ። ይህን ካልኩ በኋላ አሁን የምንኖረው ጊጋባይት የማስታወስ ችሎታ ባለንበት ወቅት ላይ ነው፣ ስለዚህ እንደምንም እናስተዳድራለን።

ነገር ግን፣ እንደ ተርሚናል ለሆነ ነገር ተጨማሪ ማህደረ ትውስታን መመደብ የሀብት ብክነት እንደሆነ ይሰማኝ ዘንድ አልችልም። እነዚህ ፕሮግራሞች ከትናንሾቹ በጣም ትንሹ መሆን አለባቸው ፣ በማንኛውም “ሣጥን” ላይ ፣ የጫማ ሳጥን እንኳን ፣ ከሊኑክስ ሲስተም ጋር መታጠቅ ወደሚያስፈልጋቸውበት ደረጃ ከደረስን (እና እንደዚያ እንደሚሆን ያውቃሉ) ) . ነገር ግን በእነዚህ ቁጥሮች፣ የማህደረ ትውስታ አጠቃቀም ከጥቂቶቹ በጣም ቀላል እና በጣም ውስን አቅሞች ውጭ ብዙ ተርሚናሎችን በሚያሄድ በማንኛውም አካባቢ ወደፊት ጉዳይ ይሆናል። ይህንን ለማካካስ GNOME Terminal, Konsole, urxvt, Terminator እና Xfce Terminal ብዙ ተርሚናሎችን በአንድ ሂደት ለመቆጣጠር የሚያስችል የ Daemon ሁነታ አላቸው, ይህም የማስታወሻ ፍጆታቸውን ይገድባል.

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

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

መደምደሚያ

በአንቀጹ የመጀመሪያ ክፍል በ VTE ላይ የተመሰረቱ ተርሚናሎች ጥሩ የባህሪዎች ስብስብ እንዳላቸው አግኝተናል ፣ አሁን ግን ይህ ከአንዳንድ የአፈፃፀም ወጪዎች ጋር እንደሚመጣ እናያለን። አሁን የማስታወስ ችግር አይደለም ምክንያቱም ሁሉም VTE ተርሚናሎች በ Daemon ሂደት ሊቆጣጠሩ ይችላሉ, ይህም የምግብ ፍላጎታቸውን ይገድባል. ነገር ግን፣ በ RAM እና የከርነል ቋት መጠን ላይ አካላዊ ውስንነት ያላቸው የቆዩ ስርዓቶች አሁንም የቀደሙት የተርሚናሎች ስሪቶች ሊያስፈልጋቸው ይችላል፣ ምክንያቱም የሚጠቀሙት በጣም ያነሰ ሀብት ነው። ምንም እንኳን የVTE ተርሚናሎች በውጤት (ማሸብለል) ሙከራዎች ጥሩ አፈጻጸም ቢኖራቸውም የማሳያ መዘግየት በGNOME የተጠቃሚ መመሪያ ውስጥ ከተቀመጠው ገደብ በላይ ነው። የVTE ገንቢዎች ምናልባት ይህንን ግምት ውስጥ ማስገባት አለባቸው። ለጀማሪ ሊኑክስ ተጠቃሚዎች እንኳን ተርሚናል ማግኘቱ የማይቀር መሆኑን ከግምት ውስጥ የምናስገባ ከሆነ የበለጠ ለተጠቃሚዎች ምቹ ያደርጉታል። ልምድ ላካበቱ ጂኪዎች፣ ከነባሪው ተርሚናል መቀየር የአይን ውጥረትን መቀነስ እና በረዥም የስራ ክፍለ ጊዜዎች ምክንያት ወደፊት ከስራ ጋር የተያያዙ ጉዳቶችን እና ህመሞችን የማስወገድ ችሎታን ሊያመለክት ይችላል። እንደ አለመታደል ሆኖ የድሮው xterm እና mlterm ብቻ ወደ 10 ሚሊሰከንዶች አስማት ፒንግ ጣራ ያመጡልናል ይህም ለብዙዎች ተቀባይነት የለውም።

የቤንችማርክ መለኪያዎችም በሊኑክስ ግራፊክ አከባቢዎች እድገት ምክንያት ገንቢዎች ብዙ ማግባባት እንዳለባቸው አሳይቷል። አንዳንድ ተጠቃሚዎች ጉልህ የሆነ የፒንግ ቅነሳ ስለሚሰጡ መደበኛ የመስኮት አስተዳዳሪዎችን መመልከት ይፈልጉ ይሆናል። እንደ አለመታደል ሆኖ ለዌይላንድ መዘግየትን ለመለካት አልተቻለም፡ የተጠቀምኩት የቲፖሜትር ፕሮግራም የተፈጠረው ዌይላንድ ለመከላከል ለታቀደው ነገር ነው፡ በሌሎች መስኮቶች ላይ ስለመሰለል። የዌይላንድ ማቀናበር ከ X.org በተሻለ ሁኔታ እንደሚሰራ ተስፋ አደርጋለሁ፣ እና ደግሞ ወደፊት አንድ ሰው በዚህ አካባቢ ያለውን መዘግየት የሚለካበት መንገድ እንደሚያገኝ ተስፋ አደርጋለሁ።

ምንጭ: hab.com

አስተያየት ያክሉ