ç§ãã¡ã®ç¿»èš³å±ããäžèš: éåžžã誰ããææ°ã®è³æãåºçç©ã®ç¿»èš³ã«åªããŠããŸãããç§ãã¡ãäŸå€ã§ã¯ãããŸããã ãããã端æ«ã¯é±ã«äžåºŠã¢ããããŒãããããã®ã§ã¯ãããŸããã ããã§ã2018 幎æ¥ã«çºè¡šãããã¢ã³ãã¯ãŒã ããŒãã¬ã«ããèšäºã翻蚳ããŸãããçŸä»£ã®åºæºãããããšããªãã®ãå€ããã«ãããããããç§ãã¡ã®æèŠã§ã¯ããã®è³æã¯ãã®é¢é£æ§ããŸã£ãã倱ã£ãŠããŸããã ãªããåœåã¯XNUMXåã®é£èŒã§ããããXNUMXåã®å€§ããªèšäºã«ãŸãšããããšã«ããŸããã

ã¿ãŒããã«ã¯ã³ã³ãã¥ãŒã¿ã®æŽå²ã®äžã§ç¹å¥ãªäœçœ®ãå ããŠããŸãããããæ°å幎ãã°ã©ãã£ã«ã« ã€ã³ã¿ãŒãã§ã€ã¹ãæ®åããã«ã€ããŠã³ãã³ã ã©ã€ã³ãšäžŠãã§çãæ®ããããåŸãªããªããŸããã èªåã®ãã®ãšäº€æãã ãã€ãŸãããã³ãã«ãŒããšãã°ã«ã¹ã€ããã«åºã¥ããã·ã¹ãã ã®ä¿®æ£ã§ããã ææ°ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ã¯ããããã圢ç¶ãè²ã®ããŸããŸãªã¿ãŒããã« ãšãã¥ã¬ãŒã¿ãŒãä»å±ããŠããŸãã ãããŠãå€ãã®äººã¯èªåã®äœæ¥ç°å¢ã§æäŸãããæšæºã®ã¿ãŒããã«ã«æºè¶³ããŠããŸãããäžã«ã¯ããæ°ã«å
¥ãã®ã·ã§ã«ãããã¹ã ãšãã£ã¿ãå®è¡ããããã«ããŸã£ãã颚å€ãããªãœãããŠã§ã¢ãèªãããã«äœ¿çšããŠãã人ãããŸãã ãã ãããã®èšäºãããããããã«ããã¹ãŠã®ç«¯æ«ãåãã€ã¡ãŒãžã§äœæãããŠããããã§ã¯ãããŸãããæ©èœããµã€ãºãããã©ãŒãã³ã¹ã倧ããç°ãªããŸãã
äžéšã®ç«¯æ«ã«ã¯ããŸã£ããé©ãã¹ãã»ãã¥ãªã㣠ããŒã«ããããããã«ã»ãšãã©ã®ç«¯æ«ã«ã¯ãã¿ãä»ãã€ã³ã¿ãŒãã§ã€ã¹ã®ãµããŒãããã¹ã¯ãªããäœæãŸã§ããŸã£ããç°ãªãæ©èœã»ãããåãã£ãŠããŸãã ç§ãã¡ã¯ , ãã®èšäºã¯ãèªè ã 2018 幎ã«äœ¿çšãã端æ«ã決å®ããã®ã«åœ¹ç«ã€ä»¥åã®è³æãæŽæ°ãããã®ã§ãã èšäºã®ååã§ã¯æ©èœãæ¯èŒããåŸåã§ã¯ããã©ãŒãã³ã¹ãè©äŸ¡ããŸãã
ç§ãã¬ãã¥ãŒãã端æ«ã¯æ¬¡ã®ãšããã§ãã

å·çæç¹ã§ã¯ Debian 9 ãŸã㯠Fedora 27 ã§å±éã§ããå®å®ãã«ãã«éå®ãããŠããããããããã¯ææ°ããŒãžã§ã³ã§ã¯ãªãå¯èœæ§ããããŸããå¯äžã®äŸå€ã¯ Alacritty ã§ãã ãã㯠GPU ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ç«¯æ«ã®åå«ã§ããããã®ã¿ã¹ã¯çšã«çããæ°ããèšèªã§ãã Rust ã§æžãããŠããŸãã Web 端æ«ãã¬ãã¥ãŒããé€å€ããŸãã ( ïŒãäºåãã¹ãã§éåžžã«æªãããã©ãŒãã³ã¹ã瀺ãããããã§ãã
Unicode ã®ãµããŒã
Unicode ãµããŒãã䜿çšããŠãã¹ããéå§ããŸããã 端æ«ã®æåã®ãã¹ãã¯ãUnicode æååã衚瀺ããããšã§ããã : ãéãÎãÐã×§ãÙ ãà¹ãããå¶ãèãë§ã ãã®ç°¡åãªãã¹ãã¯ã端æ«ãäžçäžã§æ£ããåäœã§ãããã©ããã瀺ããŸãã xterm 端æ«ã«ã¢ã©ãã¢æåã衚瀺ãããªã ããã©ã«ãèšå®ã§ã¯:

ããã©ã«ãã§ã¯ãxterm ã¯å€å
žçãªãåºå®ããã©ã³ãã䜿çšããŸãã ãã1997 幎以æ¥ãUnicode ãããªãã«ããŒããŠãããã ãã®ãã©ã³ãã§ã¯æåã空çœã®ãã¬ãŒã ãšããŠè¡šç€ºãããåé¡ãçºçããŠãããæåãæçµçã«æ£ãã衚瀺ãããã®ã¯ãããã¹ã ãã©ã³ãã 20 ãã€ã³ã以äžã«å¢å ããå Žåã®ã¿ã§ãã ãã ãããã®ãä¿®æ£ãã«ãããä»ã® Unicode æåã®è¡šç€ºãå£ããŸãã

ãããã®ã¹ã¯ãªãŒã³ã·ã§ããã¯ãäžéšã®å€ãããŒãžã§ã³ã®ç«¯æ« (ç¹ã« mlterm) ããã©ã³ããé©åã«åŠçã§ããªãã£ã Debian 27 ãããè¯å¥œãªçµæãåŸããããããFedora 9 ã§æ®åœ±ãããŸããã 幞ããªããšã«ãããã¯åŸã®ããŒãžã§ã³ã§ä¿®æ£ãããŸããã
ããã§ãxterm ã§è¡ãã©ã®ããã«è¡šç€ºããããã«æ³šç®ããŠãã ããã èšå·Memãšããã«ç¶ãã»ã èªã§ããããšã倿ããŸãã RTL ã¹ã¿ã€ã« ã¹ã¯ãªãã ()ãæè¡çã«ã¯å³ããå·Šã«è¡šç€ºãããå¿ èŠããããŸãã Firefox 57 ãªã©ã® Web ãã©ãŠã¶ã¯ãäžèšã®è¡ãæ£ããåŠçããŸãã RTL ããã¹ãã®ããåçŽãªããŒãžã§ã³ã¯ããããšããåèªã§ãããããã©ã€èªã§ïŒ). ã¯æ¬¡ã®ããã«è¿°ã¹ãŠããŸãã
ãå€ãã®ã³ã³ãã¥ãŒã¿ãŒ ããã°ã©ã ã¯åæ¹åããã¹ããæ£ãã衚瀺ã§ããŸããã ããšãã°ãããã©ã€èªã®ååããµã©ãã¯ãsin (ש) (å³åŽã«è¡šç€ºããã)ãæ¬¡ã« resh (ך)ããããŠæåŸã« he (×) (å·ŠåŽã«è¡šç€ºããã) ã®æåã§æ§æãããŸãã
å€ãã®ç«¯æ«ã¯ãã®ãã¹ãã«åæ ŒããŸãããAlacrittyãVTE ç±æ¥ã® Gnome ããã³ XFCE 端æ«ãurxvtãstãããã³ xterm ã¯ãããããååããArasããšæžãããã®ããã«ããSaraããéã®é åºã§è¡šç€ºããŸãã

åæ¹åããã¹ãã«é¢ãããã XNUMX ã€ã®åé¡ã¯ãç¹ã« RTL ããã¹ããš LTR ããã¹ããæ··åããå Žåãäœããã®æ¹æ³ã§äœçœ®ãæããå¿
èŠãããããšã§ãã RTL ã¹ã¯ãªããã¯ã¿ãŒããã« ãŠã£ã³ããŠã®å³åŽããå®è¡ããå¿
èŠããããŸãããããã©ã«ãã§ LTR è±èªã«èšå®ãããŠããã¿ãŒããã«ã§ã¯ã©ãããã°ããã§ãããã? ãããã®ã»ãšãã©ã«ã¯ç¹å¥ãªã¡ã«ããºã ã¯ãªãããã¹ãŠã®ããã¹ããå·Šã«æããããŸã (Konsole ãå«ã)ã äŸå€ã¯ pterm ãš mlterm ã§ããããã¯æšæºã«æºæ ãããã®ãããªè¡ã峿ãã«ããŸãã

æ¿å ¥ä¿è·
ç§ãèªèããæ¬¡ã®éèŠãªæ©èœã¯ãæ¿å ¥é²æ¢ä¿è·ã§ãã æ¬¡ã®ãããªåªæãããããšã¯åºãç¥ãããŠããŸããã
$ curl http://example.com/ | shã¯ã³ãŒãå®è¡ã®ããã·ã¥ ã³ãã³ãã§ãããæ³šææ·±ã調ã¹ãåŸã§ããWeb ãã©ãŠã¶ããã³ã㌠ã¢ã³ã ããŒã¹ããããšãã«é ãã³ãã³ããã³ã³ãœãŒã«ã«å¿ã³èŸŒãå¯èœæ§ãããããšãç¥ã£ãŠãã人ã¯ã»ãšãã©ããŸããã ãã®ã³ãã³ããããã«ç¡å®³ã«èŠããããèŠäºã«ç€ºããŠããŸãã
git clone git: //git.kernel.org/pub/scm/utils/kup/kup.gitHorn ã® Web ãµã€ããã端æ«ã«è²Œãä»ãããšãéåžžã«è¿·æãªã³ãŒãã«ãªããŸãã
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 ã䜿çšããŠãŠãŒã¶ãŒã®ãã¥ãŒããç§»åãããŸãã
ã¯æããã«ãã®ãããªæ»æãç¡ååããããã«èšèšãããŠããŸãã ãã®ã¢ãŒãã§ã¯ã端æ«ã¯è²Œãä»ããããã¹ãã XNUMX 察ã®ç¹å¥ãªãšã¹ã±ãŒã ã·ãŒã±ã³ã¹ã§å²ã¿ãããã¹ãã®èµ·æºãã·ã§ã«ã«äŒããŸãã ããã«ããã貌ãä»ããããããã¹ãã«å«ãŸããå¯èœæ§ã®ããç¹æ®æåãç¡èŠã§ããããšãã·ã§ã«ã«äŒããããŸãã ç±ç·ãã xterm ãŸã§ã®ãã¹ãŠã®ç«¯æ«ã¯ãã®æ©èœããµããŒãããŠããŸãããæ¬åŒ§ä»ãã¢ãŒãã§è²Œãä»ããã«ã¯ã端æ«äžã§å®è¡ãããŠããã·ã§ã«ãŸãã¯ã¢ããªã±ãŒã·ã§ã³ããã®ãµããŒããå¿ èŠã§ãã ããšãã°ã次ã®ãããªãœãããŠã§ã¢ã䜿çšããŸãã (åãBash)ããã¡ã€ã«ãå¿ èŠã§ã ~/.inputrc:
set enable-bracketed-paste onæ®å¿µãªãããHorn ã®ãã¹ã ãµã€ãã«ã¯ãããã¹ãã®æžåŒèšå®èªäœã«ãã£ãŠãã®ä¿è·ãåé¿ããéäžã§æ¬åŒ§ä»ãã¢ãŒããé©çšããŠããŸãæ¹æ³ã瀺ãããŠããŸãã ãããæ©èœããã®ã¯ãäžéšã®ç«¯æ«ãç¬èªã®ãšã¹ã±ãŒã ã·ãŒã±ã³ã¹ã远å ããåã«ãšã¹ã±ãŒã ã·ãŒã±ã³ã¹ãæ£ãããã£ã«ã¿ãªã³ã°ããªãããã§ãã ããšãã°ãç§ã®ç°å¢ã§ã¯ãæ£ããæ§æã§ãã£ãŠããKonsole ãã¹ããæ£åžžã«å®äºããããšãã§ããŸããã§ããã .inputrc ãã¡ã€ã«ã ããã¯ããµããŒããããŠããªãã¢ããªã±ãŒã·ã§ã³ãäžé©åã«æ§æãããã·ã§ã«ãåå ã§ãã·ã¹ãã æ§æãç°¡åã«ç Žæããå¯èœæ§ãããããšãæå³ããŸãã ããã¯ãæ éãªæ§æäœæ¥ãããŸãäžè¬çã§ã¯ãªããªã¢ãŒã ãµãŒããŒã«ãã°ã€ã³ããå Žåãç¹ã«ãã®ãããªãªã¢ãŒã ãã·ã³ã倿°ããå Žåã«ç¹ã«å±éºã§ãã
ãã®åé¡ã«å¯Ÿããè¯ã解決çã¯ãã¿ãŒããã«ã®è²Œãä»ã確èªãã©ã°ã€ã³ã§ãã ãŠã«ã¯ã¹ãããæ¹è¡ãå«ãããã¹ããæ¿å ¥ããèš±å¯ãæ±ããã ãã§ãã Horn ã説æããããã¹ãæ»æã«å¯ŸããŠãããããå®å šãªãªãã·ã§ã³ã¯èŠã€ãããŸããã§ããã
ã¿ããšãããã¡ã€ã«
çŸåšäººæ°ã®ããæ©èœã¯ãã¿ãä»ãã€ã³ã¿ãŒãã§ã€ã¹ã®ãµããŒãã§ããããããä»ã®ããã€ãã®ç«¯æ«ãå«ã XNUMX ã€ã®ç«¯æ«ãŠã£ã³ããŠãšããŠå®çŸ©ããŸãã ãã®æ©èœã¯ç«¯æ«ããšã«ç°ãªããåŸæ¥ã® xterm 端æ«ã¯ã¿ãããŸã£ãããµããŒãããŠããŸããããXfce 端æ«ãGNOME 端æ«ãKonsole ãªã©ã®ããæ°ãã端æ«ã«ã¯ãã®æ©èœããããŸãã Urxvt ã¯ã¿ãããµããŒãããŸããããã©ã°ã€ã³ã䜿çšããå Žåã®ã¿ã§ãã ããããã¿ãã®ãµããŒãèªäœã«é¢ããŠã¯ãTerminator ãè°è«ã®äœå°ã®ãªããªãŒããŒã§ããã¿ãããµããŒãããã ãã§ãªãã端åãä»»æã®é åºã§é 眮ããããšãã§ããŸã (äžã®ç»åãåç §)ã

Terminator ã®ãã XNUMX ã€ã®æ©èœã¯ããããã®ã¿ãããã°ã«ãŒãåãããåãããŒã¹ãããŒã¯ãè€æ°ã®ç«¯æ«ã«åæã«éä¿¡ããæ©èœã§ãè€æ°ã®ãµãŒããŒäžã§äžæ¬æäœãåæã«å®è¡ããããã®ç²éãªããŒã«ãæäŸããŸãã åæ§ã®æ©èœã Konsole ã«ãå®è£
ãããŠããŸãã ä»ã®ç«¯æ«ã§ãã®æ©èœã䜿çšããã«ã¯ã次ã®ãããªãµãŒãããŒãã£è£œãœãããŠã§ã¢ã䜿çšããå¿
èŠããããŸãã , ãŸã㯠.
ã¿ãã¯ããããã¡ã€ã«ãšçµã¿åããããšç¹ã«å¹æçã«æ©èœããŸããããšãã°ãã¡ãŒã«çšã« XNUMX ã€ã®ã¿ãããã£ããçšã«å¥ã®ã¿ããäœæããããšãã§ããŸãã ããã¯ãKonsole ã¿ãŒããã«ãš GNOME ã¿ãŒããã«ã§ååã«ãµããŒããããŠããŸãã ã©ã¡ãããåã¿ãã§ç¬èªã®ãããã¡ã€ã«ãèªåçã«èµ·åã§ããŸãã Terminator ã¯ãããã¡ã€ã«ããµããŒãããŠããŸãããç¹å®ã®ã¿ããéãããšãã«ç¹å®ã®ããã°ã©ã ãèªåçã«èµ·åããæ¹æ³ãèŠã€ãããŸããã§ããã ä»ã®ç«¯æ«ã«ã¯ããããã¡ã€ã«ããšããæŠå¿µãå šããããŸããã
ããªã«
ãã®èšäºã®æåã®éšåã§æåŸã«èª¬æããã®ã¯ã端æ«ã®å€èгã§ãã ããšãã°ãGNOMEãXfceãurxvt ã¯éææ§ããµããŒãããŠããŸãããæè¿èæ¯ç»åã®ãµããŒããçµäºãããããäžéšã®ãŠãŒã¶ãŒã¯ã¿ãŒããã«ãžã®åãæ¿ããäœåãªããããŠããŸãã ã å人çã«ã¯ã·ã³ãã«ã§æºè¶³ã§ã XãªãœãŒã¹ãurxvt ã®èæ¯è²ã®åºæ¬ã»ãããèšå®ããŸãã ãã ããæšæºä»¥å€ã®ã«ã©ãŒããŒããåé¡ãåŒãèµ·ããå¯èœæ§ããããŸãã äŸãã°ã ã¢ããªã±ãŒã·ã§ã³ä»ã О ããã§ã«ç¬èªã®è²ã䜿çšããŠããããã§ãã
ã¯è²ããµããŒãããŠããããæ°ããè²ã¯ 256 è²ã®ãã¬ããã«å¶éãããããšããããããŸããã 端æ«ã®ã¹ã¿ã€ã«ãèšå®ããäžçŽãŠãŒã¶ãŒã«ãšã£ãŠãè€éãªæ¹æ³ã§ã·ã§ã« ããã³ãããã¹ããŒã¿ã¹ ããŒãç ©ãããå¶éãšãªãå ŽåããããŸãã ã©ã®ç«¯æ«ããTrue ColorãããµããŒãããŠãããã远跡ããŸãã ç§ã®ãã¹ãã§ã¯ãstãAlacrittyãããã³ VTE ããŒã¹ã®ç«¯æ«ã True Color ãå®å šã«ãµããŒãããŠããããšã確èªããŠããŸãã ä»ã®ç«¯æ«ã¯ãã®ç¹ã§ããŸãããŸãæ©èœããŠããããå®éã«ã¯ 256 è²ããã衚瀺ã§ããŸããã 以äžã«ãGNOME 端æ«ã§ã® True Color ãµããŒãã®éãã瀺ããŸããst ãš xterm 㯠256 ã«ã©ãŒ ãã¬ããã§ãããããŸãæ©èœããŸãããurxvt ã¯ãã¹ãã«å€±æããã ãã§ãªãã代ããã«ããã€ãã®ç¹æ» ããæåã衚瀺ããŸãã

端æ«ã«ãã£ãŠã¯ãURL ãã¿ãŒã³ã®ããã¹ããåæããŠããªã³ã¯ãã¯ãªãã¯å¯èœã«ããããšããããŸãã ããã¯ãã¹ãŠã® VTE 掟ç端æ«ã«åœãŠã¯ãŸããŸãããurxvt ã§ã¯ã¯ãªãã¯ãŸãã¯ããŒããŒã ã·ã§ãŒãã«ããã䜿çšã㊠URL ã倿ããç¹å¥ãªãã©ã°ã€ã³ãå¿
èŠã§ãã ç§ããã¹ãããä»ã®ç«¯æ«ã§ã¯ãå¥ã®æ¹æ³ã§ URL ã衚瀺ãããŸãã
æåŸã«ã端æ«ã«ãããæ°ãããã¬ã³ãã¯ãã¹ã¯ããŒã« ãããã¡ãŒã®ãªãã·ã§ã³ã§ãã ããšãã°ãst ã«ã¯ã¹ã¯ããŒã« ãããã¡ãŒããããŸããã ãŠãŒã¶ãŒã¯ tmux ãªã©ã®ç«¯æ«ãã«ããã¬ã¯ãµã䜿çšããããšãæ³å®ããŠããŸãã .
Alacritty ã«ã¯ããã¯ã¹ã¯ããŒã« ãããã¡ãŒããããŸãããã ãã®ãããã¯ã«é¢ãããŠãŒã¶ãŒããã®ãåºç¯ãªãã£ãŒãããã¯ããæ¯æãããŠããŸãã ãããã®æ°èäŒæ¥ã¯å¥ãšããŠãç§ããã¹ãããäžã§èŠã€ãã£ããã¹ãŠã®ç«¯æ«ã¯éã¹ã¯ããŒã«ããµããŒãããŠããŸãã
å°èš
è³æã® XNUMX çªç®ã®éšå (ãªãªãžãã«ã§ã¯ãããã㯠XNUMX ã€ã®ç°ãªãèšäºã§ããã ã¬ãŒã³) ããã©ãŒãã³ã¹ãã¡ã¢ãªäœ¿çšéãé å»¶ãæ¯èŒããŸãã ããããåé¡ã®ç«¯æ«ã®äžéšã«ã¯éå€§ãªæ¬ é¥ãããããšããã§ã«ããããŸãã ããšãã°ãRTL ã¹ã¯ãªããã宿çã«äœ¿çšãããŠãŒã¶ãŒã¯ãä»ã®ãŠãŒã¶ãŒãããåæ§ã®ã¿ã¹ã¯ãåŠçããã®ãåŸæã§ãããããmlterm ãš pterm ãæ€èšãããšããã§ãããã ã³ã³ãœãŒã«ã奜調ã ã£ãã RTL ã¹ã¯ãªããã䜿çšããªããŠãŒã¶ãŒã¯ãä»ã®ãã®ãéžæã§ããŸãã
æªæã®ããã³ãŒãã®æ¿å ¥ã«å¯Ÿããä¿è·ãšããç¹ã§ã¯ããã®ã¿ã€ãã®æ»æã«å¯Ÿããä¿è·ãç¹å¥ã«å®è£ ããŠãã urxvt ãéç«ã£ãŠãããç§ã«ãšã£ãŠã¯ééããªã䟿å©ã ãšæãããŸãã ä»å æ©èœãæ¢ããŠãã人ã«ãšã£ãŠãKonsole ã¯äžèŠã®äŸ¡å€ããããŸãã æåŸã«ãVTE ã¯ã«ã©ãŒ ãµããŒãã URL èªèãªã©ãä¿èšŒãã端æ«ã®åªããããŒã¹ã§ããããšã¯æ³šç®ã«å€ããŸãã äžèŠãããšã奜ã¿ã®ç°å¢ã«ä»å±ããããã©ã«ãã®ç«¯æ«ããã¹ãŠã®èŠä»¶ãæºãããŠããããã«èŠããŸãããããã©ãŒãã³ã¹ãçè§£ãããŸã§ãã®è³ªåã¯ä¿çããŠãããŸãã
äŒè©±ãç¶ããŸã
äžè¬ã«ã端æ«ã®ããã©ãŒãã³ã¹èªäœã¯çŸå®é¢ãããåé¡ã®ããã«æãããããããŸããããå®éã«ã¯ã端æ«ã®äžã«ã¯ããã®ãããªåºæ¬çãªçš®é¡ã®ãœãããŠã§ã¢ã«å¯ŸããŠé©ãã»ã©é«ãé
å»¶ã瀺ããã®ããããŸãã ãŸã次ã«ãäŒçµ±çã«ãé床ããšåŒã°ãããã® (å®éã«ã¯ãããã¯ã¹ã¯ããŒã«é床ã§ã) ãšç«¯æ«ã®ã¡ã¢ãªæ¶è²»éãèŠãŠãããŸã (ããã¯ã仿¥ã§ã¯æ°å幎åã»ã©éèŠã§ã¯ãªãããšã«æ³šæããŠãã ãã)ã
é ã
端æ«ã®ããã©ãŒãã³ã¹ã培åºçã«èª¿æ»ããçµæããã®ç¹ã§æãéèŠãªãã©ã¡ãŒã¿ã¯é å»¶ (ping) ã§ãããšããçµè«ã«éããŸããã 圌ã®èšäºã§ã¯ Pavel Fatin æ°ã¯ãããŸããŸãªããã¹ã ãšãã£ã¿ãŒã®é å»¶ã調ã¹ããã®ç¹ã§ç«¯æ«ãæãéãããã¹ã ãšãã£ã¿ãŒãããé ãå¯èœæ§ãããããšã瀺åããŸããã æçµçã«ç§ãç¬èªã®ãã¹ããå®è¡ãããã®èšäºãæžããã£ãããšãªã£ãã®ã¯ããã®ãã³ãã§ããã
ããããã¬ã€ãã³ã·ãŒãšã¯äœã§ãã?ãªãããã»ã©éèŠãªã®ã§ãããã? Fatin æ°ã¯èšäºã®äžã§ãããããããŒãæŒããŠãã察å¿ããç»é¢ãæŽæ°ããããŸã§ã®é å»¶ããšå®çŸ©ããåŒçšããŸããã ã«ã¯ããã³ã³ãã¥ãŒã¿ãã£ã¹ãã¬ã€äžã®èŠèŠçãã£ãŒãããã¯ã®é ãã¯ãã¿ã€ãã¹ãã®è¡åãšæºè¶³åºŠã«éèŠãªåœ±é¿ãäžãããããšè¿°ã¹ãããŠããŸãã
Fatin æ°ã¯ããã® ping ã«ã¯åãªãæºè¶³ä»¥äžã®æ·±ã圱é¿ããããšèª¬æããŠããŸãããã¿ã€ãã³ã°ãé ããªãããšã©ãŒãå¢ããç®ãšçèã®ç·åŒµãé«ãŸããã®ã§ãã ã€ãŸããé å»¶ã倧ãããšã¿ã€ããã¹ãçºçããããè³ã«ãããªãèªç¥è² è·ãããããããã³ãŒãã®å質ãäœäžãããããå¯èœæ§ããããŸãã ããããããã«æªãããšã«ãping ã¯ãç®ãšçèã®ç·åŒµãå¢å€§ãããããšããããšã§ãã å°æ¥ã¯ ïŒã©ããããèè ã¯ç®ãèäžãè ããããŠãã¡ããèŠåã®çèã®åé¡ãæå³ããŠããããã§ãã ã¬ãŒã³ïŒç¹°ãè¿ãã®ã¹ãã¬ã¹ãåå ã§ãã
ãããã®å¹æã®ããã€ãã¯é·ãéç¥ãããŠããããã®çµæã¯ 1976幎ã«ãšã«ãŽããã¯ã¹èªã«çºè¡šãããè«æã§ã¯ã100ããªç§ã®é å»¶ã¯ãã¿ã€ãã³ã°é床ã«é倧ãªåœ±é¿ãäžããããšè¿°ã¹ãŠããŸãã æè¿ã§ã¯ãGNOME ãŠãŒã¶ãŒ ã¬ã€ããå°å ¥ãããŸããã 10 ããªç§ä»¥å ãããã«é²ããšã 㯠1 ããªç§ãçæ³çã§ããããšã瀺ããŠããŸãã
Fatin ã¯ããã¹ã ãšãã£ã¿ã§ãã¹ãã宿œããŸããã 圌ã¯ããšåŒã°ããããŒã¿ãã«æ¥œåšãäœæããŸããã ãã¿ãŒããã«ãšãã¥ã¬ãŒã¿ã§pingããã¹ãããããã«äœ¿çšããŸããã ãã¹ãã¯ã·ãã¥ã¬ãŒã·ã§ã³ ã¢ãŒãã§å®æœãããããšã«çæããŠãã ãããå®éã«ã¯ãå ¥å (ããŒããŒããUSB ã³ã³ãããŒã©ãŒãªã©) ãšåºå (ãã㪠ã«ãŒã ãããã¡ãã¢ãã¿ãŒ) ã®äž¡æ¹ã®é å»¶ãèæ ®ããå¿ èŠããããŸãã Fatin æ°ã«ãããšãäžè¬çãªæ§æã§ã¯çŽ 20 ããªç§ã§ãã ã²ãŒã æ©åšããæã¡ã®å Žåã¯ãããã 3 ããªç§ã§ãã®æ°åãéæã§ããŸãã ãã§ã«éåžžã«é«éãªããŒããŠã§ã¢ããããããã¢ããªã±ãŒã·ã§ã³ã¯ç¬èªã®ã¬ã€ãã³ã·ãŒã远å ããå¿ èŠããããŸããã Fatin ã®ç®æšã¯ãã¢ããªã±ãŒã·ã§ã³ã®é å»¶ã 1 ããªç§ã«ããããšããããã¯ãã€ã€ã«ãªãã§ãã€ã€ã«ã§ããããã«ããããšã§ãã ãã©ã®ããã« .
ç§ã®æž¬å®çµæãš Fatin ã®çµæã®äžéšã¯ãç§ã®å®éšã圌ã®ãã¹ããšäžèŽããããšã瀺ããŠããŸãã

æåã«é©ããã®ã¯ãxterm ã mlterm ãªã©ã®å€ãããã°ã©ã ã®å¿çæéãåäžããŠããããšã§ãã ææªã®ã¬ãžã¹ã¿ ã¬ã€ãã³ã·ãŒ (2,4 ããªç§) ã§ã¯ãæéã®ææ°ç«¯æ« (st ã§ 10,6 ããªç§) ãããåªããããã©ãŒãã³ã¹ãçºæ®ããŸããã ææ°ã®ç«¯æ«ã§ã¯ 10 ããªç§ã®ãããå€ãäžåãããšã¯ãããŸããã ç¹ã«ãAlacritty ã¯ã2017 å¹Žã®æåã®ã¬ãã¥ãŒä»¥æ¥ã¹ã³ã¢ãåäžããŠããŸããããå©çšå¯èœãªæéã®ã¿ãŒããã« ãšãã¥ã¬ãŒã¿ãŒããšããèŠæ±ãæºãããŠããŸããã å®éããã®ãããžã§ã¯ãã®äœè
ãã¡ã¯ã è¡šç€ºã®æ¹åã«åãçµãã§ããŸãã GTK3 ã䜿çšãã Vim ã¯ã察å¿ãã GTK2 ãããäžæ¡é
ãããšã«ã泚æããŠãã ããã ãã®ããšãããGTK3 ã«ãã£ãŠè¿œå ã®ã¬ã€ãã³ã·ãŒãçºçããããã GTK4 ã䜿çšããä»ã®ãã¹ãŠã®ç«¯æ« (ã¿ãŒãããŒã¿ãŒãXfceXNUMX ã¿ãŒããã«ãããã³ GNOME ã¿ãŒããã«) ã«åæ ããããšçµè«ä»ããããšãã§ããŸãã
ãã ããéãã¯ç®ã«ã¯èŠããªãå ŽåããããŸãã Fatin æ°ã¯ããé å»¶ã圱é¿ããã®ã«ãé å»¶ãæèããå¿ èŠã¯ãããŸããããšèª¬æããŠããŸãã Fatin æ°ã¯ãŸããæšæºåå·®ã«ã€ããŠãèŠåããŠããŸãããé å»¶ (ãžãã¿ãŒ) ã®ä¹±ãã¯ãäºæž¬äžå¯èœã§ããããããããªãã¹ãã¬ã¹ãçã¿åºããŸããã

äžã®ã°ã©ãã¯ãçŽç²ãª Debian 9 (ã¹ãã¬ãã) ã§ååŸãããã®ã§ãã ã ãã®ç°å¢ã§ã¯ãã¬ã€ãã³ã· ãã¹ãã§æè¯ã®çµæãåŸãããŸãã çµå±ã®ãšãããGNOME ã¯ãã¹ãŠã®æž¬å®ã«å¯Ÿã㊠20 ããªç§ã®è¿œå ã® ping ãäœæããŸãã ããã«ã€ããŠã¯ãå
¥åã€ãã³ãã®åæåŠçãè¡ãããã°ã©ã ã®ååšãèããããŸãã ãã¡ãã£ã³ã¯ãã®ãããªå Žåã®äŸã瀺ããŠããŸã ããã¹ãŠã®å
¥åã€ãã³ããåæçã«åŠçããããšã§é
å»¶ã远å ããŸãã ããã©ã«ãã§ã¯ãGNOME ã«ã¯ãŠã£ã³ã㊠ãããŒãžã£ãŒãä»å±ããŠããŸã 远å ã®ãããã¡ãªã³ã°å±€ãäœæãããping ã«åœ±é¿ããå°ãªããšã 8 ããªç§ã®é
å»¶ã远å ãããŸãã

ã¹ã¯ããŒã«é床
次ã®ãã¹ãã¯åŸæ¥ã®ãé床ããŸãã¯ã垯åå¹ ããã¹ãã§ãç»é¢äžã«å€§éã®ããã¹ãã衚瀺ããªãã端æ«ãããŒãžãã¹ã¯ããŒã«ã§ããéåºŠãæž¬å®ããŸãã ãã¹ãã®ä»çµã¿ã¯ããŸããŸã§ãã å ã®ãã¹ãã¯ãseq ã³ãã³ãã䜿çšããŠåãããã¹ãæååãåçŽã«çæããããšã§ããã ä»ã®ãã¹ãã«ã¯ãThomas E. Dickey (xterm ã¡ã³ãã) ã®ãã¹ããå«ãŸããŸãã ã 端æ«ã®ããã©ãŒãã³ã¹ã®å¥ã®ã¬ãã¥ãŒã§ã¯ ã©ã³ãã ãªãã€ãã® Base32 ãšã³ã³ãŒãæååã䜿çšããcat ã䜿çšããŠç«¯æ«ã«åºåããŸãã Luu æ°ã¯ããã®ãããªãã¹ãã¯ãæ³åã§ããã»ã©åœ¹ã«ç«ããªããã³ãããŒã¯ãã§ãããšèããŠããã代ããã«ç«¯æ«ã®å¿çãäž»èŠãªææšãšããŠäœ¿çšããããšãææ¡ããŠããŸãã ãã£ãããŒæ°ã¯ãŸãã圌ã®ãã¹ãã¯èª€è§£ãæããã®ã ãšãèšã£ãŠããã ãã ããã©ã¡ãã®èè ããã¿ãŒããã« ãŠã£ã³ããŠã®åž¯åå¹ ãåé¡ã«ãªãå¯èœæ§ãããããšãèªããŠããŸãã Luu ã¯ã倧ããªãã¡ã€ã«ã衚瀺ãããš Emacs Eshell ãããªãŒãºããããšãçºèŠããDickey ã¯ç«¯æ«ãæé©åã㊠xtrerm ã®èŠèŠçãªé ããè§£æ¶ããŸããã ãããã£ãŠããã®ãã¹ãã«ã¯ãŸã ããã€ãã®å©ç¹ããããŸãããã¬ã³ããªã³ã° ããã»ã¹ã¯ç«¯æ«ããšã«å€§ããç°ãªããããä»ã®ãã©ã¡ãŒã¿ããã¹ãããããã®ãã¹ã ã³ã³ããŒãã³ããšããŠã䜿çšã§ããŸãã

ããã§ã¯ãrxvt ãš st ãç«¶åä»ç€ŸããªãŒããããã®åŸã«ããã©ãŒãã³ã¹ãéèŠããŠèšèšãããã¯ããã«æ°ãã Alacritty ãç¶ããŸãã æ¬¡ã« Xfce (VTE ãã¡ããª) ãš Konsole ããããã»ãŒ XNUMX åé«éã§ãã æåŸã¯ xterm ã§ããããã㯠rxvt ãã XNUMX åé
ãã§ãã ãã¹ãäžãxterm ãããªãæ³¢æã¡ãåãè¡ã§ãã£ãŠãééããããã¹ããèŠã«ãããªããŸããã Konsole ã¯é«éã§ããããæã
衚瀺ãããªãŒãºããéšåçãªããã¹ãã衚瀺ããããããŸã£ãã衚瀺ãããªãã£ããããããšããããŸããã stãAlacrittyãrxvt ãªã©ã®ä»ã®ç«¯æ«ã§ã¯æååãæç¢ºã«è¡šç€ºãããŸããã
Dickey æ°ã¯ãããã©ãŒãã³ã¹ã®éãã¯ç«¯æ«ããšã®ã¹ã¯ããŒã« ãããã¡ã®èšèšã«ãããã®ã ãšèª¬æããŠããŸãã ç¹ã«åœŒã¯ãrxvt ããã®ä»ã®ç«¯æ«ããäžè¬èŠåã«åŸã£ãŠããªãããšéé£ããŠããŸãã
ãxterm ãšã¯ç°ãªããrxvt ã¯ãã¹ãŠã®æŽæ°ã衚瀺ããããšããŸããã§ããã é ããŠããå Žåã¯ã远ãã€ãããã«äžéšã®æŽæ°ãæåŠããŸãã ããã¯ãå éšã¡ã¢ãªæ§æãããèŠããã®ã¹ã¯ããŒã«é床ã«å€§ããªåœ±é¿ãäžããŸããã æ¬ ç¹ã® XNUMX ã€ã¯ãASCII ã¢ãã¡ãŒã·ã§ã³ãããäžæ£ç¢ºã ã£ãããšã§ããã
ãã®èªèããã xterm ã®é ããä¿®æ£ããã«ã¯ãDickey ã¯æ¬¡ã®ãªãœãŒã¹ã䜿çšããããšãææ¡ããŠããŸãã ããã«ãããxterm ã¯ãããŒã«å¯Ÿå¿ããããã«äžéšã®ç»é¢æŽæ°ãç Žæ£ã§ããããã«ãªããŸãã ç§ã®ãã¹ãã§ã¯ãfastScroll ã«ãã£ãŠããã©ãŒãã³ã¹ãåäžããxterm ã rxvt ãšåçã«ãªãããšã確èªãããŸããã ãã ããDickey èªèº«ã次ã®ããã«èª¬æããŠããããã«ãããã¯ããªãå³ããåé¡ã§ãããããã€ãã®ç»é¢ãåé€ãããåŸãæ°ããäžé£ã®ç»é¢æŽæ°ãåŸ ã£ãŠãããããkonsole ãšåæ§ã« xterm ã忢ããããšããããŸããã ãã®æµãã§ãä»ã®ç«¯æ«ã¯é床ãšè¡šç€ºã®å®å šæ§ã®éã®æè¯ã®åŠ¥åç¹ãèŠã€ããããã§ãã
è³æºã®æ¶è²»
ããã©ãŒãã³ã¹ã®ææšãšããŠã¹ã¯ããŒã«é床ãèæ ®ããããšãçã«ããªã£ãŠãããã©ããã«é¢ä¿ãªãããã®ãã¹ãã«ãã端æ«ã®è² è·ãã·ãã¥ã¬ãŒãã§ããããã«ãªããã¡ã¢ãªããã£ã¹ã¯ã®äœ¿çšéãªã©ã®ä»ã®ãã©ã¡ãŒã¿ã枬å®ã§ããããã«ãªããŸãã ã¡ããªã¯ã¹ã¯ãæå®ããããã¹ããå®è¡ããããšã«ãã£ãŠååŸãããŸãã seq Python ããã»ã¹ç£èŠã®äžã§ã 圌ã¯ã¡ãŒã¿ãŒã®ããŒã¿ãåéãã ã®ããã« ru_maxrssã é¡ ru_oublock О ru_inblock ãããŠã·ã³ãã«ãªã¿ã€ããŒã

ãã®ãã¹ãã§ã¯ãST ã 8 MB ãšããæå°ã®å¹³åã¡ã¢ãªæ¶è²»éã§ 12 äœã«ãªããŸãããèšèšã®äž»ãªèãæ¹ãã·ã³ãã«ã§ããããšãèæ
®ãããšãããã¯é©ãã¹ãããšã§ã¯ãããŸããã mltermãxtermãããã³ rxvt ã¯ããå°ãå€ã (çŽ 30 MB) ãæ¶è²»ããŸãã ãã 40 ã€ã®æ³šç®ãã¹ãçµæã¯ãå®è¡ã« 60 MB ãå¿
èŠãšãã Alacritty ã§ãã æ¬¡ã«ã65 MB ãã XNUMX MB ãšããæ°åãæã€ VTE ãã¡ããªã®ç«¯æ«ããããããã¯ããªãã®éã§ãã ãã®æ¶è²»éã¯ããããã®ç«¯æ«ã GTK ãªã©ã®é«ã¬ãã«ã®ã©ã€ãã©ãªã䜿çšããŠãããšããäºå®ã«ãã£ãŠèª¬æã§ããŸãã Konsole ã¯ãã¹ãäžã« XNUMXMB ãšããé©ç°çãªã¡ã¢ãªæ¶è²»éã§æäžäœã«ãªããŸããããããã¯ãã®éåžžã«å¹
åºãæ©èœã«ãã£ãŠæ£åœåãããå¯èœæ§ããããŸãã
4 幎åã«åŸããã以åã®çµæãšæ¯èŒãããšããã¹ãŠã®ããã°ã©ã ãèããå€ãã®ã¡ã¢ãªãæ¶è²»ãå§ããŸããã Xterm ã¯ä»¥å㯠15 MB ãå¿ èŠãšããŠããŸããããçŸåšã¯èµ·åæã ãã§ 16 MB ãå¿ èŠãšããŸãã rxvt ã®æ¶è²»éãåæ§ã«å¢å ããŠãããããã« 34 MB ãå¿ èŠã«ãªããŸãã Xfce ã¿ãŒããã«ã¯ 20 MB ãæ¶è²»ããŸãããããã¯ä»¥åã® 32 åã®å€§ããã§ãããGNOME ã¿ãŒããã«ã¯ 2012 MB ããå¿ èŠãšããŸããã ãã¡ããããããŸã§ã®ãã¹ãã¯ãã¹ãŠ XNUMX ããã ã¢ãŒããã¯ãã£ã§å®è¡ãããŸããã LCA XNUMXã«ãŠ ã©ã¹ãã£ã»ã©ãã»ã« ãã¡ã¢ãªæ¶è²»éã®å¢å ã説æã§ãã埮åŠãªçç±ããããããããšèããããŸãã ãšã¯ãããä»ã¯ã¡ã¢ãªãã®ã¬ãã€ãããæä»£ã§ãããããªããšããªãã§ãããã
ãããã端æ«ã®ãããªåºæ¬çãªãã®ã«ããã«å€ãã®ã¡ã¢ãªãå²ãåœãŠãã®ã¯ãªãœãŒã¹ã®ç¡é§ã§ãããšæããã«ã¯ããããŸããã ãããã®ããã°ã©ã ã¯æå°ã®ãã®ã§ãªããã°ãªãããLinux ã·ã¹ãã ãæèŒããå¿ èŠãããå Žåã«ã¯ãéŽç®±ã§ãã£ãŠããã©ããªãç®±ãã§ãå®è¡ã§ããå¿ èŠããããŸã (ãããŠãå®éã«ã¯ãããªãããšã¯ãåç¥ã§ããã) ïŒã ãããããããã®æ°åãèãããšãã¡ã¢ãªäœ¿çšéã¯ãæã軜éã§æ©èœãæãå¶éãããŠããå°æ°ã®ç«¯æ«ãé€ããŠãè€æ°ã®ç«¯æ«ãå®è¡ããç°å¢ã§ã¯å°æ¥çã«åé¡ã«ãªãã§ãããã ãããè£ãããã«ãGNOME ã¿ãŒããã«ãKonsoleãurxvtãTerminatorãããã³ Xfce ã¿ãŒããã«ã«ã¯ããŒã¢ã³ ã¢ãŒãããããåäžããã»ã¹ãéããŠè€æ°ã®ã¿ãŒããã«ãå¶åŸ¡ããã¡ã¢ãªæ¶è²»ãå¶éã§ããŸãã

ãã¹ãäžã«ããã£ã¹ã¯ã®èªã¿æžãã«é¢ããŠãå¥ã®äºæãã¬çµæãåŸãããŸãããããã§ã¯äœã衚瀺ãããªããšäºæ³ããŠããŸããããäžéšã®ç«¯æ«ãæã倧éã®ããŒã¿ããã£ã¹ã¯ã«æžã蟌ãããšã倿ããŸããã ãããã£ãŠãVTE ã©ã€ãã©ãªã¯å®éã«ã¯ãã£ã¹ã¯äžã«ã¹ã¯ããŒã« ãããã¡ãä¿æããŸã (ãã®æ©èœã¯ ããããŠããã¯ä»ã§ãèµ·ãã£ãŠããŸãïŒã ãã ããå€ãå®è£
ãšã¯ç°ãªããçŸåšã§ã¯å°ãªããšããã®ããŒã¿ã¯ AES256 GCM ã䜿çšããŠæå·åãããŠããŸã (ïŒã ããããåœç¶ã®çåãçããŸããVTE ã©ã€ãã©ãªã®äœããããªã«ç¹å¥ã§ãå®è£
ã«ãã®ãããªéæšæºçãªã¢ãããŒããå¿
èŠã«ãªãã®ã§ãããã...
ãŸãšã
ãã®èšäºã®æåã®éšåã§ã¯ãVTE ããŒã¹ã®ç«¯æ«ã«ã¯åªããæ©èœã»ãããããããšãããããŸããããããã«ã¯ããçšåºŠã®ããã©ãŒãã³ã¹ã®ã³ã¹ãã䌎ãããšãããããŸããã ãã¹ãŠã® VTE 端æ«ã¯ããŒã¢ã³ ããã»ã¹ãéããŠå¶åŸ¡ã§ãããããã¡ã¢ãªã¯åé¡ã«ãªããŸãããããã«ããã端æ«ã®èŠæ±ãå¶éãããŸãã ãã ããRAM ãšã«ãŒãã« ãããã¡ã®éã«ç©ççãªå¶éãããå€ãã·ã¹ãã ã§ã¯ãæ¶è²»ãããªãœãŒã¹ãå€§å¹ ã«å°ãªãããã以åã®ããŒãžã§ã³ã®ç«¯æ«ãå¿ èŠã«ãªãå ŽåããããŸãã VTE 端æ«ã¯ã¹ã«ãŒããã (ã¹ã¯ããŒã«) ãã¹ãã§ã¯è¯å¥œãªããã©ãŒãã³ã¹ã瀺ããŸãããã衚瀺é å»¶ã GNOME ãŠãŒã¶ãŒ ã¬ã€ãã§èšå®ããããããå€ãè¶ ããŠããŸãã VTE éçºè ã¯ãããããããèæ ®ããå¿ èŠããããŸãã Linux åå¿è ã«ãšã£ãŠãã¿ãŒããã«ã«ééããã®ã¯é¿ããããªãããšãèæ ®ããã°ãLinux ããã䜿ããããããããšãã§ããŸãã çµéšè±å¯ãªããã¢ã«ãšã£ãŠã¯ãããã©ã«ãã®ç«¯æ«ããåãæ¿ããããšã§ç®ã®ç²ãã軜æžãããé·æéã®äœæ¥ã«ããå°æ¥ã®ä»äºé¢é£ã®æªæãç æ°ãåé¿ã§ããå¯èœæ§ãããããŸãã æ®å¿µãªãããå€ã xterm ãš mlterm ã ãã 10 ããªç§ãšããéæ³ã® ping ãããå€ã«éããŸãããããã¯å€ãã®äººã«ãšã£ãŠåãå ¥ããããŸããã
ãã³ãããŒã¯æž¬å®ã§ã¯ãLinux ã°ã©ãã£ã«ã«ç°å¢ã®çºå±ã«ãããéçºè
ãå€ãã®åŠ¥åãããªããã°ãªããªãããšãåãããŸããã ãŠãŒã¶ãŒã«ãã£ãŠã¯ãping ã倧å¹
ã«åæžã§ããéåžžã®ãŠã£ã³ã㊠ãããŒãžã£ãŒãæ€èšããå ŽåããããŸãã æ®å¿µãªãããWayland ã®ã¬ã€ãã³ã·ãŒã枬å®ããããšã¯ã§ããŸããã§ãããç§ã䜿çšãã Typometer ããã°ã©ã ã¯ãWayland ãä»ã®ãŠã£ã³ããŠãã¹ãã€ããããšã鲿¢ããããã«äœæããããã®ã§ããã Wayland åæã®ããã©ãŒãã³ã¹ã X.org ãããåªããŠããããšãé¡ã£ãŠããŸãããŸããå°æ¥çã«ã¯èª°ãããã®ç°å¢ã§ã¬ã€ãã³ã·ãŒã枬å®ããæ¹æ³ãèŠã€ããŠãããããšãé¡ã£ãŠããŸãã
åºæïŒ habr.com
