
ãã®èšäºã¯ãç§ãä»å¹ŽOSCONäŒè°ã§çºè¡šãããã¬ãŒã³ããŒã·ã§ã³ã«åºã¥ããŠããŸãã ããã¹ããããç°¡æœã«ãªãããã«ç·šéãããšåæã«ãã¹ããŒãåŸã«åãåã£ããã£ãŒãããã¯ãèæ ®ããŸããã
圌ãã¯ããGoã«ã€ããŠããµãŒããŒã«é©ããŠãããšèšããŸãïŒéçãã€ããªã 䞊è¡æ§ã®éçºãããã³é«æ§èœããããŸãã ãã®èšäºã§ã¯ãæåŸã®2ã€ã®ãã€ã³ãã«ã€ããŠèª¬æããŸããèšèªãšã©ã³ã¿ã€ã ã«ãããGoããã°ã©ããŒãç°¡åã«ã¹ã±ãŒã©ãã«ãªãµãŒããŒãäœæã§ããã¹ã¬ããå¶åŸ¡ãI / Oæäœã®ãããã¯ã«ã€ããŠå¿é ããå¿ èŠããããŸããã
èšèªããã©ãŒãã³ã¹ã®è°è«
ããããæè¡çãªè©³çŽ°ã«ç§»ãåã«ãGoèšèªã®åžå Žã»ã°ã¡ã³ããç¹åŸŽä»ãã2ã€ã®ã¹ããŒãã¡ã³ããäœæããŸãã
ã ãŒã¢ã®æ³å

誀ã£ãŠåŒçšãããã ãŒã¢ã®æ³åŸã«ãããšãæ°Žæ¶ã®åäœé¢ç©ãããã®ãã©ã³ãžã¹ã¿æ°ã¯çŽ18ãæããšã«2åã«ãªããŸãã ããããå®å šã«ç°ãªãç¹æ§ã«äŸåããåäœåšæ³¢æ°ã¯ãPentium 4ã®ãªãªãŒã¹ã«ãããæ°å幎åã«ãã§ã«æé·ãåæ¢ãããã以éã¯åŸã ã«æžå°ããŠããŸãã
空éçå¶çŽãããšãã«ã®ãŒãž

Sun Enterprise e450-ããŒå·èµåº«ãšã»ãŒåããµã€ãºã®é»åãæ¶è²»
ãããSun e450ã§ãã ç§ã®ãã£ãªã¢ãå§ãŸã£ãã°ããã®é ããããã®ã³ã³ãã¥ãŒã¿ãŒã¯æ¥çã®äž»å補åã§ããã 圌ãã¯å·šå€§ã ã£ãã 3åã®äžã«1å眮ããšã19ã€ã³ãã©ãã¯å šäœãå æããŸãã åæã«ãããããçŽ500ã¯ããããæ¶è²»ããŸããã§ããã
éå»10幎éã§ãããŒã¿ã»ã³ã¿ãŒã®äž»ãªå¶éã¯å©çšå¯èœãªã¹ããŒã¹ã§ã¯ãªãããšãã«ã®ãŒæ¶è²»ã®ã¬ãã«ã«ãªããŸããã æåŸã®2ã€ã®ã±ãŒã¹ã§ã¯ãç§ãããŒã¿ã»ã³ã¿ãŒã®ç«ã¡äžãã«åå ãããšããã©ãã¯ãã»ãŒ3åã®1ã«æºããããšãã«ãã§ã«ååãªãšãã«ã®ãŒããããŸããã§ããã èšç®èœåã®å¯åºŠã¯éåžžã«éããªã£ããããæ©åšã®èšçœ®å Žæãèããããšãã§ããªããªããŸããã åæã«ãçŸä»£ã®ãµãŒããŒã¯ã¯ããã«å°ãªããªããŸããããã¯ããã«å€ãã®é»åãæ¶è²»ãå§ããŸããã ããã¯å·åŽãéåžžã«è€éã«ãããã®å質ã¯æ©åšã®åäœã«ãšã£ãŠéèŠã§ãã
ãšãã«ã®ãŒå¶éã®å¹æãçŸããŸããïŒ
- ãã¯ãã¬ãã«ã§ã¯ã1200ã¯ããã®1UãµãŒããŒã§ã©ãã¯æäœãæäŸã§ãããã®ã¯ã»ãšãã©ãããŸããã
- ãã€ã¯ãã¬ãã«ã§ã¯ããããã®æ°çŸã¯ããã¯ãã¹ãŠãç±ã®åœ¢ã§å°ããªã·ãªã³ã³çµæ¶ã«æ£ãã°ã£ãŠããŸãã
ãã®ãããªãšãã«ã®ãŒæ¶è²»ã®å¢å ã®çç±ã¯äœã§ããïŒ

CMOSã€ã³ããŒã¿ãŒ
ããã¯ãæãåçŽãªè«çã²ãŒãã®1ã€ã§ããã€ã³ããŒã¿ãŒã§ãã å ¥åAãé«ãå ŽåãåºåQã¯äœããéãåæ§ã§ãã çŸä»£ã®ãã¹ãŠã®å®¶åºçšé»å補åã¯ã CMOSããžãã¯äžã«æ§ç¯ãããŠããŸãïŒCMOSã¯ãçžè£åéå±é žåç©åå°äœæ§é ã§ãïŒã ããã§ã®ããŒã¯ãŒãã¯ãçžè£çãã§ãã ããã»ããµå ã®åè«çèŠçŽ ã¯ããã©ã³ãžã¹ã¿ã®ãã¢ã䜿çšããŠå®è£ ãããŸããäžæ¹ããªã³ã«ãªããšãããäžæ¹ããªãã«ãªããŸãã
ã€ã³ããŒã¿ãŒåºåãé«ãŸãã¯äœã®å ŽåãVssããVddã«é»æµã¯æµããŸããã ããããã¹ã€ããã³ã°äžã äž¡æ¹ã®ãã©ã³ãžã¹ã¿ãé»æµãäŒå°ããçãæéããããç絡ãçºçããŸãã ãããŠããšãã«ã®ãŒæ¶è²»ãã²ããŠã¯ç±æŸæ£ã¯ã1ç§ãããã®ã¹ã€ããã³ã°æ°ãã€ãŸãããã»ããµãŒã®ã¯ããã¯é床ã«çŽæ¥æ¯äŸããŸãã
CMOSã®ãšãã«ã®ãŒæ¶è²»ã¯ãã¹ã€ããã³ã°äžã®ç絡ã ãã§ã¯ãããŸããã ã·ã£ãã¿ãŒã®åºå容éã®å é»ã«è²¢ç®ããŠããŸãã ããã«ããã©ã³ãžã¹ã¿ã®ãµã€ãºãå°ãããªããšãã²ãŒããªãŒã¯é»æµãå¢å ããŸãã ããã«ã€ããŠã®è©³çŽ°ã¯ãªã³ã¯ã§èªãããšãã§ããŸãïŒ one ã two ã
ããã»ããµèŠçŽ ã®ãµã€ãºãçž®å°ããããšã¯ãäž»ã«æ¶è²»é»åãåæžããããšãç®çãšããŠããŸãã ããã¯ãšã³ããžãŒã®ããã ãã§ãªããäž»ãªç®çã¯ãããã»ããµãŒãžã®æå·ãé²ãããã«èš±å®¹å¯èœãªã¬ãã«ã§ç±æŸæ£ãç¶æããããšã§ãã
ã¯ããã¯é床ãšæ¶è²»é»åã¯æžå°ããŠããŸãããçç£æ§ã®åäžã¯äž»ã«ãã€ã¯ãã¢ãŒããã¯ãã£ãšé£è§£ãªãã¯ãã«åœä»€ã®æ¹åã«é¢é£ããŠãããäžè¬çãªã³ã³ãã¥ãŒãã£ã³ã°ã«ã¯ç¹ã«åœ¹ç«ã¡ãŸããã ãã®çµæãåãã€ã¯ãã¢ãŒããã¯ã㣠ïŒ5幎ãµã€ã¯ã«ïŒã¯åäžä»£ã10ïŒ è¶ ããŠè¶ ãããæè¿ã§ã¯4-6ïŒ ã«ã»ãšãã©éããŠããŸããã
ãæ¯åã¯çµãããŸããã
éãéããªã£ãŠããŠããªãããšãç解ããŠãã ããã ããã©ãŒãã³ã¹ãšèŠæš¡ãéèŠãªå Žåã¯ãå°ãªããšãäžè¬çã«èªããããŠããæå³ã§ã¯ãæ©åšã ãã§ã¯åé¡ã解決ããããšã¯ã§ããªãããšã«åæããã§ãããã ãµãã¿ãŒã®çŽç« ã§è¿°ã¹ãããã«-ã æ¯åã¯çµãããŸãããã
çç£æ§ã®é«ãããã°ã©ãã³ã°èšèªãå¿ èŠã§ãããªããªããéå¹ççãªèšèªã¯ãã¹ã±ãŒãªã³ã°ãèšåæè³ãšããç¹ã§ãåºç¯ãªäœ¿çšã§ã®äœ¿çšãæ£åœåãããã®ã§ã¯ãªãããã§ãã
䞊åããã°ã©ãã³ã°èšèªã®è°è«
2çªç®ã®åŒæ°ã¯æåã®åŒæ°ããç¶ããŸãã ããã»ããµã¯éããªããŸããããåããªããŸãã ãã©ã³ãžã¹ã¿ããã®æ¹åã«çºå±ããŠããããšã¯ãããªãã«ãšã£ãŠé©ãã¹ãããšã§ã¯ãããŸããã

IntelãåŒãã§ããåæãã«ãã¹ã¬ããã£ã³ã°ãŸãã¯ãã€ããŒã¹ã¬ããã£ã³ã°ã§ã¯ãå°ããªããŒããŠã§ã¢ãã€ã³ãã£ã³ã°ãè¿œå ããããšã«ãããåäžã®ã³ã¢ãåœä»€ã®è€æ°ã®ã¹ã¬ããã䞊åã«å®è¡ã§ããŸãã ã€ã³ãã«ã¯ããã€ããŒã¹ã¬ããã£ã³ã°ãã¯ãããžãŒã䜿çšããŠããã»ããµåžå Žã人çºçã«ã»ã°ã¡ã³ãåãããªã©ã¯ã«ãšå¯å£«éã¯èªç€Ÿè£œåã§ç©æ¥µçã«äœ¿çšããããŒããŠã§ã¢ã¹ã¬ããã®æ°ãã³ã¢ããã8ãŸãã¯16ã«ããŸããã
ãã¥ã¢ã«ããã»ããµãã¶ãŒããŒãã¯ãPentium Proãç»å Žãã1990幎代åŸåã«ç»å ŽããŸããã çŸåšã§ã¯æšæºçãªãœãªã¥ãŒã·ã§ã³ã§ãããã»ãšãã©ã®ãµãŒããŒã¯2ããã»ããµãŸãã¯4ããã»ããµæ§æããµããŒãããŠããŸãã ãã©ã³ãžã¹ã¿ã®å¯åºŠã®å¢å ã«ãããåäžã®ãããäžã«è€æ°ã®ã³ã¢ãé 眮ããããšããå¯èœã«ãªããŸããã ãã¥ã¢ã«ã³ã¢ããã»ããµã¯ã¢ãã€ã«ã»ã°ã¡ã³ãã4ã³ã¢-ãã¹ã¯ãããã»ã°ã¡ã³ãããµãŒããŒã»ã°ã¡ã³ãã§ã¯ããã«å€ãã®ã³ã¢ã«å®çããŸããã å®éãä»æ¥ã®ãµãŒããŒã®ã³ã¢æ°ã¯äºç®ã«ãã£ãŠã®ã¿å¶éãããŠããŸãã
ãããŠããããã®ãã¹ãŠã®ã³ã¢ã掻çšããã«ã¯ãé«åºŠãªäžŠååŠçãåããããã°ã©ãã³ã°èšèªãå¿ èŠã§ãã
ããã»ã¹ãã¹ã¬ãããããã³ãŽã«ãŒãã³
Goã®äžŠååŠçã¯ããããããŽã«ãŒãã³ã«åºã¥ããŠããŸãã å°ãè±ç·ããŠããããã®çºçã®å±¥æŽãæãåºããŸãããã
ããã»ã¹
æãæ¹ããããåŠçã¢ãã«ã§ã¯ãã³ã³ãã¥ãŒã¿ãŒã¯äžåºŠã«1ã€ã®ã¿ã¹ã¯ããå®è¡ã§ããŸããã§ããã 1960幎代ã«ã¯ãããã€ã³ã¿ã©ã¯ãã£ããªåœ¢åŒã®ã³ã³ãã¥ãŒãã£ã³ã°ãæ±ããããŠããããããã«ãããã»ã¹ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããŸãã¯ã¿ã€ã ã·ã§ã¢ãªã³ã°ã¢ãŒãã§åäœããã·ã¹ãã ãéçºãããŸããã 1970幎代ã«ããã®ã¢ã€ãã¢ã¯ãµãŒããŒãFTPãTelnetãrloginããããŠåŸã«Tim Berners-Leeã®CERN httpdã«æµžéããŸããã ãã¹ãŠã®çä¿¡ãããã¯ãŒã¯æ¥ç¶ã®åŠçã«ã¯ãåããã»ã¹ã®åå²ã䌎ããŸããã
ã¿ã€ã ã·ã§ã¢ãªã³ã°ã·ã¹ãã ã§ã¯ãOSã¯ã¢ã¯ãã£ããªããã»ã¹éã§ããã»ããµãªãœãŒã¹ããã°ããåãæ¿ããããšã«ããã䞊ååŠçã®é¯èŠãç¶æããŸãã ãããè¡ãã«ã¯ããŸãçŸåšã®ããã»ã¹ã®ç¶æ ãèšé²ããŠãããå¥ã®ããã»ã¹ã®ç¶æ ã埩å ããŸãã ããã¯ãã³ã³ããã¹ãã¹ã€ããã³ã°ãšåŒã°ããŸãã
ã³ã³ããã¹ãã¹ã€ãã

ã³ã³ããã¹ãã¹ã€ããã³ã°ã«ã¯ã3ã€ã®äž»èŠãªã³ã¹ãé ç®ããããŸãã
- ã«ãŒãã«ã¯ãæåã«1ã€ã®ããã»ã¹ã®ãã¹ãŠã®ããã»ããµã¬ãžã¹ã¿ã®å 容ãä¿åããŠãããå¥ã®ããã»ã¹ã®å€ã埩å ããå¿ èŠããããŸãã ããã»ã¹éã®åãæ¿ãã¯ãã€ã§ãçºçããå¯èœæ§ããããããOSã¯ãã¹ãŠã®ã¬ãžã¹ã¿ã®å 容ãä¿åããå¿ èŠããããŸããããã¯ãçŸåšã©ã®ããã»ã¹ã䜿çšãããŠãããããããªãããã§ãã ãã¡ãããããã¯éåžžã«åçŽåããã説æã§ãã å Žåã«ãã£ãŠã¯ãOSã¯ãæµ®åå°æ°ç¹ãŸãã¯MMX / SSEã¬ãžã¹ã¿ãžã®ã¢ã¯ã»ã¹ãå²ã蟌ã¿ïŒé害ïŒãåŒãèµ·ãããããªæ¹æ³ã§ããã»ã¹ãéå§ããããšã«ãããé »ç¹ã«äœ¿çšãããã¢ãŒããã¯ãã£ã¬ãžã¹ã¿ã®ä¿åãšåŸ©å ãåé¿ã§ããŸãã ãã®ãããªç¶æ³ã§ã¯ãã«ãŒãã«ã¯ããã»ã¹ããããã®ã¬ãžã¹ã¿ã䜿çšããããããä¿åããã³åŸ©å ããå¿ èŠãããããšãç解ããŠããŸãã
- ã«ãŒãã«ã¯ãä»®æ³ã¡ã¢ãªã¢ãã¬ã¹ãç©çã¢ãã¬ã¹ïŒ TLBãé£æ³å€æãããã¡ ïŒãšäžèŽãããããã«ãã£ãã·ã¥ãã¯ãªã¢ããå¿ èŠããããŸãã äžéšã®ããã»ããµã¯ãããããã¿ã°ä»ãTLBã䜿çšããŸãã ãã®å ŽåãOSã¯ãåãšã³ããªãã°ããŒãã«ãšããŠæ±ãã®ã§ã¯ãªããããã»ã¹IDããååŸããèå¥åãç¹å®ã®ãããã¡ãšã³ããªã«å²ãåœãŠãããã«ããã»ããµã«åœä»€ããå ŽåããããŸãã ããã«ãããç®çã®ããã»ã¹ãããã«åãã³ã¢ã«æ»ãå Žåãããã»ã¹ãåãæ¿ãããã³ã«ãã£ãã·ã¥ãããšã³ããªãåé€ããå¿ èŠããªããªããŸãã
- ã³ã³ããã¹ãåãæ¿ãã®OSãªãŒããŒããããããã³ããã»ããµã«äœæ¥ãæäŸãã次ã®ããã»ã¹ãéžæãããšãã®ã¹ã±ãžã¥ãŒã©ãŒæ©èœã®ãªãŒããŒãããã
ãããã®è²»çšã¯ãã¹ãŠãæ©åšã®èŠ³ç¹ããã¯æ¯èŒçäžå®ã§ããããããã®è²»çšãæ£åœåããããã©ããã¯ãåãæ¿ãæäœéã§å®è¡ãããäœæ¥éã«ãã£ãŠç°ãªããŸãã é »ç¹ã«åãæ¿ãããšããããã®éã§è¡ãããäœæ¥éãç¡å¹ã«ãªããŸãã
ã¹ããªãŒã
ããã«ãããå ±éã¢ãã¬ã¹ç©ºéã䜿çšããåãããã»ã¹ã§ããã¹ã¬ãããåºçŸããŸããã ãã®ãããããã»ã¹ãããèšç»ãç°¡åã§ãäœæãããé«éã§ãããããè¿ éã«åãæ¿ããããšãã§ããŸãã
ããã§ããã¹ã¬ããã®ã³ã³ããã¹ãã¹ã€ããã³ã°ã®ã³ã¹ãã¯éåžžã«é«ããªããŸãã å·ã«é¢ããå€ãã®æ å ±ãä¿åããå¿ èŠããããŸãã ãŽã«ãŒãã³ã¯ãå®éã«ã¯ãããŒã®æŠå¿µãããã«çºå±ããããã®ã§ãã
ãŽã«ãã³
ã³ã¢ã«æèŠæéã管çãã責任ãå§ãã代ããã«ããŽã«ãŒãã³ã¯å調ãã«ãã¿ã¹ã¯ã䜿çšããŸãã ãããã®éã®åãæ¿ãã¯ãGoã©ã³ã¿ã€ã ã¹ã±ãžã¥ãŒã©ã«ãã£ãŠæ瀺çãªåŒã³åºããè¡ãããæ確ã«å®çŸ©ãããç¬éã«ã®ã¿çºçããŸãã ãŽã«ãŒãã³ãã¹ã±ãžã¥ãŒã©ã«å¶åŸ¡ãè¿ãäž»ãªç¶æ³ïŒ
- ãããã¯ã«ã€ãªããå Žåããã£ãã«ããã®éåä¿¡ã
- go funcïŒ...ïŒåœä»€ãåŒã³åºããŸãããæ°ãããŽã«ãŒãã³ãžã®åãæ¿ããããã«è¡ããããšããä¿èšŒã¯ãããŸããã
- ãã¡ã€ã«æäœããããã¯ãŒã¯æäœãªã©ã®ã·ã¹ãã ã³ãŒã«ã®ãããã¯
- å®è¡ãåæ¢ããŠã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãµã€ã¯ã«ãå®è¡ããåŸã
ã€ãŸãããŽã«ãŒãã³ã«äœæ¥ãç¶ããã®ã«ååãªããŒã¿ããªãããããŒã¿ãèšé²ããããã«ããå€ãã®ã¹ããŒã¹ãå¿ èŠãªç¶æ³ã«ã€ããŠè©±ããŠããã®ã§ãã
ãã®éçšã§ãGoã©ã³ã¿ã€ã ã¹ã±ãžã¥ãŒã©ã¯ãåããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¹ã¬ããå ã®ããã€ãã®ãŽã«ãŒãã³ãåãæ¿ããŸãã ããã«ãããäœæãšãããã®åãæ¿ãã®ã³ã¹ããåæžãããŸãã 1ã€ã®ããã»ã¹ã§æ°äžã®ãŽã«ãŒãã³ãå®è¡ãããæ°åäžã®ãŽã«ãŒãã³ãå®è¡ããããšããããŸã£ããæ£åžžãªç¶æ³ã§ãã
èšèªã®èŠ³ç¹ããã¯ãèšç»ã¯é¢æ°åŒã³åºãã®ããã«èŠããåãã»ãã³ãã£ã¯ã¹ãæã¡ãŸãã ã³ã³ãã€ã©ã¯ã䜿çšãããã¬ãžã¹ã¿ãèªèããèªåçã«ä¿åããŸãã ã¹ã±ãžã¥ãŒã©ãŒã¯ã¹ã¬ãããåŒã³åºããŠãç¹å®ã®goroutinã¹ã¿ãã¯ãåŠçããŸãããæ»ããšã¹ã¿ãã¯ãç°ãªãå ŽåããããŸãã ããããã«ãã¹ã¬ããã¢ããªã±ãŒã·ã§ã³ãšæ¯èŒããŠãã ããããã«ãã¹ã¬ããã¢ããªã±ãŒã·ã§ã³ã¯ããã€ã§ãåœä»€ãå®è¡ãããšãã«ããã€ã§ãã¹ã¬ããã匷å¶çã«åé€ã§ããŸãã
ããã¯ãã¹ãŠãåGoããã»ã¹ã®OSã¹ã¬ãããæ¯èŒçå°ãªããšããäºå®ã«ã€ãªãããŸãã Goã©ã³ã¿ã€ã ã¯ãããã«å®è¡ã§ãããŽã«ãŒãã³ã解æŸããŠOSã¹ã¬ããã«å²ãåœãŠãŸãã
ã¹ã¿ãã¯ç®¡ç
åã®ã»ã¯ã·ã§ã³ã§ã¯ãgoroutinesãè€æ°ã®äžŠåãããŒïŒæã«ã¯æ°åäžã«éããããšããããŸãïŒã管çãããªãŒããŒããããåæžããæ¹æ³ã«ã€ããŠèª¬æããŸããã ãŽã«ãŒãã³ã®è©±ã«ã¯å¥ã®åŽé¢ããããŸã-ã¹ã¿ãã¯ç®¡çã
ããã»ã¹ã¢ãã¬ã¹ç©ºé

ãã®å³ã¯ãäžè¬çãªããã»ã¹ã¡ã¢ãªã«ãŒãã瀺ããŠããŸãã ããã§ã¯ãããŒããšã¹ã¿ãã¯ãé 眮ããããšã«èå³ããããŸãã ããã»ã¹ã®ã¢ãã¬ã¹ç©ºéå ã§ã¯ãéåžžãããŒãã¯ã¡ã¢ãªã®äžéšãããã°ã©ã ã³ãŒãã®ããäžã«ãããæé·ããŸãã ã¹ã¿ãã¯ã¯ä»®æ³ã¢ãã¬ã¹ç©ºéã®æäžéšã«ãããäžã«åãã£ãŠæé·ããŸãã

ããŒããšã¹ã¿ãã¯ãäºãã«äžæžããããšãçœå®³ã«ãªããŸãã ãããã£ãŠãOSã¯ããããã®éã«ã¢ã¯ã»ã¹ã§ããªãã¡ã¢ãªã®ãããã¡ãŸãŒã³ãå²ãåœãŠãŸãã ã¬ãŒãããŒãžãšåŒã°ããå®éã«ã¯ããã»ã¹ã¹ã¿ãã¯ã®ãµã€ãºãå¶éããŸããéåžžã¯æ°ã¡ã¬ãã€ã以å ã§ãã
ãããŒã¹ã¿ãã¯

ã¹ããªãŒã ã¯1ã€ã®å ±éã¢ãã¬ã¹ã¹ããŒã¹ã䜿çšããŸãã åã¹ã¬ããã«ã¯ãåå¥ã®ç£èŠããŒãžãæã€ç¬èªã®ã¹ã¿ãã¯ãå¿ èŠã§ãã åã¹ã¬ããã®ããŒãºãäºæž¬ããã®ã¯é£ãããããåã¹ã¿ãã¯ã«å€§éã®ã¡ã¢ãªãäºçŽããå¿ èŠããããŸãã ããã§ååã§ããããŠã©ããããŒãžã«ã¢ã¯ã»ã¹ã§ããªãããšãé¡ãã ãã§ãã
ãã®ã¢ãããŒãã®æ¬ ç¹ã¯ãããã°ã©ã å ã®ã¹ã¬ããã®æ°ãå¢ãããšã䜿çšå¯èœãªã¢ãã¬ã¹ç©ºéã®éãæžå°ããããšã§ãã
Goroutinã¹ã¿ãã¯ç®¡ç
ããã»ã¹ã¢ãã«ã®ä»¥åã®ããŒãžã§ã³ã§ã¯ãããã°ã©ãã¯ããŒããšã¹ã¿ãã¯ããããå¿é ããªãã»ã©ååã«å€§ãããšèãããããããŸããã ãã ãããµãã¿ã¹ã¯ã®ã¢ããªã³ã°ã¯è€éã§é«äŸ¡ã«ãªããŸããã
ã¹ã¬ããã®å°å ¥ã«ãããç¶æ³ã¯ãããã«æ¹åãããŸããã ãã ããããã°ã©ãã¯æé©ãªã¹ã¿ãã¯ãµã€ãºãæšæž¬ããå¿ èŠããããŸãã å°ãªããã-ããã°ã©ã ãã¯ã©ãã·ã¥ããå€ããã-ä»®æ³ã¢ãã¬ã¹ç©ºéãçµäºããŸãã
Goã¹ã±ãžã¥ãŒã©ãå°æ°ã®ã¹ã¬ããå ã§å€æ°ã®ãŽã«ãŒãã³ãå®è¡ããããšã¯æ¢ã«ç¢ºèªããŸããã ãããã®ãŽã«ãŒãã³ã®ã¹ã¿ãã¯ãµã€ãºèŠä»¶ã¯ã©ãã§ããïŒ
Goroutinã¹ã¿ãã¯ã®æé·

æåã«ãåãŽã«ãŒãã³ã«ã¯ããŒãããå²ãåœãŠãããå°ããªã¹ã¿ãã¯ããããŸãã ãã®ãµã€ãºã¯èšèªããŒãžã§ã³ã«å¿ããŠå€åããŸãã; Go 1.5ã§ã¯ãããã©ã«ãã§2ãããã€ããå²ãåœãŠãããŸãã ãŠã©ããããŒãžã䜿çšãã代ããã«ãGoã³ã³ãã€ã©ã¯åé¢æ°åŒã³åºãã®äžéšã§ãããã§ãã¯ãæ¿å ¥ããŸãã
ãã®ãã§ãã¯ã«ãããã¹ã¿ãã¯ãµã€ãºãæ©èœãå®è¡ããã®ã«ååãã©ããã確èªã§ããŸãã ã¯ãã®å Žåãæ©èœã¯æ£åžžã«å®è¡ãããŸãã ã¹ã¿ãã¯ãå°ããããå Žåãã©ã³ã¿ã€ã ã¯ããŒãäžã«ãã倧ããªã»ã°ã¡ã³ããå²ãåœãŠãããã«çŸåšã®ã¹ã¿ãã¯ã®å 容ãã³ããŒããããã解æŸããŠãé¢æ°ãåèµ·åããŸãã
ãã®ã¡ã«ããºã ã®ãããã§ãéåžžã«å°ããªåæãŽã«ãŒãã³ã¹ã¿ãã¯ãäœæã§ããŸãã ããã«ããããŽã«ãŒãã³ãå®äŸ¡ãªãªãœãŒã¹ãšèŠãªãããšãã§ããŸãã ã¹ã¿ãã¯ã®ååãªéšåãæªäœ¿çšã®ãŸãŸã§ããå Žåãã¹ã¿ãã¯ã®ãµã€ãºãçž®å°ããã¡ã«ããºã ããããŸãã åæžæé ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³äžã«å®è¡ãããŸãã
çµ±åãããã¯ãŒã¯ããŒã©ãŒ
2002幎ãDan Kegelã¯ã Problem c10k ããšããã¿ã€ãã«ã®èšäºãå ¬éããŸããã ç°¡åã«èšãã°ãåœæå©çšå¯èœãªå®äŸ¡ãªæ©åšã§å°ãªããšã10,000ã®TCPã»ãã·ã§ã³ãåŠçã§ãããµãŒããŒãœãããŠã§ã¢ãäœæããããšã«å°å¿µããŠããŸããã ãã®èšäºãæžããåŸãé«æ§èœãµãŒããŒã«ã¯ãã€ãã£ãã¹ã¬ãããå¿ èŠã§ãããšããäžè¬çãªèãããããŸããã æçµçã«ãã€ãã³ãã«ãŒãã代ããã«ãªããŸããã
èšç»ãšã¡ã¢ãªæ¶è²»ã®ã³ã¹ãã®èŠ³ç¹ãããã¹ã¬ããã«ã¯é«ãã³ã¹ããããããŸãã ã€ãã³ãã«ãŒãã®ç¶æ³ã¯æ¹åãããŠããŸãããã³ãŒã«ããã¯ã«åºã¥ãè€éãªäœæ¥åçã«é¢é£ããŠãç¬èªã®èŠä»¶ããããŸãã
Goã¯ãããã2ã€ã®ã¢ãããŒãã®ãã¹ãŠãæ倧éã«æŽ»çšããŸããã
c10kåé¡ãžã®åçã«è¡ã
Goã·ã¹ãã ã³ãŒã«ã¯éåžžãæäœããããã¯ããŠããŸãã ãã®ãããªåŒã³åºãã«ã¯ããã¡ã€ã«èšè¿°åã®èªã¿åããšæžã蟌ã¿ãå«ãŸããŸãã Goã¹ã±ãžã¥ãŒã©ã¯ãããªãŒã¹ã¬ãããèŠã€ããããæ°ããã¹ã¬ãããäœæããããšã«ããããããã®ã±ãŒã¹ãåŠçããŸããããã«ãããå ã®ã¹ã¬ããããããã¯ãããŠããéããŽã«ãŒãã³ã®æäŸãç¶ç¶ã§ããŸãã ããã¯ãå°æ°ã®ããããã³ã°ã¹ã¬ãããããŒã«ã«I / Oã¹ã«ãŒããããããã«äœ¿ãæããå¯èœæ§ããããããå®éã«ã¯ãã¡ã€ã«æäœã«é©ããŠããŸãã
ãã ãããããã¯ãŒã¯ãœã±ããã¯ããã»ã©åçŽã§ã¯ãããŸããã ãã€ã§ããã»ãšãã©ãã¹ãŠã®ãŽã«ãŒãã³ã¯ãããã¯ãŒã¯I / Oãå®äºããã®ãåŸ ã£ãŠãããã¯ãããŸãã ããªããã£ããªå®è£ ã®å Žåããã®ãããªãŽã«ãŒãã³ããšã«1ã€ã®ã¹ã¬ãããå®è¡ããå¿ èŠãããããããã¯ãŒã¯ãã©ãã£ãã¯ãèŠè¶ããŠããããã¹ãŠããããã¯ãããŸãã Goçµ±åãããã¯ãŒã¯ããŒã©ãŒã¯ããã®ãããªç¶æ³ã«å¯ŸåŠããã®ã«åœ¹ç«ã¡ãèšèªã©ã³ã¿ã€ã ãšãããããã±ãŒãžéã®çžäºäœçšãæäŸããŸãã
Goã®å€ãããŒãžã§ã³ã§ã¯ããããã¯ãŒã¯ããŒã©ãŒã¯1ã€ã®ãŽã«ãŒãã³ã§ãããkqueueãŸãã¯epollã䜿çšããŠæºåéç¥ãèŠæ±ããŠããŸããã ãã®ãããªãŽã«ãŒãã³ã¯ããã£ãã«ãéããŠåŸ æ©äžã®ãŽã«ãŒãã³ãšéä¿¡ããŸããã ããã«ãããåã·ã¹ãã ã³ãŒã«ã«ã¹ã¬ãããå²ãåœãŠãããšã¯é¿ããããŸãããããã£ãã«ã«æžã蟌ãããšã§äžè¬åãããèµ·åã¡ã«ããºã ã䜿çšããå¿ èŠããããŸããã ããã¯ãèšç»è ãèŠéã®åå ãéèŠæ§ãèªèããŠããªãã£ãããšãæå³ããŸãã
Goã®çŸåšã®ããŒãžã§ã³ã§ã¯ããããã¯ãŒã¯ããŒã©ãŒã¯ã©ã³ã¿ã€ã èªäœïŒã©ã³ã¿ã€ã ïŒã«çµ±åãããŠããŸãã ç°å¢ã¯ãœã±ããã®æºåãæŽãã®ãåŸ æ©ããŠãããŽã«ãŒãã³ãç¥ã£ãŠããããããã±ããã®å°çæã«åãããã»ããµã³ã¢ã§ãŽã«ãŒãã³ãå®è¡ãç¶ããããšãã§ããåŸ ã¡æéãççž®ããŠã·ã¹ãã ã¹ã«ãŒããããåäžãããããšãã§ããŸãã
ãŽã«ãŒãã³ãã¹ã¿ãã¯ç®¡çãçµ±åãããã¯ãŒã¯ããŒã©ãŒ
ãŸãšãããšã ãŽã«ãŒãã³ã¯åŒ·åãªæœè±¡åã§ããããã®ãããã§ã¹ã¬ããããŒã«ãã€ãã³ãã«ãŒããå¿é ããããšã¯ã§ããŸããã
ãŽã«ãŒãã³ã¹ã¿ãã¯ã¯å¿ èŠã«å¿ããŠå€§ãããªããŸããã¹ã¿ãã¯ãã¹ã¬ããããŒã«ã®ãµã€ãºãå€æŽããå¿ èŠã¯ãããŸããã
çµ±åããããããã¯ãŒã¯ããŒã©ãŒã¯ãè¯ãããªã³ãŒã«ããã¯ããŒã¹ã®ã¹ããŒã ã®äœ¿çšãåé¿ããŸãã ããã«ã¯ãOSããååŸã§ããæãå¹ççãªI / Oããžãã¯ãå«ãŸããŸãã
ã©ã³ã¿ã€ã ã¯ããã¹ãŠã®ãŽã«ãŒãã³ãåŠçããããã»ããµã³ã¢ãããŒãããããã«å¿ èŠãªã ãã®ã¹ã¬ãããååšããããšã確èªããŸãã
ãããŠããããã®æ©èœã¯ãã¹ãŠGoããã°ã©ããŒã«å¯ŸããŠå®å šã«ééçã§ãã