ã¯ããã«
ãUNIX å²åŠ (Unix philosophy)ããšã¯ãäžã€ã®å€§ããªã·ã¹ãã ããç¬ç«ããå°ããªãœãããŠã§ã¢ã®éãŸããšããŠäœããšããèãæ¹ã§ããUNIX ã®ããã«å€§ããè€éãªãã®ãã·ã³ãã«ã«äœãããã®èãæ¹ã§ãæè¡çãªçšèªã§èª¬æãããªãã°ã倧ããªã·ã¹ãã ãã¢ãžã¥ãŒã«åãããæ§æå¯èœãªããã°ã©ã èšèšã§éçºãããšããããšã§ãã
UNIX å²åŠã«å ¬åŒã®å®çŸ©ã¯ååšããŸãããã±ã³ã»ãã³ããœã³ãå§ããšãã UNIX ã®åµå§è ã UNIX ã®éçºãéããŠç€ºãããœãããŠã§ã¢éçºã®èãæ¹ã UNIX å²åŠãšèšãããããã«ãªãããããä»ã®äººãç¬èªã«è§£éããŠè§£èª¬ãããã®ã UNIX å²åŠãšããŠç¥ãããŠããŸããUNIX å²åŠãšåŒã°ããŠãããã®ãè€æ°ãã£ãŠãããããã§ç°ãªã£ãŠããã®ã¯ãã®ããã§ããUNIX å²åŠã®æ¬è³ªçãªèãæ¹ã¯ä»ãéãããã®ã§ããããããŸã§ã® UNIX å²åŠã®è§£èª¬ã®å€ãã¯å€ãæè¡ãå ã«è§£èª¬ãããŠãã誀解ãæããã®ã«ãªã£ãŠããŸã£ãŠããŸãããã®èšäºã¯å€ã UNIX å²åŠã®è§£èª¬ãæŽæ°ããçŸä»£ã®ã³ã³ãã¥ãŒã¿æè¡ããœãããŠã§ã¢æè¡ã«å¯Ÿå¿ãã 1980 幎代ã®å€ãæä»£é ãã® UNIX å²åŠãçŸä»£ã«èããã詊ã¿ã§ãã
UNIX å²åŠãšããŠããç¥ãããŠãããã®ã«ã¯ãå€ãé ã«ãããã«ãã€ã® UNIX å²åŠ (1978)ããã¬ã³ã«ãŒãºã® UNIX å²åŠ (1994)ããã¬ã€ã¢ã³ãã® UNIX å²åŠ (2003)ãã® 3 ã€ããããŸããããã㯠UNIX ã®å¥åãšãèšãããœãããŠã§ã¢ããŒã«ãäŸã« UNIX å²åŠã®èãæ¹ã解説ãããã®ã§ãããã®èšäºã§ã¯éå»ã®è§£èª¬ãèžãŸã㊠3 ã€ã® UNIX å²åŠãããœãããŠã§ã¢ããŒã«ã®ææ³ãããœãããŠã§ã¢ããŒã«ã®æçŸ©ãããœãããŠã§ã¢ããŒã«ã®éçºååããšèªã¿æ¿ããŠãããç¥ãããŠãã UNIX å²åŠã®å€ããŠèª€è§£ãããããªçã説ææãæ°ããèšèã§çœ®ãæããä¿®æ£ããªããã°ãªããªãã£ãçç±ãå€å°ã®è§£èª¬ãä»ãå ããŠãUNIX å²åŠãšã¯ã©ããããã®ã§ãããã解説ããŠããŸããç¹ã«åé¡ãå€ããã¬ã³ã«ãŒãºã® UNIX å²åŠãã¯å€§ããä¿®æ£ããŠããŸããåå žãšãèšãããããã«ãã€ã® UNIX å²åŠãã®ãããªã·ã³ãã«ãããªããã¬ã€ã¢ã³ãã® UNIX å²åŠãã®ãããªçŸä»£çãªãœãããŠã§ã¢å·¥åŠã«åºã¥ããŠããããã1980 å¹Žä»£åœæã® DEC 瀟ã®ç¬èª UNIX éçºè ã§ããã¬ã³ã«ãŒãºã®åã£ãèãã倧ããåæ ããããã®ã ããã§ãããã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ãé«ããããå¹çãéèŠãããšç§»æ€æ§ãäžããããªã©ãšããä»ãåºæºã«ãããšééããšãèšãããããå 容ãå€ããã®ãŸãŸã§ã¯å šãåèã«ã§ããŸãããïŒåè åèãUNIXãšããèãæ¹ - UNIXå²åŠãã¯æ¬åœã«åèãªã®ãïŒ ã èè ã®ã¬ã³ã«ãŒãºã¯äœè ãªã®ããšããšã調ã¹ãŠã¿ãïŒ
念ã®çºã§ããããã®èšäºã®è§£èª¬ãå¯äžã®æ£ãã UNIX å²åŠã ãšèšãã€ããã¯ãããŸããããããã 3 ã€ã® UNIX å²åŠããã®äººã«ããè§£éã§ãããªããããã«ç§ã 4 ã€ç®ãæ°ãã«è¿œå ãããšèããŠãã ãããæ£ãããã©ããã¯å¥ãšããŠå°ãªããšãå€ãæä»£ã«æžããã UNIX å²åŠã®è§£èª¬ããã¯çŸä»£çãªãã®ã«ããã€ããã§ããããšãã€ãèšäºãé·ããšå¥œè©ãªã®ã§å ã«èšã£ãŠãããŸããšããã®èšäºã¯ãã£ã 7 äžåçšåºŠãããããŸãããæ¬ã«ããã 100 ããŒãžã¡ãã£ãšãããã®èãæ¬çšåºŠãããªãã§ããïŒ
UNIX å²åŠã«ã€ããŠ
UNIX å²åŠã¯å ·äœçãªèšèšæ¹éã§ã¯ãªãèãæ¹ã§ããUNIX å²åŠã¯ UNIX ã®éçºã®äžã§çãŸãããã㊠UNIX 㯠UNIX å²åŠãå®è·µããæåã®ã·ã¹ãã ã§ããUNIX ã¯ãããã°ã©ãã®ããã®ãœãããŠã§ã¢ããŒã«ãè©°ãŸã£ãéå ·ç®±ããšããèãæ¹ããããŸãïŒåè GNU CoreUtils - ãœãããŠã§ã¢ã®éå ·ç®±ïŒãã€ãŸã UNIX å²åŠã®å®è·µäŸã®äžã€ã UNIX = ãœãããŠã§ã¢ããŒã«ãšããããã§ããããã¯çµã¿åãããŠäœ¿ãããœãããŠã§ã¢ã®éå ·ãäœãããããŠçµã¿åãããŠäœ¿ããšããèãæ¹ã§ããæ®æ®µããããŸããŸãªãœãããŠã§ã¢ã䜿ãããããŠæã«èªãäœã£ãŠããããã°ã©ãã«ãšã£ãŠãUNIX å²åŠã¯åã£ãŠãåãé¢ããªããã®ãªã®ã§ããããã®äŸ¡å€ãæ£ããçè§£ãããŠããªãããã«æããŸãã
UNIX å²åŠã¯ãUNIX ã§çãŸãããå²åŠã§ãã£ãŠãUNIX å°çšã®ãå²åŠã§ã¯ãããŸãããããã UNIX ãšããååã«åŒãããããŠã UNIX ã ãã«é¢ä¿ãããã®ãšæãããŠãããããŸã UNIX å²åŠã説æãããã®ã 1980 幎代㮠UNIX ã®äžçãäŸã«ããŠãããã®ãå€ãããããå€ãæä»£ã® UNIX ã®äœ¿ãæ¹ãäŸãã° C èšèªããã°ã©ãã³ã°ãã·ã§ã«ã¹ã¯ãªããã£ã³ã°ãUNIX ã·ã§ã«ã awk ã UNIX ã³ãã³ãã䜿ãããªããã¯ããã¯ã UNIX å²åŠã ãšèª€è§£ãããŠããæ°ãããŸãããããã¯éããŸããäŸãã° Linux + fish ã·ã§ã«ã¹ã¯ãªãã + Python ã³ãã³ã + MySQL ãµãŒããŒãšããçµã¿åããã§ã UNIX å²åŠã¯æãç«ã¡ãŸããããã¯åã«çµã¿åãããŠäœ¿ãéå ·ãå ¥ãæ¿ãããšèšãã ãã§ãã
UNIX å²åŠãå®è·µããŠãããã®ã¯ UNIX ã ãã§ã¯ãããŸãããããããããäŸã ãšãç¬ç«ãã Docker ã³ã³ããã Docker Compose ã§ãŸãšããŠã·ã¹ãã ãäœãããšãããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã¯ãïŒæèããŠãããã©ããã¯å¥ãšããŠïŒUNIX å²åŠãå®è·µãããã®ã§ããä»ã«ã Apache KafkaïŒJava ãš Scala ã§æžããã忣ã¹ããªãŒãã³ã°ã¡ãã»ãŒãžã³ã°ã·ã¹ãã ïŒã®äžã«ã UNIX å²åŠãæ¯ã¥ããŠããããšããApache Kafka, Samza, and the Unix Philosophy of Distributed DataããèªããšããããŸããUNIX å²åŠã®å 容ã¯ä»ã®ããç¥ããããœãããŠã§ã¢éçºã®ååããåŠã¶ããšãåºæ¥ãã®ã§ããããã人ã«ãšã£ãŠã¯ UNIX å²åŠã¯éŠŽæã¿ãããæŠå¿µãå¥ã®èšèã§è¡šçŸãããã®ã«ããããæ°ãã«åŠã¶ãããªããšã¯å°ãªããããããŸãããããã UNIX å²åŠãéèŠãªèãæ¹ã§ããããšã«ã¯å€ãããããŸããã
UNIX å²åŠã®å¿çšç¯å²ã¯ã³ã³ãã¥ãŒã¿æè¡ããœãããŠã§ã¢æè¡ã®é²åãšå ±ã«åºãã£ãŠããŸããUNIX ã®é²åãšå ±ã«æ©ãã§ãã UNIX å²åŠã¯å€åããããšã蚱容ããŠããŸããæã® UNIX ã«ã¯ãªãã£ãéå ·ãããŸããŸãªèšèªãå€ãã®ã³ãã³ãã䜿ãããšã¯ UNIX å²åŠã®èãæ¹ã§ããUNIX æä»£ãšåãããæ¹ãç¶ããããšã¯ UNIX å²åŠã§ã¯ãããŸãããUNIX ã®åµå§è ã§ããã±ã³ã»ãã³ããœã³ã¯ãçŸåš Go èšèªã®éçºãããŠãããšããäºå®ãããããã®ããšã¯æããã§ãã
ãããŸã§ã® UNIX å²åŠãšãæ°ãã UNIX å²åŠãã®æ¯èŒ
现ããè§£èª¬ã¯æãã«ããã£ãšéããç¥ããã人ã®ããã«ãéããç°¡åã«ãŸãšããŸããã倿Žããçç±ãªã©ã«ã€ããŠã¯åŸåã®è§£èª¬ãåç §ããŠãã ããã
ããã«ãã€ã® UNIX å²åŠ
ããã«ãã€ã® UNIX å²åŠã¯ãUNIX å²åŠãšããŠäžçªæåã« AT&T ãã«ç ç©¶æã§ææžåãããåå žãšãèšãããã®ã§ããéèŠãªãã€ã³ããšããŠïŒãªãªãžãã«ã®æç¹ã§ïŒãå°ããªããã°ã©ã ã«ããããå¹çãããç§»æ€æ§ãéèŠããã·ã§ã«ã¹ã¯ãªããã䜿ãããªã©ãšããå®çã¯ãªãããšã«æ³šæããŠãã ãããC èšèªã䜿ããšããã€ãã䜿ããšãèšã£ãŠããªãã®ã§ãã
(i)
-åã
ã®ããã°ã©ã ã¯1ã€ã®ããšããã£ããããããã«ãããæ°ããä»äºããããªãã
+åã
ã®ããã°ã©ã ã¯äžãããã圹å²ããã£ããããªãããã«ãããç°ãªã圹å²ã®ä»äºããããªãã
æ°ããæ©èœã远å ããŠå€ãããã°ã©ã ãè€éã«ããã®ã§ã¯ãªãããŸã£ããæ°ããããã°ã©ã ãäœãã
(ii)
ãã¹ãŠã®ããã°ã©ã ã®åºåã¯ãä»ã®æªç¥ã®ããã°ã©ã ã®å
¥åã«ãªãã®ã ãšããããšãäºæ³ããã
äœåãªæ
å ±ã§åºåããã¡ããã¡ãã«ããŠã¯ãªããªãã
-瞊æ¹åã®äžŠã³ãå³å¯ã«æãããããã€ããªå
¥å圢åŒã䜿ã£ããããããšãé¿ããã
+å
¥åºåã«ã¯è¡æåã®åçŽãªããã¹ã圢åŒããŸãã¯æšæºçãªããŒã¿åœ¢åŒã䜿çšããã
察話çãªå
¥åã«ãã ãããªã
(iii)
ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ãã£ãŠãã
-ãœãããŠã§ã¢ã¯æ©ãïŒã§ããã°æ°é±é以å
ã«ïŒè©Šããããã«èšèšãæ§ç¯ããã
+ãœãããŠã§ã¢ã¯çŽ æ©ãïŒã§ããã°æ°é±éåäœã§ïŒè©Šããä»çµã¿ãæ§ç¯ããã
+èŠä»¶å®çŸ©ãèšèšãéçºãæ§ç¯ããã¹ãã詊çšãªã©å
šè¡çšãäœåºŠãç¹°ãè¿ãã
ãŸããéšåã¯æšãŠãŠäœãçŽãããšãèºèºãããªã
(iv)
æèœã®äœãè
ã«æäŒã£ãŠãããããããªãã
-ããã°ã©ãã³ã°ã®ä»äºãæç¢ºã«ããããã«ããŒã«ã䜿ãã
+ãœãããŠã§ã¢éçºã®ä»äºã楜ã«ããããã«ããŒã«ã䜿ããå¯èœãªéãèªååããã
ããŒã«ãäœãããã«é åãããªããã°ãªããªãå Žåã§ãã
䜿ã£ãããšã§äžéšã®ããŒã«ãæšãŠãããšã«ãªãããšãããã£ãŠããå Žåã§ããããŒã«ã䜿ãã
ã¬ã³ã«ãŒãºã® UNIX å²åŠ - 9 ã®æçŸ©
| æ§ æçŸ© | æ° æçŸ© |
|---|---|
| ã¹ã¢ãŒã«ã»ã€ãºã»ãã¥ãŒãã£ãã« | ã·ã³ãã«ã»ã€ãºã»ãã¹ã |
| äžã€ã®ããã°ã©ã ã«ã¯äžã€ã®ããšã ããŸããããã |
äžã€ã®ããã°ã©ã ã«ã¯æ¬åœã«ããã¹ãããšã ããŸããããã |
| ã§ããã ãæ©ã詊äœãäœæãã | ã§ããã ãçŽ æ©ãäœåºŠã詊äœã§ããä»çµã¿ãäœã |
| å¹çããç§»æ€æ§ | èŠä»¶ãæºããå質ãšé«ãçç£æ§ãäž¡ç«ããã |
| æ°å€ããŒã¿ã¯ASCIIãã©ãããã¡ã€ã«ã« ä¿åãã |
ãã¡ã€ã«ã«ã¯æšæºçãªåœ¢åŒã ããã¹ãããŒã¹ã®åçŽãªåœ¢åŒã䜿çšãã |
| ãœãããŠã§ã¢ã®æ¢åãæå¹ã«æŽ»çšãã | å€ãã®ãœãããŠã§ã¢ã掻çšããŠçç£æ§ãé«ãã |
| ã·ã§ã«ã¹ã¯ãªããã䜿ãããšã§ æ¢åã®å¹æãšç§»æ€æ§ãé«ãã |
ã³ãã³ããã·ã³ãã«ã«çµã¿åãããããã« ã·ã§ã«ã¹ã¯ãªãããæŽ»çšãã |
| é床ã®å¯Ÿè©±çã€ã³ã¿ãŒãã§ãŒã¹ãé¿ãã | èªååŠçã®ããã«ã³ãã³ãã«ã¯é察話ç㪠ã€ã³ã¿ãŒãã§ãŒã¹ãæããã |
| ãã¹ãŠã®ããã°ã©ã ããã£ã«ã¿ã«ãã | ããŒã¿ãåŠçããããã°ã©ã ã¯å¯èœãªéã ãã£ã«ã¿ã«ãã |
ã¬ã³ã«ãŒãºã® UNIX å²åŠ - éèŠåºŠã®äœã 10 ã®æºæçŸ©
| æ§ æºæçŸ© | æ° æºæçŸ© |
|---|---|
| 奜ã¿ã«å¿ããŠèªåã§ç°å¢ã 調æŽã§ããããã«ãã |
ããã°ã©ãåãã®ç°å¢ãéå
·ã¯ã«ã¹ã¿ãã€ãºæ§ã é«ããã |
| ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã® ã«ãŒãã«ãå°ãã軜ããã |
ã«ãŒãã«ã¯å°ãããããŠãŒã¶ãŒã©ã³ãã®ããã°ã©ã ã è±å¯ã«ãã |
| å°æåã䜿ããçã | å¯èªæ§ã®ããã«é·ãååã䜿ããçãåå㯠楜ãããæã«äœ¿ã |
| 森æãå®ã | 森æãç°å¢ãå®ããé»å䜿çšéãCOâæåºéãæžãã |
| æ²é»ã¯é | ããŒã¿ã¯åºåãã¹ãæã«ãäžè²«ãã圢åŒã§ããŒã¿ã åºåãã |
| 䞊è¡ããŠèãã | 䞊è¡åŠçã»äžŠååŠçãè¡ãããã°ã©ã ãäœã |
| éšåã®ç·åã¯å šäœããã倧ãã | 倧ããªã·ã¹ãã ã¯è€æ°ã®ããã°ã©ã ãçµã¿åãããŠäœã |
| 90 ããŒã»ã³ãã®è§£ãç®æã | æ¬åœã«ããã¹ãããšã«éäžãããããªãããšã決ãã |
| å£ãã»ããåªããŠãã | æéããããŠå®æããããããçŽ æ©ããããã¿ã€ãã äœã |
| éå±€çã«èãã | ç®çã«å¿ããŠæé©ãªããŒã¿æ§é ã䜿çšãã |
ã¬ã€ã¢ã³ãã® UNIX å²åŠ
泚æ 説æã®å 容ã«å€æŽã¯ãããŸãã
| åå | 説æ |
|---|---|
| ã¢ãžã¥ãŒã«åã®åå | ã¯ãªãŒã³ãªã€ã³ã¿ãŒãã§ã€ã¹ã§çµåãããåçŽãªéšåãäœã |
| æç¢ºæ§ã®åå | å·§åŠã«ãªãããæç¢ºã§ãã |
| çµã¿ç«ãŠéšåã®åå | ä»ã®ããã°ã©ã ãšçµã¿åãããããããã«äœã |
| åé¢ã®åå | ã¡ã«ããºã ããããªã·ãŒãåãé¢ãããšã³ãžã³ãã ã€ã³ã¿ãŒãã§ã€ã¹ãåãé¢ã |
| åçŽæ§ã®åå | åçŽã«ãªãããã«èšèšãããè€éãªéšåã远å ããã®ã¯ã ã©ãããŠãå¿ èŠãªãšãã ãã«å¶éãã |
| å¹çŽã®åå | ä»ã®ãã®ã§ã¯ä»£ããããªãããšãæç¢ºã«å®èšŒãããªãéãã 倧ããªããã°ã©ã ãæžã㪠|
| éææ§ã®åå | ãããã°ã調æ»ãç°¡åã«ãªãããã«ããããããããç®æã㊠èšèšãã |
| å®å®æ§ã®åå | å®å®æ§ã¯ãéææ§ãšåçŽæ§ããçãŸãã |
| è¡šçŸæ§ã®åå | ç¥èãããŒã¿ã®ãªãã«åºããããã°ã©ã ããžãã¯ã楜㧠å®å®ãããã®ã«ãªãããã«ãã |
| é©ãæå°ã®åå | ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãé©ããæå°ã«ãªãããã«èšèšãã |
| æ²é»ã®åå | ã©ãããŠããããªããã°ãªããªãæ³å®å€ãªããšããªãã®ãªãã ããã°ã©ã ã¯äœããã㪠|
| 修埩ã®åå | ãšã©ãŒãèµ·ãããªããã°ãªããªããšãã«ã¯ãã§ããéãæ©ãæ®µéã§ ããããŸãããšã©ãŒãèµ·ãã |
| çµæžæ§ã®åå | ããã°ã©ãã®æéã¯é«äŸ¡ã ããã·ã³ã®æéãããããã°ã©ãã® æéãç¯çŽãã |
| çæã®åå | æäœæ¥ã®ããã¯ãé¿ãããå¯èœãªããããã°ã©ã ãæžãããã® ããã°ã©ã ãæžã |
| æé©åã®åå | 磚ãåã«ãããã¿ã€ããäœããæé©åããåã«ãããã¿ã€ãã åãããã«ãã |
| 倿§æ§ã®åå | ãå¯äžã®æ£ããæ¹æ³ããšãããã¹ãŠã®äž»åŒµãä¿¡çšãã㪠|
| æ¡åŒµæ§ã®åå | æªæ¥ã¯äºæ³å€ã«æ©ããã£ãŠãããæªæ¥ãèŠãããŠèšèšãã |
åºç€ç¥è
UNIX å²åŠã¯ãœãããŠã§ã¢ããŒã«ã«éå®ãããªã
ãœãããŠã§ã¢ããŒã«ã¯ãœãããŠã§ã¢ã®éå ·ãçµã¿åãããŠäœ¿ããšããèãæ¹ã§ãããUNIX å²åŠã¯ãœãããŠã§ã¢ããŒã«ã«éå®ããããã®ã§ã¯ãããŸããããããããœãããŠã§ã¢ã®éçºã«å¿çšã§ããèãæ¹ã§ããnpm ã®åµèšè ã§ãã Isaac Z. Schlueter ã¯ãUnix Philosophy and Node.jsãã§ä»¥äžã®ããã«è¿°ã¹ãŠããŸãã
All too often, people get hung up on the wrong aspects of the Unix Philosophy, and miss the forest for the trees. The Unix Philosophy is not about a specific implementation, or anything that is necessarily unique to any Unix operating system or program. Itâs not about file descriptors, pipes, sockets, or signals. Those sorts of complaints are like saying that someone is not a buddhist unless they speak Pali.
Unix Philosophy is an outlook for software development, not any specific technical development in software. It is an ideal to reach for, and perhaps ironically, it is an ideal that instructs us to occasionally eschew idealism in favor of practicality.
翻蚳
ããŸãã«é »ç¹ã«ã人ã 㯠Unix å²åŠã®ééã£ãåŽé¢ã«ãšããããæšãèŠãŠæ£®ãèŠãã«ãªã£ãŠããŸããUnix å²åŠã¯ç¹å®ã®å®è£ ããããããã® Unix ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããã°ã©ã ã«ç¹æã®ãã®ã§ã¯ãããŸãããããã¯ãã¡ã€ã«ãã£ã¹ã¯ãªãã¿ããã€ãããœã±ãããã·ã°ãã«ãšãã£ããã®ã§ã¯ãããŸããããã®ãããªæå¥ã¯ãããŒãªèªã話ããªããã°ä»æåŸã§ã¯ãªãããšèšã£ãŠãããããªãã®ã§ãã
Unix å²åŠã¯ãœãããŠã§ã¢éçºã®å±æã§ãã£ãŠããœãããŠã§ã¢ã«ãããç¹å®ã®æè¡çéçºã§ã¯ãããŸãããããã¯å°éãã¹ãçæ³ã§ãããããããç®èã«ããæã«ã¯çæ³äž»çŸ©ãæšãŠãŠå®çšæ§ãåªå ããããã«æç€ºããçæ³ãªã®ã§ãã
翻蚳ãããŸã§
ä»ã«ãã"Unix Philosophy" + ç¹å®ã®èšèªããªã©ã§æ€çŽ¢ããã°ãUNIX å²åŠãçè§£ãããã®ãã¡ã«ãããUNIX ãè¶ ããããŸããŸãªåéãžã®å¿çšãèŠã€ããããšã§ãããã
UNIX å²åŠã UNIX ãã·ã§ã«ç°å¢ã«çŽä»ããŠããããã«èŠããã®ã¯ãåã« UNIX å²åŠã UNIX ã§çãŸããåœæã®ã³ã³ãã¥ãŒã¿ã®äœ¿ãæ¹ãã·ã§ã«ç°å¢ãããªãã£ãããã§ããUNIX ãèªçããé ã¯äººãã³ã³ãã¥ãŒã¿ã®åã«åº§ã£ãŠå¯Ÿè©±çã«äœ¿ããšãããä»ã§ã¯åœããåã®äœ¿ãæ¹ã¯ãŸã äžè¬çã§ã¯ãªããC èšèªãèªçããŠããããå€ãã®ãœãããŠã§ã¢ãã©ã€ãã©ãªãªã©ããããŸããããã®ãããªæä»£ã«ãå ·äœçãªäŸã§åããããã説æãããš UNIX ãšã·ã§ã«ç°å¢ã䜿ã£ã説æã«ãªã£ãŠããŸãã®ã¯ä»æ¹ãããŸãããGUI ã誰ã䜿ã£ãŠãªããããªæä»£ã«ãGUI ç°å¢ãäŸã« UNIX å²åŠã説æããã£ãŠäŒããã¯ãããããŸããããïŒ
UNIX å²åŠã¯ä»ã®ç°å¢ãèšèªã«å¿çšããããšãå¯èœã§ããå®éã«å¿çšãããŠããŸããããã UNIX å²åŠã¯ãœãããŠã§ã¢ããŒã«ã®èãæ¹ãšã㊠UNIX ãšå ±ã«çºå±ãããšããçµç·¯ããããŸããå°æ¥ã¯ã·ã§ã«ãšã¯ç°ãªããœãããŠã§ã¢ã®éå ·ãçµã¿åãããŠäœ¿ãããã®ããåªããç°å¢ãç»å ŽãããããããŸããããå°ãªããšãä»ã¯ãUNIX å²åŠã¯ã·ã§ã«ç°å¢ã«éå®ããããã®ã§ã¯ãªããã®ã®ãã·ã§ã«ç°å¢ãã·ã§ã«ã¹ã¯ãªããããã³ãã³ããçµã¿åãããŠäœ¿ãããšã UNIX å²åŠãå®è·µããã®ã«æãé©ããç°å¢ã§ãããšèšãããšã¯åºæ¥ãŸãã
ãéå ·ã䜿ãããšãéå ·ãäœããã®éã
UNIX å²åŠã«ã¯äºã€ã®èªç±ããããŸãããéå ·ã䜿ãèªç±ããšãéå ·ãäœãèªç±ãã§ããéå ·ãšã¯å šãŠã®ãœãããŠã§ã¢ã®äºãæå³ããŠããŸãã誰ããäœã£ããœãããŠã§ã¢ã䜿ãã®ãè¯ããèªåã§ãœãããŠã§ã¢ãäœãã®ãè¯ãã§ãããéå ·ã䜿ãããšãéå ·ãäœããã¯è¡šè£äžäœã§ããéå ·ãäœããªããã°éå ·ã¯äœ¿ãããéå ·ã䜿ãæã®ããšãèããªããã°è¯ãéå ·ã¯äœããŸãããã©ã¡ããäžæ¹ã ãã§ã¯æãç«ã¡ãŸãããUNIX å²åŠã¯ãéå ·ã䜿ãããšãéå ·ãäœããã®äºã€ãåãããèãæ¹ã§ãã
ãéå ·ã䜿ãããšããã®ã¯ããããããäŸã§èšãã°ãã·ã§ã«ããã³ãã³ããå®è¡ããããšã§ãããã·ã§ã«ã¹ã¯ãªãããæžããšããããšãéå ·ã䜿ãè¡çºã®äžã€ã§ããããæ£ç¢ºã«èšããªããéå ·ã䜿ãæé æžããããããæžãããšããã·ã§ã«ã¹ã¯ãªãããæžããšããããšã§ããäžæ¹ã§ãéå ·ãäœãããšããã®ã¯ãäŒçµ±ç㪠UNIX ã®æµåã§èšããªãã°ãC èšèªã§ã³ãã³ããäœãããšã§ãããã¡ããä»ã¯ C èšèªã ãã§ã¯ãªãä»»æã®èšèªã䜿ã£ãŠæ§ããŸãããéå ·ãäœãããšãæ¢åã®ã³ãã³ãã ãã§ååãšæããããããŸããããæ¢åã®ã³ãã³ãã¯æ±çšçãªã³ãã³ãã°ããã§ãªã®ã§ãããã ãã§ã¯äžååãªããšãå€ã ãããŸããããããæã«æ¢åã®ã³ãã³ãã ãã§é 匵ãã®ã§ã¯ãªãéå ·ãèªåã§äœãå¿ èŠããããŸãããã·ã§ã«ã¹ã¯ãªãããæžãäºããšãC èšèªã®ã³ãŒããæžãäºãã¯ããããããéå ·ã䜿ãäºããšãéå ·ãäœãäºãã«å¯Ÿå¿ããå®ã¯ãã®äºã€ã¯å¥ã®è¡çºã§ãããã ãåŸè¿°ããŸãããã®äºã€ã®å¢çç·ã¯ææ§ã§ãããšããããããã®ç¬éã¯å¥ã®è¡çºã ãšèããŠãã ããã
ãéå ·ã䜿ãããããå°ã詳ããèšããšãè€æ°ã®éå ·ãçµã¿åãããŠäœ¿ãããšããããšã§ããéå ·ãçµã¿åãããŠäœ¿ããšããã®ã¯ãã³ãã³ãããã€ãã§ã€ãªããããšã ãã§ã¯ãããŸãããäŸãã°äžããé çªã«äžé£ã®ã³ãã³ããå®è¡ããŠããããšãçµã¿åãããŠäœ¿ãããšã®äžã€ã§ããã·ã§ã«ããäžã€ã®ã³ãã³ããå®è¡ããã ãã®å Žåãããã¯äžã€ã®éå ·ã䜿ãã ãã§äœæ¥ãå®äºãããšããããšã§ããäžã€ã®éå ·ã䜿ãã ãã§ã¯äœæ¥ãçµãããªãå Žåã¯è€æ°ã®éå ·ã䜿ãããšã«ãªããŸããè€æ°ã®éå ·ãçµã¿åãããäžé£ã®äœæ¥ãæé åããŠäœåºŠãåãããšãç¹°ãè¿ãããæã«ããããããæžããŠããã®ãã·ã§ã«ã¹ã¯ãªãããšããããã§ããäœæ¥ãã®ãã®ã¯ã·ã§ã«äžã§æäœæ¥ã§ã³ãã³ããå®è¡ããŠããã®ãšåããªã®ã§ãã·ã§ã«ã¹ã¯ãªãããæžããšããã®ã¯ãéå ·ã䜿ããããšãšå矩ã§ãã
ãéå ·ãäœãããããå°ã詳ããèšããšãéšåãçµã¿èŸŒãã§éå ·ãäœãããšããããšã§ããæ°ãããéšåããšããçšèªãç»å ŽããŸããããéšåãšã¯é¢æ°ãã©ã€ãã©ãªããªããžã§ã¯ãæåèšèªãªãã¯ã©ã¹ã©ã€ãã©ãªãå«ãŸããŸããéå ·ãéšåãïŒæ±çšçã«äœãããŠãããã®ã¯ïŒåå©çšå¯èœãªã³ãŒããªã®ã§äŒŒããããªãã®ã«èŠãããããããŸãããããã®éãã¯æ§ææ¹æ³ã«ãããŸããéå ·ã¯è€æ°ã®éšåããæ§æãããŠããŸãããããã®éšåã¯ããã«å°ããªéšåã䜿ã£ãŠæ§æãããŠããŸãããããŠããã«å°ããéšåããšãéšåã¯éå±€çãªæ§é ã§æ§æãããŠããŸããäŸãã°ããžã¿ã«åŒç®èŠãŸãæèšãšããéå ·ã¯ãLSI ã LED ãã¹ã€ããã黿± ããã¯ã¹ããã¶ãŒãªã©ãšèšã£ãå°ããéšåã§æ§æãããŠããŸãããããããã®éšåã¯ããã«å°ããªé»åçŽ åãéå±ããŒããªã©ããæ§æãããŠããŸãããã㯠C èšèªã§äœãããã³ãã³ãã颿°ãçµã¿åãããŠäœãããŠããããããã®é¢æ°ã¯å éšã§ããã«å°ããªé¢æ°ãåŒã³åºããŠããã®ãšåãæ§é ã§ãã
éå±€æ§é ã§éšåãäœãã®ã¯ãå°ããããéšåãçŽæ¥äœ¿ã£ãŠå€§ããªãã®ãäœããšè€éã«ãªãããã§ããé©åºŠãªå€§ããã®éšåã«ãããã®éšåã®äžèº«ãå®è£ ã®è©³çްãç¥ããã«äœ¿ããããã«ããããšã§ãé床ã®è€éæ§ããéããããšãåºæ¥ãŸãããã®ãããªèãæ¹ãæœè±¡åãšãããŸããéå ·ã®ä¿¡é Œæ§ã¯ä¿¡é Œæ§ãé«ãéšåã䜿ãããšã§æ ä¿ããŸãããã¡ããéšåã®ä¿¡é Œæ§ãããã«å°ããéšåã®ä¿¡é Œæ§ã§æ ä¿ããŠããŸãããã®ä¿¡é Œæ§ã®æ ä¿ã®éå±€æ§é ã«ãã£ãŠå€§ããªéå ·ãäœãããšãå¯èœã«ããŠããŸããäžæ¹ã§ãéå ·ã䜿ããã·ã§ã«ã¹ã¯ãªããã¯åºæ¬çã«ãã©ãããªæ§é ã§æ§æãããŠããŸãããã©ãããªæ§é ã«ãããå Žåã¯å šäœãšããŠäœãããŠããã®ããææ¡ãããããã§ãããã ããã©ãããªæ§é ã ãšä¿¡é Œæ§ãæ ä¿ã«ã¯çµã¿åãããå šäœã§ãã¹ãããããç¡ããªã£ãŠããŸãã®ã§ãã·ã§ã«ã¹ã¯ãªããã§å€§ããªãã®ãäœãã®ã¯å°é£ã§ãã倧ããã®ã·ã§ã«ã¹ã¯ãªãããäœãå Žåã¯ã颿°ã䜿ã£ãŠããçšåºŠã®æœè±¡åãæ§é åãè¡ãããšãããããããŸãã
å šäœãšããŠäœãããããææ¡ããããã«ãã©ãããªæ§é ã䜿ããããããã®å·¥çšã®è©³çŽ°ãæ°ã«ããªãããã«éå±€æ§é ã䜿ãããã®ãããªæ§é ã®éããããã·ã§ã«ã¹ã¯ãªããã¯ç°¡åãªã¿ã¹ã¯ãå®è¡ããã®ã«é©ããŠããã倧ããè€éãªãã®ãäœãæã«ã¯ä»ã®èšèªã®æ¹ãé©ããŠãããšããéããçãŸããŠããŸãã
ãã®ããã«ãéå ·ã䜿ãããšãéå ·ãäœããã¯å šãå¥ã®ãã®ãªã®ã§ãããå¢çç·ãææ§ã ãšèšã£ãã®ã¯ãã·ã§ã«ã¹ã¯ãªããã§éå ·ãäœãããšãã§ããããä»»æã®èšèªããéå ·ã䜿ãããšãã§ããããã§ããç§ã¯ããã·ã§ã«ãã©ã®ç°å¢ã«ãã€ã³ã¹ããŒã«ãããŠããã¹ã¯ãªããèšèªã§ãããšããäºå®ãå©çšããã·ã§ã«ã¹ã¯ãªããã§æ±çšçã«äœ¿ããéå ·ãäœã£ãŠããŸãããããã·ã§ã«ã¹ã¯ãªããã§ããèŠããããããªæžãæ¹ã§ã¯å€§ããè€éãªãã®ãäœãã®ã¯å€§å€ãªãããäžè¬çãªèšèªã®ææ³ã䜿ã£ãŠããŸããäŸãã°ç§»æ€æ§ã確ä¿ããããã«ãåç°å¢ã§ã®äºææ§åé¡ãåžåããããã®ã©ãããŒãåãå ¥ãããããŠããŸãããããå®è£ ã®è©³çްããéããããã®æœè±¡åã®ãã¯ããã¯ã§ããéã«äžè¬çãªèšèªã§ã³ãã³ããåŒã³åºãããšãã§ããŸããã¹ã¯ãªããèšèªã䜿ã£ãŠç°¡åã«ã³ãã³ããå®è¡ããã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ããããŸãããéå ·ã䜿ãããšãéå ·ãäœããã®éãã¯äœ¿çšããèšèªã§æ±ºãŸãã®ã§ã¯ãªãèãæ¹ã®éãã§ããã©ã®èšèªã䜿ãããéå ·ã䜿ãå Žåã¯ãã©ãããªæ§é ãé©ããŠããŸãããéå ·ãäœãå Žåã¯éå±€æ§é ãé©ããŠããŸãããããŠãœãããŠã§ã¢ã®çš®é¡ãã£ãŠã¯ãã®äºã€ãæ··ãã£ãŠããŸãããšããããŸãããããã®éãã詳ããäŸç€ºããªãã説æãããæã§ããããããããšãã®èšäºã®åéãåå¢ããã®ãç®ã«èŠããŠããã®ã§ãéåžžã«æ®å¿µã§ãã岿ãããŠãã ããã
ãšããããããã§èšãããããšã¯ãéå ·ã䜿ãããšãéå ·ãäœããããšã¯å¥ã®ããšã§ãã UNIX å²åŠãçè§£ããã«ã¯ãã©ã¡ããç¥ãå¿ èŠããããšããããšã§ããéå ·ã®äœ¿ãæ¹ãç¥ããªããšè¯ãéå ·ãäœãããšã¯åºæ¥ãŸããããéå ·ãäœããªããšãã€ãŸã§ã貧匱㪠UNIX ã³ãã³ãã䜿ã£ãæ²èžãããã·ã§ã«ã¹ã¯ãªãããæžãç¶ãã矜ç®ã«ãªããŸãããéå ·ã䜿ãããšãéå ·ãäœããã®äž¡æ¹ãåãã㊠UNIX å²åŠã§ããã¡ãªã¿ã« UNIX å²åŠã®æºæµã®äžåã§ããããœãããŠã§ã¢äœæ³ãïŒåè㯠Software Tools (1976) è P.J. Kernighan, Brian W. PlaugerïŒã¯ãéå ·ãäœãã人ã®ããã®æ¬ã§ãéå ·ã®äœãæ¹ãïŒRatforãšããçããèšèªã§ïŒæžãããŠããŸãããã®æ¬ã«ã¯ãéå ·ã䜿ããæè¡ã§ãããã€ãã®è©±ã¯ã§ãŠããŸããã·ã§ã«ã¹ã¯ãªããã®è©±ã¯ã»ãšãã©ã§ãŠããŸãããBourne ã·ã§ã«ããåã® Thompson ã·ã§ã«ã®æä»£ã§ã¹ã¯ãªããèšèªèœåãå°ãªããæžããããªããšããªããšããã®ãçç±ã®äžã€ã§ãããããã·ã§ã«ã¹ã¯ãªããã®äœ¿ãæ¹ã ãã§ã¯ãªããéå ·ãäœãããšã UNIX å²åŠã®èãæ¹ã«å«ãŸããŠããããšãããããšæããŸãã
ãã°ãã°ãã·ã§ã«ã¹ã¯ãªããã䜿ãã®ã¯ãã㊠Python ã䜿ãããªã©ãã話ãèããŸãããã·ã§ã«ã¹ã¯ãªãããš Python ã¯ã©ã¡ããã䜿ããã§ã¯ãªãçµã¿åãããŠäœ¿ããã®ã§ããbash åŸç¶ãç®æããæ°ããã·ã§ã«ã§ãã Oil ã·ã§ã«ã®éçºè 㯠1000 è¡ã® Python ã¹ã¯ãªãããæžãã®ã§ã¯ãªãã200 è¡ã® Python ã¹ã¯ãªãããš 200 è¡ã®ã·ã§ã«ã¹ã¯ãªãããæžãæ¹ãè¯ããšèªã£ãŠããŸãããéå ·ã䜿ãïŒã·ã§ã«ã¹ã¯ãªãããæžãïŒããšãéå ·ãäœãïŒC èšèªã Python ãªã©ã§ããã°ã©ã ãæžãïŒããéããšããèãæ¹ãããã·ã§ã«ã¹ã¯ãªãããšä»ã®èšèªãšã®äœ¿ãåããçè§£ã§ããã®ã§ã¯ãªãããšæããŸãããŸããéå ·ãäœããèšèªãã©ãã ããã£ãŠããéå ·ã䜿ããã·ã§ã«ã¹ã¯ãªããããªããªããªãçç±ã¯ããã«ãããŸãã
UNIX ãèªçãããšããã C èšèªãš ã·ã§ã«ã¹ã¯ãªããã¯äž¡æ¹ãšãååšããŠããŸããããã®äºã€ã¯å¥œã¿ã§éžã¶ããšãã§ããäºã€ã®èšèªãäœã£ãã®ã§ã¯ãªãäž¡æ¹ãšãå¿ èŠã ã£ãããäœã£ãèšèªã§ããéå ·ãäœã C èšèªã¯ãã®ä»ã®ã³ã³ãã€ã«èšèªãã¹ã¯ãªããèšèªã§ä»£æ¿å¯èœã§ãããéå ·ã䜿ãã·ã§ã«ã¹ã¯ãªããã®ä»£æ¿ã¯ïŒfish ãªã©å¥ã®ææ³ã®ïŒã·ã§ã«ã¹ã¯ãªãããããããŸãããã¹ã¯ãªããèšèªã䜿ã£ãŠã·ã§ã«ã¹ã¯ãªãããšåããããªããšãããããšããŠããã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ããããŸããã䜿ããããããã°ããã»ã©ã·ã§ã«ã¹ã¯ãªãããšäŒŒãææ³ã® DSL ã䜿ããã·ã§ã«ã¹ã¯ãªããã®èãã©ãããŒã«ãªã£ãŠããã ãã§ããã·ã§ã«ã¹ã¯ãªãã颚ã©ã€ãã©ãªã®äœ¿ãæ¹ãèŠããããããªããããã·ã³ãã«ãªã·ã§ã«ã¹ã¯ãªããã䜿ã£ãã»ããè¯ããšæããŸãããïŒ
ãUNIX å²åŠ - ã¹ãããéããšå€åãç¶ããéå ·
å°ãªããªã人ã UNIX å²åŠïŒãœãããŠã§ã¢ããŒã«ïŒãééã£ãŠçè§£ããŠãããããããããééãããã¹ãããéããšããŠãŸãšããŸããã
-
UNIX ã«ãã ãããªã
- ãã㯠UNIX å²åŠãçãŸããäžã€ã® OS ã«ãããªãã
-
UNIX ã³ãã³ãã«ãã ãããªã
- ãã㯠UNIX éçºåæã«äœããããããããªã³ãã³ãã»ããã«ãããªãã
-
POSIX ã³ãã³ãã«ãã ãããªã
- ããã¯å UNIX ã§äºææ§ããã£ã UNIX ã³ãã³ãã®ãµãã»ããã ã
-
èªåã§ã³ãã³ããäœãããšã«ãã ãããªã
- 䜿ããã³ãã³ããæ¢ããäžçã«ã¯å€ãã®ã³ãã³ããããã
-
æ¢åã®ã³ãã³ãã«ãã ãããªã
- æ¢ããŠã䜿ããã³ãã³ãããªãã£ãæãèªåèªèº«ã§ã³ãã³ããäœãã
-
C èšèªã«ãã ãããªã
- ããã¯ã³ãã³ããäœãããã®èšèªã®äžã€ã«ãããªãã驿驿ã§èšèªãéžã¹ã
-
Bourne ã·ã§ã«ã«ãã ãããªã
- ãã㯠UNIX å²åŠãå®è·µããããã®å€ãã®ã·ã§ã«ã®äžã€ãããªãã
-
æšæºã€ã³ã¹ããŒã«ã«ãã ãããªã
- ç°¡åãªã€ã³ã¹ããŒã«äœæ¥ãè¡ãã ãã§ãã©ã®èšèªãã©ã®ã³ãã³ããåãã
åçŽãªè©±ã§ããUNX å²åŠã¯ UNIX ã®å°æ¥ã®çºå±ã朰ããããªå²åŠã§ã¯ãããŸãããå€ã UNIX ã³ãã³ãã«åºå·ãããšããããšã¯ãUNIX ã®æªæ¥ã§èªçããŠãããããããªãæ°ããã³ãã³ããåŠå®ããããšã«ãªããŸããæ¬å®¶ UNIX ã®éçºãçµäºããŠããŸã£ããããUNIX ã³ãã³ããå¢ããããšã¯ãããŸããã§ããããå¥ã®æªæ¥ã§ã¯æ°ãã UNIX ã³ãã³ããèªçããŠãããããããªãããã§ããUNIX ã³ãã³ã㯠UNIX ã®èœåã®å šãŠãåŒãåºããããã§ã¯ãªãã®ã§ãã©ãããŠãæ°ããã³ãã³ããå¿ èŠã«ãªããŸãããããçŠæ¢ããã¯ãããããŸãããUNIX å²åŠã¯æ°ããéå ·ãäœãããšã«å¶éãäžããããšã¯ãããŸãããæ°ããéå ·ãããè¯ã圢ã§äœãèãæ¹ãè¿°ã¹ãŠããã ãã§ãã
UNIX å²åŠãšåæ§ã«ããåéããããŠããã®ã POSIX ããã³ POSIX ã³ãã³ãã§ããUNIX 㯠POSIX ã«åŸã£ãŠäœããã OS ã§ã¯ãããŸãããUNIX ã®èªç㯠1969 幎ãPOSIX ã®èªç㯠1988 幎ã§ããæ¬å®¶ UNIX ããåå²ããããã€ãã®ç¬èª UNIX ãèªçããç§»æ€æ§ãé«ãïŒã©ã® UNIX ã§ãåãïŒã¢ããªã±ãŒã·ã§ã³ãäœãã®ã倧å€ã«ãªã£ãããäœãããã®ã POSIX ã§ãããããã£ãŠå€ãã®çš®é¡ã® UNIX ãäœãããã®ãå ã§ãUNIX ãã³ããŒã¯ UNIX ã®äžéšãšã㊠POSIX ãæ¡çšãããšãã圢ã§ããããã«èšããªã POSIX 㯠OS ã«å¿ èŠãšãããæ©èœã®å šãŠãæšæºåããŠããããã§ã¯ãããŸãããäŸãã°ããã±ãŒãžç®¡çã·ã¹ãã 㯠POSIX æšæºåã®ç¯å²å€ãªã®ã§ OS ããšã«ç°ãªã£ãŠããŸãã
ãã㊠POSIX ã¯æ¡åŒµæ©èœãå®è£ ããããšãçŠæ¢ããŠããŸããããããæ¡åŒµæ©èœã®å®è£ ã劚ããªãããã«æ³šæããŠæšæºèŠæ Œãçå®ãããŠããŸããPOSIX ã³ãã³ã㯠POSIX ãç§»æ€æ§ãé«ããšèªããã³ãã³ãããã³ãªãã·ã§ã³ã®äžèЧã«ãããããã以å€ã®ã³ãã³ãããªãã·ã§ã³ãå®è£ ïŒæ¡åŒµïŒããŠã POSIX éåã«ã¯ãªããŸãããPOSIX 㯠UNIX å²åŠãšåæ§ã«ãæ°ããéå ·ãäœãããšã«å¶éãäžãããããŠããŸãããäŸãã° bash 㯠POSIX ã«æºæ ããŠãªãæ©èœãæã£ãã·ã§ã«ã§ã¯ãªããPOSIX ã·ã§ã«ã®æšæºèŠæ Œã«æºæ ãããªãã〠POSIX ã§å®è£ ãèš±å¯ãããæ¡åŒµæ©èœãæã£ãŠããã·ã§ã«ãšããã®ãæ£ããè§£éã§ãã
ã©ãã§ãåããœãããŠã§ã¢ã¯ OS æšæºã®ã·ã§ã«ãã³ãã³ãã ãã§ã¯ãªããšããäºå®ãç¡èŠããªãã§ãã ãããå€ãã®èšèªãã³ãã³ãã¯ã€ã³ã¹ããŒã«ããã ãã§åããŸããPOSIX ãšã¯ãããããã€ã³ã¹ããŒã«ããã°åãããå®çŸããããã«äœããããããªãã®ã§ãããã®ããã« C ã³ã³ãã€ã©ïŒc99 ã³ãã³ãïŒãæšæºåãããŠããã®ã§ããC ã³ã³ãã€ã©ãæšæºåãããŠããã®ã¯ POSIX ã§äœ¿çšãèš±å¯ãããèšèªã¯ C èšèªã ããšããæå³ã§ã¯ãããŸãããC ã³ã³ãã€ã©ããããã°ãã©ã®ãããªèšèªãã³ãã³ããèã¥ãåŒã«ã³ã³ãã€ã«ããŠäœ¿ããããã«ãªããšããæå³ã§ããã€ã³ã¹ããŒã«äœæ¥ã¯æãšéã£ãŠèªåã§ãã«ãããå¿
èŠããªãããã±ãŒãžãã远å ããã ãã§ããUNIX éçºã®é»ææã« AT&T ã®å€ã®ããŸããŸãªå Žæã§å€ãã®ãœãããŠã§ã¢ãäœãããŠäŸ¿å©ã«ãªã£ãŠãã£ããšããã®ã«ãæè¿ã®ãœãããŠã§ã¢ã®äœ¿çšãå°å°ãããšãäžäœäœãèããŠããã ïŒãšãã話ã§ãã
UNIX ã³ãã³ãã POSIX ã³ãã³ãã ãã䜿ã£ãŠããããšããèãã¯ãUNIX å²åŠã POSIX ã®æ¹éãšç¡é¢ä¿ãšãããããããæ£å察ã®èãæ¹ã§ãããã®ããšã¯ã¡ãããšèª¿ã¹ãŠãšãããããšã§ããUNIX å²åŠã«ã POSIX ã®æšæºèŠæ Œã«ããUNIX ã³ãã³ãã ããPOSIX ã³ãã³ãã ããã䜿ã£ãŠã¯ãããªããšããæ±ºãŸãã¯ãããŸããããããã£ãŠãäžã®äžã«ãããã¹ãŠã®èšèªããã¹ãŠã®ã³ãã³ãããã¹ãŠã®ããã«ãŠã§ã¢ããã¹ãŠã®ãœãããŠã§ã¢ã䜿ãããšã¯ UNIX å²åŠã POSIX ãšççŸãããã®ã§ã¯ãªããããããœãããŠã§ã¢æè¡ãçºå±ãããããã«äœ¿ã£ãŠããã¹ããã®ã§ãã
UNIX å²åŠè ãã¡ã®ä»ã®èããç¥ã
UNIX ã®åµå§è ãã¡ããäœãããããšããŠããããä»äœãããŠããã®ããã調ã¹ãããšã UNIX å²åŠã®çè§£ã®å©ãã«ãªããŸããUNIX ã®åµå§è ãã¡ã¯ãPlan 9 ãšããæ°ãã OS ãéçºããŠããŸãããæ¿æ²»çãªçç±ãããã¯çŸå®çãªçç±ã§ããã®ãããžã§ã¯ãã¯ã»ãŒçµãã£ãç¶æ ã§ããïŒäžå¿ãŸã åãã¯ããïŒãPlan 9 㯠UNIX ããŒã¹ã§ã¯ãªããŒãããæ°ããèšèšãããã®ã§ãã·ã§ã«ã«ã rc ã·ã§ã« ãšãããããã·ã³ãã«ãªã·ã§ã«ãéçºãããŠããŸãããã Plan 9 ã®éçºãæåããŠããã°ãUNIX ã®äžçã®éå ·ã¯å€§ããå€ãã£ãŠããå¯èœæ§ããããŸããã
UNIX ã®åµå§è ã®ã±ã³ã»ãã³ããœã³ãšããã»ãã€ã¯ã¯ãçŸåš Google ã§ Go èšèªã®éçºãããŠããŸãïŒå¿µã®çºã§ãã Google ã«è ãããŠã€ã€ã€ã€ Go ãéçºããŠããã®ã§ã¯ãããŸããïŒãGo ã¯ã¯ã©ãŠãããããã¯ãŒã¯ãµãŒãã¹ã«é©ããŠãããã³ãã³ãã©ã€ã³ããŒã«ã®äœæãã§ããŸããããã¥ã¡ã³ãã FAQ ãããGo ã¯äžŠè¡åŠçããã«ãã³ã¢ã䜿ã£ã䞊ååŠçã«åŒ·ãããããã¯ãŒã¯åããããã·ã³ãæå€§éã«æŽ»çšã§ããããã°ã©ãã®çç£æ§ãé«ããèšèªã§ããããšãããããŸããèšãæãããšããããŸã§ã® UNIX ã«ã¯ãªãã£ãããããã¯è¶³ããªãã£ããã®ãè£ãèšèªã§ããã·ã§ã«ã¹ã¯ãªããã UNIX ã³ãã³ãã§ã¯ãã«ãã³ã¢ã®æ§èœãåŒãåºããããããã¯ãŒã¯ã«ãåå察å¿ããããšãã§ããªããã Go ãå¿ èŠã«ãªã£ããšããããšã§ãã
UNIX å²åŠã«åŸã£ãéå ·ã¯å€ããç¶ããŠããŸããGo ã¯æ°ããæä»£ã«å¯Ÿå¿ãã UNIX å²åŠã®ããã®æ°ããéå ·ïŒèšèªïŒã§ãã
| çšé | UNIX æä»£ | ããã黿æä»¥é | çŸä»£ ïŒã¯ã©ãŠã以éïŒ |
|---|---|---|---|
| ã·ã¹ãã èšè¿°èšèª | C èšèª | C èšèª | C èšèª, Rust |
| ã³ãã³ãå¶åŸ¡èšèª | Bourne, ksh | Bourne, rc, dash, ksh, bash, zsh | dash, bash, ksh, zsh, fish |
| ã³ãã³ãéçºèšèª | C èšèª | C èšèª, C++, Perl, Python | C èšèª, Python, Rust, Go |
| ãŠã§ãã·ã¹ãã éçºèšèª | - | Perl, Python, PHP, Ruby | Python, PHP, Ruby, Go |
| ããŒã¿åŠçèšèª | AWK | AWK, Perl, Python, SQL | Python, SQL, R |
泚æ äžèšã®åé¡ã¯ç¬æãšåèŠã«ããã€ã¡ãŒãžã§ããç°è«ã¯èªããŸããç¹å®ã®åéã¯çç¥ããŸããã
Go ã«ã¯æã® UNIX æä»£ã«ã¯ãªãã£ãç¹åŸŽãããã€ãåããŠããŸããäŸãã° go ã³ãã³ãã¯ãµãã³ãã³ããå©çšããŠããŸãããªãã·ã§ã³è§£æã®æšæºã¢ãžã¥ãŒã«ã® flag ã¯ãã³ã°ãªãã·ã§ã³ããµããŒãããŠããŸãããã«ãã³ã¢ã®æ§èœãåŒãåºãææ³ãæã£ãŠããŸãããããã¯ãŒã¯ã®æ©èœã«å¯Ÿå¿ããŠããŸããRDBMS ãå©çšããããã®æšæºã¢ãžã¥ãŒã«ããããŸããäºææ§ãé«ããããã«éçãã«ããè¡ã倧ããªãã€ããªãçæããŸããããã㯠UNIX æä»£ã«äžäŸ¿ã ã£ããã®ã§ãããUNIX å²åŠã«åŸã£ãŠã±ã³ã»ãã³ããœã³ããæ¹åãããã®ãªã®ã§ããUNIX å²åŠãçè§£ãããã®ãªãã° Go ãç©æ¥µçã«äœ¿ã£ãŠããã¹ãã§ãããããã¡ããä»ã®èšèªã§ãæ§ããŸãããç§ã¯ Go ã¯ã¢ããªã±ãŒã·ã§ã³éçºçšã§ãC èšèªã®ä»£ããã®èšèªã¯ Rust ã®æ¹ãé©åã ãããšæã£ãŠããŸãã
Go ãéçºãããçç±ã®äžã€ã¯ãã«ãã³ã¢ã®æ§èœãç°¡åã«åŒãåºããããã«ããããã§ããå°ãåã«ã·ã§ã«ã¹ã¯ãªããïŒã®ãã€ãã©ã€ã³éšåïŒãèªåçã«äžŠååãããšããè¬æè¡ã話é¡ã«ãªããŸããããã¯ã£ããèšããšããã¯äœ¿ãç©ã«ãªããŸãããäžéãä»çµã¿ã¯ææ¡ããŠããã€ããã§ããããªãŒããŒãããã倧ããããã»ãšãã©ã®ã±ãŒã¹ã§éã«é
ããªããèªåçã«äžŠååãããããã«å¿
èŠãªå®çŸ©ãæåã§æžããã®ãé¢åãªã ãã§ããã·ã§ã«ã¹ã¯ãªããã§ãã«ãã³ã¢ã®æ§èœãå¹çè¯ãåŒãåºããã®ã¯ xargs -P ãããã¯ã°ã©ãŠã³ãããã»ã¹å®è¡ (&) ã«ãã䞊ååã ãã§ãããã€ãã©ã€ã³ã䞊ååãããšããã¢ã€ãã¢ã¯éçãããã«æ¥ããããéœåè¯ãäœãããã±ãŒã¹ä»¥å€ã§ãã«ãã³ã¢ã®æ§èœãåŒãåºãããšã¯åºæ¥ãŸãããã ããããã±ã³ã»ãã³ããœã³ãã¯æ°ãã« Go ãšããèšèªãéçºããããã§ãã
UNIX å²åŠãäžçªè¯ãç¥ã人ç©ãã¡ã¯ãçŸå®ãçããæªæ¥ãèŠãŠããŸããUNIX ã³ãã³ãã«åºå·ããŠãã人ã¯ãUNIX å²åŠã®æ¬è³ªãçè§£ããŠããããéå»ã«ãšããããŠããã ãã§ãã
UNIX å²åŠè ãã¡ãä»ã©ã®ãããªããšãèããŠãããã¯ã圌ãã®çºèšããããããç¥ããã§ããã§ããããäŸãã°ã±ã³ã»ãã³ããœã³ã¯ä»ïŒ2009 幎ã®ã€ã³ã¿ãã¥ãŒïŒ Linux ã䜿ã£ãŠããŸãã
ãUNIXã¯ãã æ»ãã ã ãã§ãªããæ¬åœã«ã²ã©ãèããæŸã¡å§ããŠããã
æ»ãã ã®ã¯ UNIX ã§ãã£ãŠ UNIX å²åŠã§ã¯ãããŸãããåæã¯ãNot only is UNIX dead, it's starting to smell really bad.ãã§ãããã®èšèãèšã£ãããã»ãã€ã¯ã¯ AT&T ãã«ç ç©¶æã®ã¡ã³ããŒã®äžäººã§ããUNIX ã®éçºè
ã§ã¯ãããŸããïŒãRob Pike Respondsãã§ãã®ããã«èªã£ãŠããŸãïŒãã1983 幎ã®è«æãProgram Design in the UNIX Environment ãïŒå
񆊊
ã¯ãã©ã€ã¢ã³ã»ã«ãŒããã³ïŒã§ BSD Unix ã® cat -v ã ls ã³ãã³ãã®ã«ã©ã 衚瀺ã UNIX å²åŠçã§ã¯ãªããšããŠæ¹å€ãã人ç©ã§ãUNIX å²åŠãåºããããã®ãUNIXããã°ã©ãã³ã°ç°å¢ãã®å·çè
ïŒå
񆊊
ã¯ãã©ã€ã¢ã³ã»ã«ãŒããã³ïŒã§ããããUNIX åµå§è
ã«è¿ãç«å Žãã UNIX å²åŠãçè§£ããŠãã人ç©ã§ãããšèšããŸããçŸåšã¯ã±ã³ã»ãã³ããœã³ãšå
±ã« Go ã®éçºãããŠããŸãã
ãUNIXã¯ãã æ»ãã ã ãã§ãªãããã®çºèšã¯ 1991 幎é ã ãšèšãããŠãããã§ãã1991 幎ãšããã®ã¯ AT&T ãåçšè·¯ç·ã«é²ã¿ System V R4 ããªãªãŒã¹ãããSunOSãAIXãHP-UX ãšãã£ã倧æåçš UNIX ãç»å Žããæ¬å®¶ã® UNIX ã倿°ã® UNIX ã«åå²ããææã§ããåçšã§ã¯ãªãå ã® Research Unix ã¯ããã®æçµçã§ãã Version 10 Unix (1989) ãéçºãããUNIX ã®åŸç¶ãç®æããŠãã Plan 9 (1992) ã®éçºãè¡ãããŠããŸãããPlan 9 ã®åæã®ã¡ã³ããŒã¯ã±ã³ã»ãã³ããœã³ãããã»ãã€ã¯ãã¡ã§ãã
ãã®çºèšã®æèã¯ããããããŸããã§ãããããã®ãããªç¶æ³ãèžãŸãããšãUNIX ã®èšèšã¯ããå€ããAT&T ã® System V ç³» UNIX éçºã«æªæ¥ãæããããªããªã£ããBSD Unix ã§åãå ¥ãããããããã¯ãŒã¯ã®æ©èœã¯ããã¹ãŠããã¡ã€ã«ããæºãããŠããã UNIX å²åŠãå®è·µã§ããªããåæ§ã«ã°ã©ãã£ãã¯ããã¡ã€ã«ã§ã¯ãªã UNIX å²åŠãå®è·µã§ããªããçã« UNIX å²åŠãå®è·µã§ãã OS 㯠Plan 9 ã§ãããšããã®èãããã®çºèšã§ã¯ãªãããšæã£ãŠããŸããUnix ã®çã®åŸç¶ OS ã§ãã Plan 9 ã®éçºè ã§ããã° UNIX ãå€ããšèããã®ã¯åœç¶ã§ãããããæãããªåé¡ç¹ã倿ããŠããïŒåœæã®æç¹ã§ïŒ20 幎ãåã® UNIX ãæå 端㮠OS ã§ãããšèããã»ããã©ããããŠããŸããUNIX å²åŠãå®è·µãã OS ãšããŠã¯èœåäžè¶³ãªããã§ãUNIX å²åŠãå®è·µããããã«ãã®å ã®æªæ¥ãžé²ãŸãªããã°ãããŸããã
ããã»ãã€ã¯ã¯ UNIX ãå«ãã«ãªã£ããããUNIXã¯ãã æ»ãã ã ãã§ãªããæ¬åœã«ã²ã©ãèããæŸã¡å§ããŠããããšèšã£ãã®ã§ã¯ãããŸãããUNIX ãç§°è³ãã€ã€ãæ¹å€ãã¹ããšããã¯æ¹å€ãããšãããæè¡è ãšããŠããã¹ãããšãèšã£ãŠããã ãã§ããUNIX ã¯å®æããã OS ã§ã¯ãããŸãããã ãããã Plan 9 ãéçºããŠããããã§ããUNIX ãæ¹å€ãããããããããã»ãã€ã¯ã®çºèšã¯èªããªããšããã®ã§ããã°ãããã¯äœãèããŠããªããã ã®å€ãå®è£ ã® UNIX ã®ä¿¡è ã§ããç¡ããUNIX ã UNIX å²åŠãçè§£ããŠãªããšèšããããåŸãŸãããæ¹å€ãªã©èããããªããšè³ããµãããæ¹å€ã®å 容ã§ã¯ãªãæ¹å€ããäººã«æå¥ãããã ãã§ãæ¹å€ããåŠãŒããšããããšãã§ããªãäººã«æé·ã¯ãããŸããã
è¯ãéå ·ã®èŠã€ãæ¹ãšéå ·ã®éçºæ¹éãå°æ¥æ§
ã·ã§ã«ã¹ã¯ãªããã䜿ããšçŽ æ©ãä»äºãå®äºãããããšãåºæ¥ãŸããããã¯ã·ã§ã«ã¹ã¯ãªãããåªããŠããã®ã§ã¯ãªãã䟿å©ãªéå ·ïŒã³ãã³ãïŒããããããçšæãããŠããããã§ããã·ã§ã«ã¹ã¯ãªããã¯ã³ãã³ããã€ãªããããšã«åªããŠããŸãããçç£æ§ãé«ãã®ã¯ã·ã§ã«ã¹ã¯ãªããã®å瞟ã§ã¯ãªãéå ·ã®å瞟ã§ããéå ·ã¯å€ãã®èšèªã«ãã£ãŠäœãããŠããŸãã
UNIX ã«ä»å±ããŠãããã®ãéå ·ã®å šãŠã ã£ãæä»£ãšã¯éããä»ã¯ããããã®éå ·ã«ããµããŠããŸããããã誰ããç°¡åã«éå ·ãéçºã§ããããã«ãªã£ãä»ãå šãŠãè¯ãéå ·ã§ãããšã¯éããŸãããè¯ããã®ãããã°æªããã®ãããããŸãã«çç³æ··äº€ã®ç¶æ ã§ããè¯ãéå ·ã¯å€§ããªäŸ¡å€ããããããŠãããŸãããæªãéå ·ãéžãã§ããŸããšéã«éå ·ã«æ¯ãåãããŠããŸããŸãã
è¯ãéå ·ãèŠã€ããéµã¯ UNIX å²åŠã®èãæ¹ãçè§£ããããšã§ãããã®èšäºã¯ UNIX å²åŠãçè§£ããå©ããšãªããšä¿¡ããŠããŸããããã§ã UNIX å²åŠãçè§£ã§ããªãå Žåãå€ãã®äººã«é·ã䜿ãããŠããéå ·ãéžã¶ãšè¯ãã§ããããå€ãã®äººã䜿ã£ãŠããéå ·ã¯ OS ã®ããã±ãŒãžç®¡çã·ã¹ãã ã«ç»é²ãããŠããããå€ãã®è§£èª¬èšäºãååšããããGitHub ã®ã¹ã¿ãŒããã®ãããå€ãã£ããããŸãããã¡ããããã¯èªåã§å€æã§ããªããšãã®æçµææ®µã§ããããã±ãŒãžç®¡çã·ã¹ãã ã«ç»é²ãããŠãããšããŠãã¡ã³ããã³ã¹ãããŠãããåé€å¯žåãããããŸããããèšäºãå€ããšãå€ãèšäºã°ããã§ä»ã¯äœ¿ãããŠãªããããããŸããããGitHub ã®ã¹ã¿ãŒãè©±é¡æ§ãããã°ççºçã«äŒžã³ãããšããããŸããæçµçã«ã¯èªåã§äœ¿ã£ãŠè©äŸ¡ãããããããŸãããéå ·ã䜿ããªããã§è¯ãã®ã§ãã£ããã§ã UNIX å²åŠãçè§£ããå¿ èŠããããŸãã
ãããžã§ã¯ãã®æ§è³ªã®éããæ³šæããå¿ èŠããããŸããäŸãã° GNU ãããžã§ã¯ãã¯å®å®æ§ãäºææ§ãéèŠããŠãããå®å¿ããŠé·ã䜿ãç¶ããããšãåºæ¥ãŸãããæ°æ©èœã®è¿œå ãæ¹åã¯ãªããªãè¡ãããŸãããéã«æ°ããæ©èœã®è¿œå ãæ¹åã«ç©æ¥µçãªãããžã§ã¯ãã§ã¯ããã³ãã³äºææ§ãä¿ãããããŒãžã§ã³ã¢ãããããšãã®å¯Ÿå¿ã倧å€ã«ãªãå ŽåããããŸããåçšã§ãããã©ã€ãšã¿ãªïŒç¬å çïŒãªãœãããŠã§ã¢ã¯äœ¿çšããã®ã«ã³ã¹ããããã£ãããå¥çŽçµäºã§äœ¿ããªããªãå ŽåããããŸãã
ããäžã€ã®æ³šæç¹ã¯ããã®éå ·ãã©ãã ãæ±çšçãã©ããã§ããæ±çšçãã©ãããèŠåããã³ãã¯ãä»ã®å Žæãä»ã®éå ·ãšçµã¿åãããŠäœ¿ãããã©ãããèããã°ããããŸããäŸãã°ä»ã®ãããžã§ã¯ããæããæãä»ã®äŒç€Ÿã«ç§»ã£ãæãããªãã¯ãã®éå ·ãå¥ã®å Žæã§äœ¿ãã§ããããïŒéã«ä»ã®å Žæããæ¥ã人ãåãéå ·ã䜿ã£ãŠããå¯èœæ§ãããã§ããããïŒãã®éå ·ãå šãå¥ã®èª°ããäœã£ãéå ·ãšçµã¿åãããŠäœ¿ããã§ããããïŒãããã®è³ªåã«ã€ãšã¹ã§ããã°æ±çšæ§ãé«ãéå ·ãšèšããŸããæ±çšæ§ãäœãéå ·ã¯ã©ãã ãåªããŠããŠã寿åœãçããªã£ãŠããŸããŸãããã ãæ±çšæ§ãäœãéå ·ã¯äœ¿ã£ãŠã¯ãã¡ã ãšããããšã§ã¯ãããŸãããå°ãªããšãä»ã®æ¥åãç¶ããŠããéãã¯äŸ¡å€ãããã§ãããã
ã©ããè¯ããšãæªããšãã§ã¯ãªããèªåã®ãããžã§ã¯ãã«ãã£ããã®ãéžã¶ããšã倧äºã§ãããããã«ããŠããã£ãŠã¯ãããªãã®ã¯ãéæªãèªåã«ãã£ãŠãªãéå ·ãéžãã§ããŸããå«ã«ãªã£ãŠä»ã®äººãäœã£ãéå ·ã䜿ãããšããããŠããŸãããšã§ããããã¯éžãã éå ·ãæªãã®ã§ãã£ãŠããã¹ãŠã®éå ·ãæªããšããããšã§ã¯ãããŸãããéå ·ã®è©äŸ¡ã¯éå ·ããšã«ããå¿ èŠããããŸããéå ·ã䜿ãã®ããããŠããŸããšãèªåã®åã§åºæ¥ãããšãèªåã®éçã«ãªã£ãŠããŸããŸããäžäººã§åºæ¥ãããšã¯å€ãã¯ãããŸãããå šãŠèªåã®åã§ãã£ãŠããããããæéããã£ãŠãè¶³ããŸããã
ãæ°ããUNIXå²åŠãã«ããäžã€ã®å€§ããªä¿®æ£ç¹
ããç¥ãããŠãã UNIX å²åŠã§ã¯ãäžã€ã®ããšã ããããããããã¹ã圢åŒã䜿ãããå¹çãäžãã£ãŠã§ãç§»æ€æ§ãã®ããã«èšãããŠããŸããããç§ã® UNIX å²åŠã®è§£éã«ã¯ãã®ãããªååã¯ãããŸãããå®å šã«ééã£ãŠãããšããã€ããã¯ãããŸããããæ¬è³ªãæããããŠãããççŸç¹ãååšããŠããŸãããããã£ãŠç§ã¯ããããä¿®æ£ããŠããããã§ãããUNIX å²åŠã§ã¯ããè¿°ã¹ãããŠããããå㯠UNIX å²åŠãåãã£ãŠããªããããšèšãããã®ã¯çªãªã®ã§ãç¹ã«éèŠã ãšèãããããã®äžã€ããUNIX å²åŠãåãã£ãäžã§æå³çã«ä¿®æ£ãããšãã®çç±ãæç¢ºã«ããããšæããŸãã
å°ããªããã°ã©ã ãçµã¿åãããã®ã¯é£ããè€éã«ãªãããã
éå
·ïŒã³ãã³ãïŒãã·ã³ãã«ã§ããããšãšãéå
·ã®äœ¿ãããªãïŒèªåã§æžããã·ã§ã«ã¹ã¯ãªããïŒãã·ã³ãã«ã§ãããã¯å®å
šã«å¥åé¡ã§ãã倿°ã®ã³ãã³ããçµã¿åãããã·ã§ã«ã¹ã¯ãªããã¯è€éã«ãªããã¡ã§ããåãåŠçãããæã«ã䜿ãéå
·ãå°ããã·ã³ãã«ã ãšãéå
·ã䜿ã£ãã³ãŒãã¯éã«å€§ããè€éã«ãªããŸããäŸãããªãæ¯è»ã¯ã·ã³ãã«ãªéå
·ã§ããã倿°ã®æ¯è»ãçµã¿åããã£ããããã人圢ã¯è€éã§ããå
šäœãèããå Žåãå°ããéå
·ãå¿
ããããã¹ãã ãšã¯éããŸãããç©äºãã·ã³ãã«ã«ããã«ã¯çµã¿åãããéå
·ã®æ°ãæžããããšã§ããäŸãã° sort ã³ãã³ããš uniq ã³ãã³ããçµã¿åããããã sort -u ã䜿ã£ãæ¹ãã·ã³ãã«ã§ããïŒ2022-09-01 è£è¶³ sort -u 㯠Research Unix ã® Version 7 Unix (1979) ã§åããŠå®è£
ãããããã§ããVersion 6 Unix ã§ã¯ usort ãšããå¥ã®ã³ãã³ãã ã£ããã®ãçµ±åãããããã§ãïŒ
å°ããªéå ·ãå¬ããã®ã¯ãéå ·ãäœãåŽã ã§ããUNIX å²åŠã¯ UNIX éçºã®ããã®å²åŠãªã®ã§ãUNIX ã³ãã³ããã·ã³ãã«ã«ãããšè¯ããšããã®ã¯ãéå ·ãäœãåŽãã®è«çãªã®ã§ããå°ããªéå ·ãçµã¿åãããŠäœ¿ããšããã®ã¯å°éçã§é£ããè¡çºã§ããUNIX ã¯ããã°ã©ãã®ããã® OS ã§ãããããé£ããéå ·ã®çµã¿åãããããåºæ¥ãŠåœç¶ãšããèãæ¹ã§ããããéå ·ã䜿ãåŽãããããã°äŸ¿å©ãªæ©èœãæã€ã³ãã³ããäœ¿ãæ¹ãæ¥œã§ãã倧ããªã·ã§ã«ã¹ã¯ãªãããã·ã³ãã«ã«æžãã®ã§ããã°ããããªãã®æè¡ãå¿ èŠã§ãããã€ã¯ããµãŒãã¹ã®äŸã§ãå°ãããµãŒãã¹èªäœã¯ã·ã³ãã«ã§ãã£ãŠãããããçµã¿åãããå Žåã«è€éã«ãªããšããã®ã¯ãã¡ãªãããšããŠããç¥ãããŠããŸããå°ããªããã°ã©ã ã«éãã£ããå¹çãããã£ãããšãããã¡ãªããã¯ãããŸããã
éå ·ã䜿ã£ãŠæ¥œãããããšèšãã®ã«ããã®éå ·ã®äœ¿ãããªãã«èšç·Žãæè²ãå¿ èŠã§ã¯æ¬æ«è»¢åã§ãã倧ããè€éãªã·ã§ã«ã¹ã¯ãªããã¯ãã¹ããå¿ èŠã«ãªã£ãŠããŸããããããããã¹ãæžã¿ã®å€§ããªããã°ã©ã ã䜿ã£ãŠãçãã·ã§ã«ã¹ã¯ãªãããæžãæ¹ãä¿¡é Œæ§ãçç£æ§ãé«ããªããŸãã
ãã®ãããªåé¡ãããã®ã«ããªããå°ããããã°ã©ã ã«ããããšããèãæ¹ã UNIX å²åŠãšããŠåºãŸã£ãã®ã§ããããïŒç§ãèŠã€ããäžã§ UNIX ãšå°ããããã°ã©ã ã®ã€ãªãã㯠UNIX ã®æåã®è«æ 1974 幎㮠The UNIX TimeSharing System ã«ãããŸãããã®äžã§ã±ã³ã»ãã³ããœã³ã¯ UNIX ã®èšèšã®èæ ®æ¬¡é ãšããŠæ¬¡ã®ãããªãã®ããã£ããšè¿°ã¹ãŠããŸãã
- ããã°ã©ã ãæžãããã¹ãããå®è¡ããããšã容æãªã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã
- ã·ã¹ãã ããã³ãœãããŠã§ã¢ã®ãµã€ãºã®å¶çŽã«ããªããããçµæžçã§ãšã¬ã¬ã³ããªèšèš
- UNIX èªèº«ã§ UNIX ãã¡ã³ããã¹ã§ããããš
ãã® 2 ã®ããµã€ãºã®å¶çŽã«ããªããããçµæžçã§ãšã¬ã¬ã³ããªèšèšããå°ããããã°ã©ã ã«é¢ä¿ããŠããŸãããçµæžçããšããã®ã¯ã·ã¹ãã ãªãœãŒã¹ãé£ããªããšããæå³ã ãšæãããŸãããç§ã¯ãœãããŠã§ã¢ã®èšèšäºé ã®è©±ã§ãçµæžç (economy)ããšããçšèªã䜿ã£ãŠããããšã«éåæãæããŸããããã®çç±ã¯ 1978 幎ã®è«æ UNIX Time-Sharing System: Forward ã«æžãããã¹ã¢ãŒã«ã»ã€ãºã»ãã¥ãŒãã£ãã«ãšçµæžåŠè ã·ã¥ãŒããããŒãšã®ã€ãªããããæããã«ãªããŸãããã©ããã 1973 幎ã«çµæžåŠè ãšã«ã³ã¹ãã»ããªãŒããªããã»ã·ã¥ãŒããã㌠ãåºçãã Small Is Beautiful: A Study of Economics as if People mattered ãš 1973 幎ã«çºçããç¬¬äžæ¬¡ãªã€ã«ã·ã§ãã¯ã§ãçµæžçãã¯åœææ³šç®ã济ã³ãŠããçšèªã ã£ãããã§ãã
ã€ãŸãã¹ã¢ãŒã«ã»ã€ãºã»ãã¥ãŒãã£ãã«ã®èãæ¹ã¯ãåœæã®æµè¡ãèšèã«åœãŠã¯ããã ãã§ãæåãã UNIX å²åŠã衚ãé©åãªè¡šçŸã§ã¯ãªãã£ãã®ã ãšæããŸããåœæã®ã³ã³ãã¥ãŒã¿ã®æ§èœã¯äœã UNIX å²åŠã®æ¬è³ªã§ã¯ãªããªãããå°ããããã°ã©ã ã«ããããåŸãŸããããããããå°ããããã°ã©ã ãæžãããšã UNIX å²åŠã ãšããèããåºãŸã£ãã®ã§ããããä»ãšãªã£ãŠã¯å°ããããã°ã©ã ã«ã¡ãªããã¯ãããŸãããã±ã³ã»ãã³ããœã³ãèšèšãã Go ã¯å°ããããã°ã©ã ãçæããŸããããµã€ãºã®å¶çŽã«ããç¡é§ã®ãªãã·ã³ãã«ã§ãšã¬ã¬ã³ããªèšèšãçãŸããã®ã¯äºå®ã ãšæããŸãã UNIX å²åŠãšã®çŽæ¥ã®é¢ä¿ã¯ãªããšæãããŸãã
ãããã UNIX åµå§è ã®äžäººã§ããããã«ãã€ã® UNIX å²åŠã§ã¯ãäžã€ã®ããã°ã©ã ã¯äžã€ã®ããšãããããšã¯èšã£ãŠããŸãããå°ããªããã°ã©ã ã«ããããšã¯èšã£ãŠããŸãããå°ããªããã°ã©ã ã«ãããšèšã£ãŠããã®ã¯ã¬ã³ã«ãŒãºã® UNIX å²åŠã§ããäžã€ã®ããšãããããšãšãå°ããªããã°ã©ã ã«ããããšã¯æå³ãå šãéããŸãã
ã§ã¯ãäžã€ã®ããšããšã¯äžäœã©ã®ãããªãã®ã§ããããïŒ äžã€ã®ããšã ãããã£ãŠããªã UNIX ã³ãã³ãã¯ããã€ããããŸããäŸãã° sed ã³ãã³ãã¯ãæååã®è¿œå ïŒaïŒã眮æïŒsïŒãåé€ïŒdïŒãšãã£ãè€æ°ã®ããšãããŠããŸããrm ã³ãã³ãã¯éåžžãã£ã¬ã¯ããªãåé€ã§ããªãã®ã«ã-r ãªãã·ã§ã³ãã€ããå Žåã¯ãã£ã¬ã¯ããªãå«ããŠãã¹ãŠã®ãã¡ã€ã«ãåé€ããŸããä¿®æ£æ¥æãæŽæ°ãã touch ã³ãã³ãã¯ãã¡ã€ã«ãååšããªãæã«ãšã©ãŒã«ãªããäœæããŸããls ã³ãã³ãããœãŒãæ©èœããããŸãã find ã³ãã³ããå€ãã®ããšãããŠããŸããtest ([ ]) ã³ãã³ãã§ããããã¡ã€ã«ã®ååšãã§ãã¯ãæ°å€ãæååã®æ¯èŒãšãã£ãè€æ°ã®ããšãããŠããŸãããäžã€ã®ããšããäœãæå³ããã®ãããããªããŸãŸãäžã€ã®ããšãããã£ããããããšèŠåœéãã®ããšãèããŠããŠãæéãç¡é§ã«æµªè²»ããã ãã§ãã
ãããã£ãŠäºå®äžæå³ã®ãªããã®ãšãªã£ãŠãããã®èšèãä¿®æ£ããŸãããšãã£ãŠãããã¿ã«å€§ããªç©ãäœããšããæå³ã§ã¯ãããŸããããäžã€ã®ããšããšãã誰ãå®ã£ãŠããªãææ§ãªåºæºããå°ããªããã°ã©ã ããšããäœã®ã¡ãªããããããããªãåºæºãããããšããããšã§ããUNIX å²åŠã§éèŠãªã®ã¯ã¢ãžã¥ãŒã«åãšæ§æå¯èœæ§ã§ãããããå®çŸã§ããŠããéãããã°ã©ã ã¯å€§ãããŠãè¯ããšããããšã§ããããã°ã©ã ãã·ã³ãã«ã«ããã®ã§ããã°ãããã°ã©ã ã®å éšãã¢ãžã¥ãŒã«åããã°ååã§ããä»ã¯ããã°ã©ã ã䜿ãåŽãã·ã³ãã«ã«äœ¿ããã«ã¯ã©ããããïŒãèããã¹ãã§ãã
ãªããããæç€ºçã«ä¿®æ£ãããšèšã£ãŠããã®ããšãããšãæªçšãã人ãããããã§ããä»ã§ã¯ Systemd ã¯æçãªãã®ãšããŠåºãæ¡çšãããŠããŸãããåœå㯠UNIX å²åŠã«åãããšããŠå€§ããªè«äºã«ãªããŸãããç§ãã©ã¡ãããšèšãã° Systemd ã¯å°ã倧ãããã§ããã£ãšã·ã³ãã«ã«ã§ããã®ã§ã¯ãªãããšæã£ãŠããã®ã§ãããSystemd ã«å察ããçç±ãšããŠãã¡ãªã®ã¯ãäžã€ããšãããŠããªããã UNIX å²åŠã«åããŠããééã£ãŠããããšããè«çã§ãããäžã€ã®ããšããããŠãªãæçãªã³ãã³ã㯠UNIX èªäœã«ãããããã§çç±ã«ã¯ãªããŸããããããäžã€ã®ããšããæ£ããæ¹æ³ã§ããã° UNIX å²åŠãšããæš©åšã«é Œãããšããããããã¡ãªãããèšããã¯ãã§ãããäžã€ã®ããšã«ãã«ã¡ãªããã¯ãªãã£ãããçµå± Systemd ã¯åºãæ®åããŸããã
ã·ã³ãã«ã§å°ããªéå ·ã¯äœ¿ãã®ãç°¡åã§ããããã®éå ·ã䜿ã£ãŠäœã£ããã®ãã·ã³ãã«ã«ãªããšã¯éããŸãããç°¡åãªéå ·ã§ã䜿ããšè€éã«ãªãããšããããšããããšç¥ã£ãŠããå¿ èŠããããŸããã·ã§ã«ã¹ã¯ãªããã§ãã£ãŠå€§ããªãœãããŠã§ã¢ãã·ã³ãã«ã«äœãããã«ã¯ããããªãã®æè¡ãå¿ èŠã§ããã·ã§ã«ã¹ã¯ãªããã¯å€§ããããããªãã®ã§ãéå ·ã䜿ãåŽïŒã·ã§ã«ã¹ã¯ãªããïŒãå°ããããããã«ãéå ·ã®æ¹ïŒã³ãã³ãïŒã倧ããããå¿ èŠããããŸããäœè«ã§ããã·ã³ãã«ãšç°¡åã¯ç°ãªãæå³ãæã€èšèã§ãããã®èšäºã§ã¯è©³ãã解説ããŸããããéèŠãªèãæ¹ãªã®ã§ãã·ã³ãã«ãã®å¿ èŠæ§ããªã©ã§è©³çްã確èªããŠãã ããã
ãã€ããªããŒã¹ã®ããŒã¿åœ¢åŒãçŠæ¢ããã®ã¯çŸå®çã§ã¯ãªã
äžè¬çãªååãšããŠããã¹ã圢åŒãåªå ããæ¹ãè¯ãã®ã¯å€ãããŸãããããã zip 圢åŒã gif 圢åŒããååšããŠããªãã£ã 1980 幎代ãšã¯éããä»ã¯ãã€ããªããŒã¹ã§ãã£ãŠãæ°å€ãã®æšæºåããã圢åŒãããã¡ã¯ãã¹ã¿ã³ããŒãã«ãªã£ã圢åŒããããŸããããã¹ã圢åŒã ãã§ã¯ãªããããã®ãã€ããªåœ¢åŒã䜿çšããŠãããšæç¢ºã«ããŸããå®éãããã®ãã€ããªåœ¢åŒã¯åºã䜿ãããŠããç§»æ€æ§ãé«ããã³ãã³ããã©ã€ãã©ãªãå å®ããŠããããããã€ããªåœ¢åŒãšããã ãã§äžåŸã§æåŠããã®ã¯çŸå®çã§ã¯ãããŸããã
ããã¹ã圢åŒã¯äººéãèªã¿æžããããã圢åŒã ãšããèšãããŸãããå®éã®æã人éãããã¹ã圢åŒãç°¡åã«èªã¿æžãã§ããã®ããã¹ããšãã£ã¿ãããããã«ãããŸãããããã¹ã圢åŒã ããç°¡åãªã®ã§ã¯ãªãåã«ããã¹ã圢åŒã«å¯Ÿå¿ããéå ·ãå€ããšèšãã ãã§ããæšæºçãªç»å圢åŒã¯ã°ã©ãã£ãã¯ãœãããããã°ç°¡åã«èªã¿æžãããããšãã§ããŸãããã€ããªåœ¢åŒã§ããããæ±ãé©åãªéå ·ãããã°ç°¡åã«èªã¿æžãã§ããŸããæã¯ãœãããŠã§ã¢å°çšã«ç¬èªã®ãã€ããªåœ¢åŒãäœããããããŸããã§ããããä»ã¯éã§ãæšæºçãªãã€ããªåœ¢åŒããã£ãŠããã®åœ¢åŒã«ãœãããŠã§ã¢ã察å¿ããŠããŸãã
ã©ã®ãããªå Žåã«ããã¹ã圢åŒãé©åã§ãã©ã®ãããªå Žåã«ãã€ããªåœ¢åŒãé©ããŠããã®ãåºæºãå¿ èŠãããããŸãããäŸãã°ã³ã³ãã¥ãŒã¿ã ãã§ã¯ãªã人éãããã¹ããšãã£ã¿ã§èªã¿æžãããããªããããªããŒã¿ã¯ããã¹ãããŒã¹ã®åœ¢åŒãè¯ãã§ããããç»åããŒã¿ãåç»ããŒã¿ãïŒæ¥œèã§ã¯è¡šããªãïŒé³å£°ããŒã¿ãªã©ã¯ãããã¹ããšãã£ã¿ã§èªã¿æžãããããšã¯æããªãã®ã§ããã¹ã圢åŒã«ããå¿ èŠã¯ãããŸãããMarkdown ã®ãããªã·ã³ãã«ãªããã¥ã¡ã³ãã§ããã°ããã¹ã圢åŒãè¯ãã§ãããããªããããã¹ã圢åŒããããªãã°ããŸã 人éãçŽæ¥ããã¹ããšãã£ã¿ã§èªã¿æžãããããªããããããŸãããããã MS Word ã®ãããªãã®ã«ãªãã°ããããããšãããã¹ã圢åŒïŒXMLïŒã ãšããŠã人éãããã¹ããšãã£ã¿ã§èªã¿æžãããããªããããªãã®ã§ã¯ãããŸãããXML ã¿ã°ã®æå³ãçè§£ããŠé ã®äžã§è¡šç€ºçµæãæ³åã§ãã人ã¯ããŸããã
ããŒã¿ããŒã¹ã®ãããªãã®ã¯äžèŠããã¹ã圢åŒã ãšè¯ãããã«æãããããããŸãããäŸãã°ããã¹ãããŒã¹ Recfiles 圢åŒã®ãã¡ã€ã«ã䜿ã£ãŠããŒã¿ããŒã¹ãæ±ã GNU Recutils ãšãããããžã§ã¯ãããããŸããåçŽãªäŸã§ããã°ç¢ºãã«ããã¹ããšãã£ã¿ã䜿ã£ãŠèªã¿æžãã§ããã®ã§ãããå®å šãªä»æ§ãææ¡ããŠééããããšãªãæäœæ¥ã§æžãæããã®ã¯å°ã泚æãå¿ èŠã«ãªãã§ããããRecfiles ã¯ããã¹ããã¡ã€ã«ã§ããäžè¬ç㪠UNIX ã³ãã³ãã䜿ã£ãŠæ£ããç·šéããã®ã¯å€§å€ã§ããã¡ãã£ãšééãããšç°¡åã«ããŒã¿ããŒã¹ãå£ããŠããŸããŸããçµå±ãéå ·ãšããŠã®å©äŸ¿æ§ãæ±ãããš Recfiles å°çšã®ã³ãã³ããå¿ èŠãšãªããŸããèªã¿æžãã«å°çšã®ã³ãã³ããå¿ èŠãªã®ã§ããã°ããã¹ã圢åŒãéžã¶çç±ã¯ãããŸãããããŒã¿ããŒã¹ã§ããã¹ã圢åŒã§ãã£ãŠã»ããã®ã¯ãããŒã¿ãã§ãã£ãŠãããŒã¿ããŒã¹ãã¡ã€ã«ãã§ã¯ãªããšããããšã§ããèŠããã«ããã¹ã圢åŒã®ã€ã³ããŒããšãšã¯ã¹ããŒãã®æ©èœããããã°ããŒã¿ããŒã¹ãã¡ã€ã«ã¯ãã€ããªåœ¢åŒã§åé¡ãªããšããããšã§ããå®éãããã¯ãã€ã³ããã¯ã¹ãä¿¡é Œæ§ã®ããšãèãããšããŒã¿ããŒã¹ãã¡ã€ã«ã¯ãã€ããªã®ã»ããé©åã§ãã
ããã«ãã€ã® UNIX å²åŠãšã¬ã³ã«ãŒãºã® UNIX å²åŠã¯ãäž¡æ¹ãšãããã¹ã圢åŒããã€ããªåœ¢åŒã«èšåããŠãããšããããããŸãããå®ã¯å€§ããªéãããããŸããããã«ãã€ã® UNIX å²åŠã§ã¯ããã°ã©ã ã®å ¥åºåã«ããã¹ãããŒã¹ã®ã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšãããšèšã£ãŠãã®ã«å¯ŸããŠãã¬ã³ã«ãŒãºã¯ããã¹ãããŒã¹ã®ãã¡ã€ã«ã䜿çšãããšèšã£ãŠããæã§ããããã«ãã€ã® UNIX å²åŠã§ã¯ããã°ã©ã ã®æ§æå¯èœæ§ã®è©±ãããŠãããã¬ã³ã«ãŒãºã¯ããŒã¿ã®ç§»æ€æ§ã®è©±ãããŠããã®ã§å šãå¥ã®è©±ã§ããå ã UNIX ã¯ç§»æ€æ§ããªãã£ã OS ã§ç§»æ€æ§ã¯åŸä»ã§ãããããã£ãŠç§»æ€æ§ã®é«ãã¯ãœãããŠã§ã¢ã«ãšã£ãŠéèŠã§ãããç§»æ€æ§ã¯ UNIX å²åŠãšã¯ç¡é¢ä¿ãªã®ã§ãããã€ããªããŒã¹ã®ãã¡ã€ã«ã䜿ã£ãŠãããšããŠãããã®å ¥åºåãããã¹ãããŒã¹ã§ããã°ãä»ã®ããã°ã©ã ãšã®é£æºã®ããããã¯å€ãããŸãããSQLite ã¯ãã€ããªããŒã¹ã®ãã¡ã€ã«ã䜿ãããŒã¿ããŒã¹ãœããã§ããããã®å ¥åºåã¯ããã¹ãããŒã¹ãªã®æ§æå¯èœæ§ãååã«æºãããŠããŸãã
ãã ãã·ã§ã«ã¹ã¯ãªããåã³ UNIX ã³ãã³ããæ±ã圢åŒã¯ããã¹ã圢åŒããŒã¹ã®ãã®ã«ãããšè¯ãã§ãããããªããªãã·ã§ã«ã UNIX ã³ãã³ãã¯ãã€ããªïŒæ£ç¢ºã«ã¯ \0ïŒãæ±ããªãããšãããããã§ããå®éã®æããã¯åã«ã·ã§ã«ã¹ã¯ãªããã UNIX ã³ãã³ãã®æ¬ ç¹ã§ãããã£ãšéèŠãªåé¡ã¯ããã¹ã圢åŒã®ãã©ãŒããããå³å¯ã«å®çŸ©ãããŠããªãããšã§ããäŸãã°ããŒã¿ã®äžã«æ¹è¡æåãå«ãŸããŠããå Žåã¯ã©ãããã°ããã§ããããïŒ ãããã®æåããšã¹ã±ãŒããããšããåé¿çã¯ããã«æãã€ããŸããäŸãã° Oil ã·ã§ã« ãããžã§ã¯ãã§ã¯ãQSN: A Familiar String Interchange Formatããšããæåãªãã©ã«ãææ¡ããŠããŸãããããçŸåšã®ã·ã§ã«ã UNIX ã³ãã³ã㯠QSN ã®ãããªãã®ãé©åã«ãµããŒãããŠããŸãããæåã«ãšã¹ã±ãŒãã®ã«ãŒã«ããã¡ããšæ±ºãŸã£ãŠããã°ããã£ããšæããŸãããæ®å¿µãªããšã«ãã®ãããªã«ãŒã«ãå®çŸ©ãããšãªã UNIX ã³ãã³ãã¯éçºãããŸããããããã·ã§ã«ã¹ã¯ãªããã®çœ ã«ã€ãªãã£ãŠããŸããããã¯è§£æ±ºããŠãããªããã°ãããªãã·ã§ã«ã¹ã¯ãªããã£ã³ã°ã®èª²é¡ãªã®ã§ããããã®è©±ãããã«æžãã«ã¯çãããŸãã
ãã®è©±é¡ã¯å°œããããšããããŸããããã²ãšãŸããã®èšäºã§ã¯ããã¹ãããŒã¹ã®åœ¢åŒãåªå ãããã®ã®ãæšæºçãªãã€ããªåœ¢åŒã䜿çšããŠè¯ããšæç¢ºã«ããŠãããŸãã
髿§èœãªããŒããŠã§ã¢ã䜿ã£ãŠãé«ãç§»æ€æ§ãé«å¯¿åœãå®çŸãã
ãå¹çããç§»æ€æ§ãããããããããèšã£ãŠããã®ã¯ã¬ã³ã«ãŒãºã ãã ãšæãã®ã§ãããããã¯ãå¹çïŒæ§èœïŒãé«ãã·ã¹ãã ã¯ç§»æ€æ§ãäœããªãããšééã£ãŠè§£éãããããªãæçŸ©ã§ããããã¯åœæã®æä»£èæ¯ã«å®å šã«äŸåããæçŸ©ã§ãçŸä»£ã«ã¯å šãåœãŠã¯ãŸã£ãŠããªãã®ã§ä¿®æ£ããŸãã
ç§»æ€æ§ãéèŠãããšèšã£ãŠããçç±ã¯ãå¹çãè¯ãã·ã¹ãã ã¯ç§»æ€æ§ãäœããããã§ã¯ãªããããŒããŠã§ã¢ã®ç¹æ®æ©èœã䜿ã£ãŠå¹çãäžãããšç§»æ€æ§ãäœããªããããã§ããå¹çããããã©ããã¯è«ç¹ã§ã¯ãªããããŒããŠã§ã¢ã®ç¹æ®æ©èœã䜿ã£ãŠãããã€ã³ãã§ããããããã®æå³ã§ãã£ããšããŠãçŸä»£ã«ã¯åœãŠã¯ãŸããŸããããã®çç±ã¯ããŸããŸãªæœè±¡åã¬ã€ã€ãŒã«ãã£ãŠå®è£ ã®è©³çްãã€ãŸãã©ã®ãããªããŒããŠã§ã¢ã䜿ã£ãŠããããæ°ã«ããªããŠè¯ããªã£ãããã§ããæœè±¡åã¬ã€ã€ãŒãšã¯ãå ·äœçã«ã¯ OS ã®äžéšãšããŠæ©èœãããã©ã€ããã©ã€ãã©ãªïŒOpenGL ãªã©ïŒãèšèªãã©ãããŒãªã©ãšåŒã°ãããäœãã®éã«å ¥ã£ãŠãããœãããŠã§ã¢ã®å±€ã®ããšã§ãç§»æ€æ§ãäºææ§ãªã©ã®åé¡ã解決ããããã«ãã䜿ãããŠããŸããçŸåšã® OS ã®é«ãç§»æ€æ§ãäºææ§ã®å®çŸã¯ãã®æœè±¡åã¬ã€ã€ãŒã«ãããã®ãã»ãŒå šãŠã§ãã
ã¬ã³ã«ãŒãºïŒX Window System ã®éçºããŒã ã«å±ããŠããïŒãæ°ã«ããŠããæ§èœãšã¯äž»ã«ã°ã©ãã£ãã¯ã¢ã¯ã»ã©ã¬ãŒã¿ã«é¢ãããã®ïŒã ãïŒïŒã§ãã1980 幎代ã¯ãŸã OpenGLïŒ1992 èªçïŒ ããç»å ŽããŠãªãæä»£ã§ãé«ãæç»æ§èœãåºãããã«ãOS ããµããŒãããŠãªãã€ã³ã¿ãŒãã§ãŒã¹ãããããŒããŠã§ã¢ã®ç¹æ®æ©èœãçŽæ¥äœ¿çšããŠãããããç§»æ€æ§ãäœããªã£ãããšããã®ããå¹çããç§»æ€æ§ãã®çå®ã§ããã°ã©ãã£ãã¯ã¢ã¯ã»ã©ã¬ãŒã¿ãšããã GPU åéã¯çŸåšãæ¯èŒç倧ããå€åããŠããåéã§ãããç¹ã« 1980 幎代ãã 2000 幎代ããããŸã§ã®éã¯ãçŽç·ãç©åœ¢ã®æç»ãªã©ã®åçŽãª 2D ã°ã©ãã£ãã¯æ©èœãããããªãŽã³ããã¯ã¹ãã£ãããã³ã°ãªã©ã® 3D ã°ã©ãã£ãã¯æ©èœãŸã§ãçæéã§å€§ããé²åããæä»£ã§ãããOS ã¯ãã®æ¥éãªå€åã«å¯Ÿå¿ããããŠããããã°ã©ãã£ãã¯ã«é¢ãã OS ã®æšæºã€ã³ã¿ãŒãã§ãŒã¹ã¯ãŸã ååã«ç¢ºç«ããŠããŸããã§ãããOpenGL ãèªçããŠãªã 1980 幎代ã¯ãªãããã§ãã
OS ã®å®æåºŠãé«ããªã£ãä»ã§ã¯ãã»ãšãã©ã®ããŒããŠã§ã¢ã¯æœè±¡åãããŠãããå¹çããç§»æ€æ§ã¯éå»ã®ãã®ãšãªã£ãŠããŸããæœè±¡åãšããã®ã¯å ·äœçã¯å®è£ ãæ°ã«ããªããŠãããšããããšã§ããèšãæãããšã髿§èœãªããŒããŠã§ã¢ãæèŒãããŠããã°ãã®æ§èœã掻ãããããã§ãªãå Žåã§ããããªãã®æ§èœãåããã¢ããªã±ãŒã·ã§ã³ã¯ã©ããªããŒããŠã§ã¢ã䜿ã£ãŠãããæ°ã«ããªããŠè¯ãããšããããšã§ãããŸããæœè±¡åã¬ã€ã€ãŒãšããä»çµã¿ããªãšãããŒããŠã§ã¢ã®æ§èœãåŒãåºããŸããããªããªããã©ãã ã髿§èœãªããŒããŠã§ã¢ãæèŒããŠãããšããŠããã©ã®ããŒããŠã§ã¢ã§ãåãå ±éã®æ©èœãã䜿ããªããšããããšã«ãªã£ãŠããŸãããã§ãããã®ãããªãœãããŠã§ã¢ã®å±€ã¯ã³ã³ãã¥ãŒã¿ã®æ§èœãåŒãåºãããã®ä»çµã¿ã§ãããšãèšããŸãã
æœè±¡åã®æŠå¿µã¯ããŒããŠã§ã¢ã«é¢ãããã®ã ãã§ã¯ãããŸãããèšèªãã©ã€ãã©ãªãã©ãããŒã«ãã£ãŠãWindows ãš Linux ã®éããåžåããŠããããMySQL ã PostgreSQL ãšèšã£ãããŒã¿ããŒã¹ã®éããåžåããŠããããšãããŸããŸãªç°å¢ã®éããåžåããåäžã®ãœãŒã¹ã³ãŒãã§ãã®ãŸãŸå¥ã®ç°å¢ã§ã¢ããªã±ãŒã·ã§ã³ãåãããã«ãªã£ãŠããŸãããã®ãããªãã®ããªããã°ç¹å®ã®ãœãããŠã§ã¢ãæè¡ã«é床ã«äŸåããŠããŸããã³ããŒããã¯ã€ã³ãšãªã£ãŠããŸããŸããããæ¢åã®ãœãããŠã§ã¢ã§ç°å¢ã®éããåžåããããŠããªãã®ã§ããã°ãèªåã§ãã®éããåžåãããšè¯ãã§ããããäŸãã°ã·ã§ã«ã¹ã¯ãªããã§ãã€ã³ã¿ãŒããããããã¡ã€ã«ãååŸããæã«ãwget ã³ãã³ããš curl ã³ãã³ãã®ã©ã¡ãã§ãåããã㪠get 颿°ãšããã©ãããŒãäœãããšã§ãåäœããç°å¢ãå¢ãããã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ã寿åœãæ¹åããããšãåºæ¥ãŸãã
ãã®ããã«æœè±¡åã¬ã€ã€ãŒã¯å€§ããªã¡ãªãããããä»çµã¿ã§ããã1980 幎代ã«ããŸãçšããããŠããªãã£ãçç±ã®äžã€ã¯ã©ãããŒãå ¥ãããšã«ããé床äœäžã§ããåœæã¯éã«ãã®çšåºŠã®ãœãããŠã§ã¢ã®å±€ãå ¥ãã ãã§ãå¹çã®äœäžãæ°ã«ããŠããæä»£ã§ãããã³ã³ãã¥ãŒã¿ã®æ§èœãåäžããçŸä»£ã§ã¯ããã®çšåºŠæã«ããå¿ èŠã¯ãããŸããããã®æå³ã§ãïŒã©ãããŒã«ããïŒå¹çïŒäœäžïŒãããç§»æ€æ§ããéèŠãããšããã®ã§ããã°ä»ãåœãŠã¯ãŸããŸããæœè±¡åãè¡ããªãå Žåãå ·äœçãªããŒããŠã§ã¢ã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ïŒAPI ãã³ãã³ãïŒãçŽæ¥äœ¿ãããšã«ãªãã®ã§ãç§»æ€æ§ã倧ããäœäžããŠããŸããŸãã
ãœãããŠã§ã¢ããŒã«ã®ææ³
以äžã®å 容ã¯ãããã«ãã€ã® UNIX å²åŠããå ã«ãããé©åã ãšæããã説æã«ä¿®æ£ãããã®ã§ããããã«ãã€ã¯ AT&T ã® UNIX ã®åµèšè ã®ã¡ã³ããŒã®äžäººãªã®ã§ UNIX å²åŠã®åå žã«æãè¿ããã®ã§ããæãå€ã UNIX å²åŠã§ãããæä»£ã®æµãã«åœ±é¿ãã§ã«ããæœè±¡çãªè¡šçŸãšãªã£ãŠãããããå ã®æå³ãšå€§ããç°ãªããããªã¬ãã«ã®ä¿®æ£ã¯ãããŸããã
i. ããã°ã©ã ã¯äžãããã圹å²ããã£ããããªã
(i) åã ã®ããã°ã©ã ã¯äžãããã圹å²ããã£ããããªãããã«ãããç°ãªã圹å²ã®ä»äºããããªããæ°ããæ©èœã远å ããŠå€ãããã°ã©ã ãè€éã«ããã®ã§ã¯ãªãããŸã£ããæ°ããããã°ã©ã ãäœãã
ãªãªãžãã«
(i) åã ã®ããã°ã©ã ã¯1ã€ã®ããšããã£ããããããã«ãããæ°ããä»äºããããªããæ°ããæ©èœã远å ããŠå€ãããã°ã©ã ãè€éã«ããã®ã§ã¯ãªãããŸã£ããæ°ããããã°ã©ã ãäœãã
倿Žçç±ãšè§£èª¬
ãã§ã«æžããããã«ãäžã€ã®ããšãã«æç¢ºãªåºæºããªã以äžãããã«ãã ãã£ãŠãæå³ããããŸãããå®éã«ã¯ 1 ã€ããšãããŠããã³ãã³ãã¯ã»ãšãã©ãªãã®ã§ããããäžãããã圹å²ããšèšãæããæ¹ãé©åã§ãã圹å²ã¯ååã«ãã£ãŠäžããããŸããsed 㯠stream editor ãªã®ã§ã¹ããªãŒã ãç·šéããããšãäžãããã圹å²ã§ããawk 㯠awk programming language ã®å®è¡ãäžãããã圹å²ã§ãããµãã³ãã³ãã䜿çšããŠã UNIX å²åŠãšã¯ççŸããŸãããäŸãã° git 㯠git ã䜿ã£ãããŒãžã§ã³ç®¡çã®ãµãã³ãã³ããåãæ±ãããšãäžãããã圹å²ã§ãããµãã³ãã³ãã¯ãã®ååã§äžãããã圹å²ããã£ããããªããŠããŸãã
ååã«ãã£ãŠäžãããã圹å²ä»¥å€ã®ç°ãªãä»äºãããã®ãªããå
šãæ°ããããã°ã©ã ãäœãã¹ãã§ããäŸãã° yes ã³ãã³ã㯠y ãç¹°ãè¿ãåºåããã³ãã³ãã§ãããyes n ãšå®è¡ãããš n ãã€ã¶ããç¶ãããã³ã»ã³ã¹ãªã³ãã³ãã§ããæå®ããæååãç¹°ãè¿ãåºåããããšã¯ yes ãšããååã§äžãããã圹å²ãšã¯ç°ãªãä»äºãªã®ã§ãæ°ããããã°ã©ã ãäœããã°ãããªãã£ãäŸã§ããyes ã³ãã³ãã¯ç¢ºãã«ãäžã€ã®ããšããããŠãããããããŸããããäžãããã圹å²ã以å€ã®ããšããã£ãŠããäžé©åãªååã®ã³ãã³ãã§ãã
äžãããã圹å²ã«é©åããŠããã®ã§ããã°ãå¥ã®ããã°ã©ã ãšããŠå®è£ å¯èœã§ãã£ãŠãæ°ããæ©èœãå€ãããã°ã©ã ã«è¿œå ãã¹ãã§ããæ°ããæ©èœã远å ãããšããŠãããã°ã©ã ã®äžèº«ããã¡ããšæœè±¡åãæ§é åããŠããã°ãœãŒã¹ã³ãŒããã·ã³ãã«ã«ä¿ã€ããšãåºæ¥ãŸãã
ii. ä»ã®ããã°ã©ã ãšé£æºã§ããããã«äœã
(ii) ãã¹ãŠã®ããã°ã©ã ã®åºåã¯ãä»ã®æªç¥ã®ããã°ã©ã ã®å ¥åã«ãªãã®ã ãšããããšãäºæ³ãããäœåãªæ å ±ã§åºåããã¡ããã¡ãã«ããŠã¯ãªããªããå ¥åºåã«ã¯è¡æåã®åçŽãªããã¹ã圢åŒããŸãã¯æšæºçãªããŒã¿åœ¢åŒã䜿çšããã察話çãªå ¥åã«ãã ãããªã
ãªãªãžãã«
(ii) ãã¹ãŠã®ããã°ã©ã ã®åºåã¯ãä»ã®æªç¥ã®ããã°ã©ã ã®å ¥åã«ãªãã®ã ãšããããšãäºæ³ãããäœåãªæ å ±ã§åºåããã¡ããã¡ãã«ããŠã¯ãªããªãã瞊æ¹åã®äžŠã³ãå³å¯ã«æãããããã€ããªå ¥å圢åŒã䜿ã£ããããããšãé¿ããã察話çãªå ¥åã«ãã ãããªã
倿Žçç±ãšè§£èª¬
ä»ã®ããã°ã©ã ãšé£æºããããã®æ¬åœã®æ¡ä»¶ã¯æšæºçãªããŒã¿åœ¢åŒãæ¡çšããããšã§ããããããã°ã©ã ã PNG 圢åŒã§ããŒã¿ãåºåããå¥ã®ããã°ã©ã ã PNG 圢åŒã®å ¥åã«å¯Ÿå¿ããŠããã®ã§ããã°ããããã®ããã°ã©ã ã¯é£æºãããããšãåºæ¥ãŸããæšæºçãªããŒã¿åœ¢åŒãååšããªãã£ãæä»£ã¯ãããŒã¿ãè§£éããããšãç°¡åãªãåçŽãªããã¹ã圢åŒã䜿ãã®ãä»ã®ããã°ã©ã ãšã®é£æºææ®µãšããŠæé©ã§ããããä»ã¯ãã€ããªåœ¢åŒã§ãã£ãŠãæšæºåãããããŒã¿åœ¢åŒã¯ããã€ããããã©ã€ãã©ãªã䜿ãã°ãã®ãããªããŒã¿åœ¢åŒã§ãç°¡åã«æ±ãããšãã§ããŸãã
瞊æ¹åã®äžŠã³ãå³å¯ã«æãããšããã®ã¯ãããããèŠãç®ã®ããã«ã¹ããŒã¹ã®æ°ã§äœçœ®èª¿æŽããããªãšããããšã ãšæãã®ã§ããçç±ãã¯ã£ããããŸãããcut ã³ãã³ãã¯é£ç¶ããã¹ããŒã¹ãäžã€ãšããŠè§£éããªãã®ã§ãã¹ããŒã¹ã®æ°ã§äœçœ®èª¿æŽããããšå°ããŸãã awk ã³ãã³ããã·ã§ã«ã® read ã³ãã³ãã®ããã«è€æ°ã®ã¹ããŒã¹ãäžã€ãšã¿ãªãããåé¡ãªãå ŽåããããŸããawk ã read ã¯ãããã«ãã€ã® UNIX å²åŠããææžåãããåŸã«èªçããå¯èœæ§ããããããåœæã¯äœçœ®èª¿æŽããããå°ã cut ãããªãã£ããããªã®ãããããŸãããããããªãã ls ã³ãã³ãã®ããã«äœçœ®èª¿æŽãè¡ã£ãŠåºåããã³ãã³ããããããã瞊æ¹åã®äžŠã³ãå³å¯ã«æããã®ãé¿ãããšããã®ã¯ãããªãå€ãæä»£ã®è©±ã§ã¯ãªãããšæšæž¬ããŠããŸãããã¯ã£ããããããšã¯ããããããã®èª¬æãæ®ããŠããŠãæ··ä¹±ããã ããªã®ã§åé€ããŸããã
ãã®ææ³ã¯ããŒã¿ãä¿åãããã¡ã€ã«åœ¢åŒã«ã€ããŠè¿°ã¹ããã®ã§ã¯ãªãããšã«æ³šæããŠãã ãããã¹ããªãŒã ïŒæšæºå ¥åºåïŒã«éã£ã話ã§ããããã°ã©ã ãå éšã§ã©ã®ãããªãã¡ã€ã«åœ¢åŒã䜿ã£ãŠãããã¯ãããã°ã©ã ã®å ¥åºåããŒã¿ã®åœ¢åŒãšã¯é¢ä¿ãããŸãããããšãããŒã¿ãç¬èªåœ¢åŒã®ããŒã¿ããŒã¹ãã¡ã€ã«ã«ä¿åããŠãããšããŠããããã°ã©ã ããåçŽãªããã¹ã圢åŒã§åºåããæ¹æ³ãããã®ãªããå¥ã®ããã¹ã圢åŒã«å¯Ÿå¿ããããã°ã©ã ãšé£æºãããããšãã§ããŸããéèŠãªãã€ã³ãã¯ä»ã®ããã°ã©ã ãšé£æºã§ããããã«äœããšããããšã ãã§ãã
iii. 詊äœãçŽ æ©ãäœåºŠãç¹°ãè¿ã
(iii) ãœãããŠã§ã¢ã¯çŽ æ©ãïŒã§ããã°æ°é±éåäœã§ïŒè©Šããä»çµã¿ãæ§ç¯ãããèŠä»¶å®çŸ©ãèšèšãéçºãæ§ç¯ããã¹ãã詊çšãªã©å šè¡çšãäœåºŠãç¹°ãè¿ãããŸããéšåã¯æšãŠãŠäœãçŽãããšãèºèºãããªã
ãªãªãžãã«
(iii) ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ãã£ãŠãããœãããŠã§ã¢ã¯æ©ãïŒã§ããã°æ°é±é以å ã«ïŒè©Šããããã«èšèšãæ§ç¯ããããŸããéšåã¯æšãŠãŠäœãçŽãããšãèºèºãããªã
倿Žçç±ãšè§£èª¬
ãæ©ããã ãã§ã¯ãªãäœåºŠãç¹°ãè¿ãå¿ èŠãããã®ã§ãçŽ æ©ããã«å€æŽããŸãããç¹°ãè¿ãå 容ã¯å šè¡çšã§ãããããŠçŽ æ©ã詊ãã«ã¯ããããå¯èœãªä»çµã¿ãæ§ç¯ããå¿ èŠããããŸãã粟ç¥è«ã ãã§ã¯è§£æ±ºããŸããã
è£è¶³ã§ããããŸããéšåã¯æšãŠãŠäœãçŽãããšãèºèºãããªããšããã®ã¯ãè¯ãèããªã®ã§ãããä¿®æ£ã®ãã³ã«ããã¹ãŠãæšãŠãŠäœãçŽãã®ã¯ãããããŸãããæšãŠãéšåã¯ããŸããéšåãã ããªã®ã§ç°¡åãªä¿®æ£ã§ããã¡ã€ã«å šäœãäœãçŽãããã§ããã°ãåºæ¬çãªèšèšããŸãããšããããšã§ãã
iv. æšãŠãããšã«ãªãããšãããŒã«ã䜿ã
(iv) æèœã®äœãè ã«æäŒã£ãŠãããããããªãããœãããŠã§ã¢éçºã®ä»äºã楜ã«ããããã«ããŒã«ã䜿ããå¯èœãªéãèªååãããããŒã«ãäœãããã«é åãããªããã°ãªããªãå Žåã§ãã䜿ã£ãããšã§äžéšã®ããŒã«ãæšãŠãããšã«ãªãããšãããã£ãŠããå Žåã§ããããŒã«ã䜿ãã
ãªãªãžãã«
(iv) æèœã®äœãè ã«æäŒã£ãŠãããããããªããããã°ã©ãã³ã°ã®ä»äºãæç¢ºã«ããããã«ããŒã«ã䜿ããããŒã«ãäœãããã«é åãããªããã°ãªããªãå Žåã§ãã䜿ã£ãããšã§äžéšã®ããŒã«ãæšãŠãããšã«ãªãããšãããã£ãŠããå Žåã§ããããŒã«ã䜿ãã
倿Žçç±ãšè§£èª¬
ãœãããŠã§ã¢éçºã®ä»äºã¯ããã°ã©ãã³ã°ã ãã§ã¯ãããŸãããä»äºã楜ã«ããããã«ããŒã«ã䜿ãã®ã¯åœç¶ã§ãããé«äŸ¡ãªäººéã®æéãç¯çŽããããã«ãå¯èœãªéãèªååããããšãéèŠã§ããããŒã«ã¯ãã䟿å©ãªãã®ã«çœ®ãæãããå€ããã®ã¯æšãŠãããããšããããŸããããã§ããæšãŠãããšãã«ãªãããšãããã£ãŠããå Žåã§ããããŒã«ã䜿ããã§ãã
ãœãããŠã§ã¢éçºã«æ±ããããããšã¯ãŸããŸãå€ããªã£ãŠããããã¯ãèªåäžäººã®åã ãããã«ã¯æéãå§åçã«è¶³ããªããªããŸãããããŸããŸãªããŒã«ãé§äœ¿ããŠä»äºãããå¿ èŠããããŸãããæèœã®äœãè ã®æäŒããã¯ããŒã«ã«ãã£ãŠçœ®ãæããããŠããŸããŸããããŒã«ã«çœ®ãæããããããšã人æã§ãã£ãŠã¯ãããŸããã
ãœãããŠã§ã¢ããŒã«ã®æçŸ©
以äžã®å 容ã¯ãã¬ã³ã«ãŒãºã® UNIX å²åŠãã®æçŸ©ãå ã«ãå€ã説æãçŸåšã«éçšããããã«æ¹åãããã®ã§ããåèãšããŠå ã®ã¬ã³ã«ãŒãºã®æçŸ©ããæ§ããšããŠæžããŠããŸãããUNIX ãšããèãæ¹ãã¯äž»ã« 1980 幎代ãã 1990 幎代åãã®ããªãŒãã³ãœãŒã¹ãã€ã³ã¿ãŒãããã Linux ããªãããããã UNIX ã®äžçãå°æ¥ãããšå€¢èŠãŠããæä»£ãèå°ã§ãããå 容ãå€ãäžã«ååŠè åãã®ããããããå ·äœçãªæç« ãä»ãšãªã£ãŠãåéããåŒãèµ·ãããããåé¡ãå€ãæçŸ©ãšãªã£ãŠããŸã£ãŠããŸãããã®ããå šé¢çã«ä¿®æ£ãšè§£èª¬ãè¡ã£ãŠããŸãã
ã¬ã³ã«ãŒãºã¯ UNIX ã®éçºã§äœ¿ãããããã³ã³ãã¥ãŒã¿ïŒPDP ã·ãªãŒãºïŒã販売ããŠãã DEC ãšããäŒç€ŸïŒä»ã¯ãããããŸããïŒã®ç€Ÿå¡ã§ãããã¬ã³ã«ãŒãºãš UNIX åµå§è ãã¡ãšçŽæ¥ã®ã€ãªããã¯ãªããšæããŸãããDEC 㯠1980 幎代㫠BSD Unix ãããŒã¹ã«ããèªç€Ÿã®ã³ã³ãã¥ãŒã¿çšã®ç¬èª UNIX ãéçºãããšãã圢ã§é¢ãã£ãŠããŸãããã® UNIX ã®éçºãéããŠã¬ã³ã«ãŒãºãçè§£ãã UNIX å²åŠããŸãšãã®ããã¬ã³ã«ãŒãºã® UNIX å²åŠãã§ãã
ããããã§ãããä»ã® UNIX å²åŠãšç°ãªããã¬ã³ã«ãŒãºã® UNIX å²åŠã¯èªè ã«å¯ŸããŠã®ããã®ããã«ããããšããã¢ããã€ã¹ã§ã¯ãªããç§ãã¡ DEC ã® UNIX éçºããŒã ã¯ãã®ããã«èããŠããããã®ãããªç®æšãå®çŸããããã«é 匵ããïŒããšããèªåãã¡ã®èããæ±ºæãäŒããŠãããã®ã ã£ãã®ã§ã¯ãªãããšæã£ãŠããŸãããã®æ ¹æ ã¯ãæ§æºæçŸ©2: ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã«ãŒãã«ãå°ãã軜ããããã¯ãïŒOS éçºè ã§ã¯ãªãïŒç§ãã¡ã«ãããªäºèšãããŠãã©ããããããªããšããæçŸ©ã ããã§ãããããã£ãŠäŸãã°ãããã¹ããã¡ã€ã«ã䜿ããã®çã®æå³ã¯ãUNIX éçºè ã§ããç§ãã¡ã¯ OS ã®èšå®ãã¡ã€ã«ãªã©ã«ããã¹ããã¡ã€ã«ã䜿çšããïŒïŒã¿ãªããã¯ãèªç±ã«ã©ããïŒããšãã宣èšã§ããã¹ãŠã®ããã°ã©ã ããã£ã«ã¿ã«ããããšããã®ã¯ãïŒä»ã® UNIX ã§ã¯äžå¯èœã ãã©ïŒãããå®çŸã§ããããã« UNIX ãéçºããïŒããšããå°éãã¹ãçæ³ã ã£ãã®ãããããŸãããèŠããã«å ã®æçŸ©ã¯ç§ãã¡ãåŸãããã®æçŸ©ãšããŠäœãããŠããªãå¯èœæ§ããããšæã£ãŠããã®ã§ããããã®èšäºã§ã¯ä»ã® UNIX å²åŠã«åãããŠãæç« ãæžãæããŠãç§ãã¡ãåŸãã¹ãæçŸ©ã«å€æŽããŠããŸãã
ã¬ã³ã«ãŒãºã® UNIX å²åŠã¯ 1994 å¹ŽïŒæ¥æ¬èªèš³ã¯ 2001 幎ïŒã«åºçããããUNIX ãšããèãæ¹ãã§å®çŸ©ãããŸããã2003 幎ã«ã¯æ¹èšçãLinux and the Unix PhilosophyããåºçãããŠããã®ã§ããããã¡ãã¯æ¥æ¬èªã«ç¿»èš³ãããŠããŸãããã¡ãªã¿ã«ãUNIX ãšããèãæ¹ãã®æ¥æ¬èªèš³ã§ã¯ãæçŸ© (Tenets)ãã®äºããå®çããšæžããŠããŸãããããïŒDEC ãé€ãïŒïŒUNIX çéã§åºãåãå ¥ããããŠãããšãæããªãã®ã§ãæ¬æ¥ã®æå³ã§ãããæçŸ©ãã«å€æŽããŠããŸãããUNIXãšããèãæ¹ãã® P9 ã«ã¯æçŸ©ïŒå®çïŒã«é¢ããŠä»¥äžã®ããã«æžãããŠããŸããã
ãããŸã§ã®é ç®ã¯ãUNIX ã®éçºè ãã¡ã«ãšã£ãŠããã®æçŸ©ã«ã广µãããã®ã ãä»ã® UNIX ã«é¢ããæžç±ã«ãåãäžããããŠããã ããããUNIX ã®åºç€ããªãèãæ¹ãšããŠåºãåãå ¥ããããŠããããããã®å®çã身ã«çããŠããã°ãUNIX 人ããšããŠèªããããã ããã
ãã®æçŸ©ãã®ãã®ãã¬ã³ã«ãŒãºã®æã«ãã£ãŠèãåºããããã®ã§ã¬ã³ã«ãŒãºã®äž»åŒµã«ãããããããäºå®ã§ããããšã瀺ã蚌æ ã¯ãããŸãããéµåã¿ã«ããªãããã«ããŠãã ããã
æçŸ©1: ã·ã³ãã«ã»ã€ãºã»ãã¹ã
- æ§: ã¹ã¢ãŒã«ã»ã€ãºã»ãã¥ãŒãã£ãã«ïŒå°ãããã®ã¯çŸããïŒ
ã³ã³ãã¥ãŒã¿ã®æ§èœãäœããšãã¯ãããã°ã©ã ã®å®è¡ã€ã¡ãŒãžãå°ããïŒ= ã¡ã¢ãªäœ¿çšéãå°ãªãïŒããšããã¹ã¯ãããããŒãžã³ã°ãæžããããã©ãŒãã³ã¹ã®åäžã«ãç¹ãããŸãããããã倧éã®ã¡ã¢ãªãæèŒããŠããä»ã¯ããã°ã©ã ã®å®è¡ã€ã¡ãŒãžãå°ããããã¡ãªããã¯å°ãªããéã«äœ¿çšã¡ã¢ãªéã䜿çšãã£ã¹ã¯éã倧ããæ¹ãããã©ãŒãã³ã¹ãç§»æ€æ§ã®ç¹ã§åªããŠããå ŽåãããããŸããäŸãã°å·šå€§ãªããŒã¿ããŒã¹ãåç»ç·šéãœãããã¢ã«ãŽãªãºã ã«ãã£ãŠã¯ã¡ã¢ãªã倧ãã䜿ãããšã§é«éåãå¯èœã§ãããä»®æ³ãã·ã³ã€ã¡ãŒãžã䜿ã£ããã³ã³ããã䜿ããšãã£ã¹ã¯äœ¿çšéã¯å€§ãããªããŸããç§»æ€æ§ã坿¬æ§ãé«ããªããŸãã
ãœãŒã¹ã³ãŒããå°ããããã¡ãªããã¯ãµã€ãºã§ã¯ãªãè€éãããå°ãããããããšã§ãããããã¯ããªãã¡ã·ã³ãã«ã«ãããšããããšã§ããããã°ã©ã ã®å®è¡ã€ã¡ãŒãžãå°ããããããšã«ã¡ãªããããªããªã£ãä»ãã¹ã¢ãŒã«ã»ã€ãºã»ãã¥ãŒãã£ãã«ãšãããããã·ã³ãã«ã»ã€ãºã»ãã¹ããšèšã£ãã»ããé©åã§ããä»å¿ èŠãšãããŠããéå ·ãšããã®ã¯ããå°ããªéå ·ãã§ã¯ãªããã·ã³ãã«ãå®çŸããŠãããéå ·ã ã§ããéå ·èªäœã倧ãããŠãããã«ãã£ãŠãã·ã³ãã«ãå®çŸããŠãããã®ã§ããã°ãããã¯ãã¹ããªéå ·ã§ãã
ã·ã³ãã«ã®æ£ããæå³ã¯ãç°¡åãã§ã¯ãªãã絡ãŸããªããããšã§ããäŸãã°äžã€ã®åŠçã®æµãã«ããã®æ¬è³ªãšã¯é¢ä¿ãªãåŠçã絡ãã§ãããããªãã®ãè€éãšèšããŸããäŸãã°ã·ã§ã«ã¹ã¯ãªããã§ãæ¬è³ªçãªåŠçãšç°å¢æ¯ã®ã³ãã³ãã®éããåžåãããããªã³ãŒããã絡ãã§ããããããªãã®ãè€éãšèšããŸããé·éãããã€ãã©ã€ã³ãç°ãªãåŠçãã絡ãã§ãããäºãããããè€éã«ãªããã¡ã§ãã絡ãã§ããã³ãŒãã¯åãé€ãã®ãé£ãããªããŸããè€éæ§ããéããããã®ããŒã¯ãŒãã¯æœè±¡åã§ããæœè±¡åãšã¯å ·äœçãªå®è£ ïŒç°å¢ããšã®ã³ãã³ããåŠçïŒãé èœããããšã§ããã®å®çŸæ¹æ³ãšããŠãã䜿ãããã®ã颿°ãå€éšã³ãã³ãã«åé¢ããããšã§ããã·ã³ãã«ãšç°¡åã¯ç°ãªãæå³ãæã€èšèã§ãããã·ã³ãã«ããè€éãã¯å®¢èгçãªæŠå¿µã§ã人ã«ãã£ãŠæãæ¹ãéããã®ã¯ãç°¡åããé£ããããšããæŠå¿µã§ãã詳现ã¯ãã·ã³ãã«ãã®å¿ èŠæ§ããåç §ããŠãã ããã
æçŸ©2: äžã€ã®ããã°ã©ã ã«ã¯æ¬åœã«ããã¹ãããšãããŸããããã
- æ§: äžã€ã®ããã°ã©ã ã«ã¯äžã€ã®ããšãããŸããããã
倿Žããçç±ã¯ãããã«ãã€ã® UNIX å²åŠãã® i. ãšåãã§ãããäžã€ã®ããšããšããã®ã¯å®çŸ©ãææ§ã§ãå®éã«ã¯äžã€ã®ããšãããŠããã³ãã³ãã¯ã»ãšãã©ãããŸãããäžã€ã®ããã°ã©ã ãäžã€ã®ããšã«ããããšã«ãã ãããšãéã«äœ¿ãåŽãé¢åã«ãªããŸããäœãäžã€ãšã¿ãªããïŒãšããç¡é§ãªè°è«ã«çµå§ããã ãã§äœãçãŸããŸããããããªãã°ãæ¬åœã«ããã¹ãããšãã¯ãªã«ãïŒãèããæ¹ãã¯ããã«äŸ¡å€ããããŸããæ¬åœã«ããã¹ãããšã¯ããã°ã©ã ã®åœ¹å²ã§æ±ºããã¹ãããšã§ãããããã¿ããªåãã£ãŠãããããäžã€ã®ããšããšèšã£ãŠãããšããŠãå®ã£ãŠããªãããã§ãã
ãã¡ããããã®ã³ãã倿©èœäž»çŸ©ãã«ã¯æ³šæãã¹ãã§ããããã¯ã»ãšãã©å¿ èŠãšãããªããããªæ©èœãäœããªããšããããšã§ããå¥ã®ã³ãã³ããšããŠäœã£ãå Žåãããã¯çµå±ã®æãã®ã³ãã倿©èœäž»çŸ©ã®ç ç²ã«ãªã£ãŠããŸããåã«çµã¿åãããªãã§äœ¿ããã°äŸ¿å©ãªãã®ããçµã¿åãããªããã°äœ¿ããªãããã«äžäŸ¿ãªåœ¢ã§äœã£ãã ãã§ããUNIX å²åŠã¯ãçµã¿åãããŠäœ¿ãããšãã§ãããéå ·ã«ããããšã§ãçµã¿åãããŠäœ¿ããªããã°ãããªããéå ·ã«ããããšã§ã¯ãããŸããã
ç®èãªããšã«çµã¿åãããŠäœ¿ããããã«ããéå
·ã¯å€æ©èœã«ãªããã¡ã§ãããªããªãããããéå
·ãšçµã¿åãããããšãã§ããããã«æ©èœã远å ãããŠããããã§ããls ã³ãã³ãã¯ç«¯æ«ã«åºåããæã«èªåçã«è€æ°ã«ã©ã ã§è¡šç€ºãããŸããls ã³ãã³ãããè€æ°ã«ã©ã 衚瀺æ©èœããªãã ls | column ã䜿ãããã«ããå Žåããã® column ã³ãã³ãã¯ããããã³ãã³ããšçµã¿åããããããã«åºåãæ©èœã倿Žã§ãããªã©è€æ°ã®ãªãã·ã§ã³ãåããŠããŸããè€æ°ã«ã©ã 衚瀺æ©èœã ls ã³ãã³ãã«å
èµããããïŒå¥ã®ã³ãã³ãã«å®è£
ãããïŒã§ã¯ãªãäž¡æ¹ããããæ¹ã䟿å©ã§ããls ã³ãã³ãã«å
èµãããŠãããã®ã¯ç°¡æçããã£ãšäŸ¿å©ãªããšãããããªã column ã³ãã³ããšçµã¿åããããšããèãæ¹ã§ãã倧æµã®å Žåã¯ç°¡æçã§ååãªã®ã§ã·ã³ãã«ã«ä¿ã€ããšãåºæ¥ãŸãã
äžã€ã®ããã°ã©ã ã§å€ãã®ããšãããã®ãå«ãªäººãããã§ãããããäžã€ã®ããšãã«ããããªããã®ããã«äœãã®ã¯èªç±ã§ãããã ãããèããŠã¿ãŠãã ãããå€ãã®æ©èœãå®è£ ããããšã§å°ãã®ã¯å®è£ ã倧å€ã«ãªããããããªãå®è£ è ã ãã ãšããããšã§ããå©çšè ã¯äžèŠãªæ©èœããã£ããšããŠã䜿ããªãã ããªã®ã§ããããŠå°ããŸãããã€ãŸãäœãèšãããããšèšããšãä»äººã«ãâ¯â¯ã®æ©èœã欲ããã§ãããšèšããããå®è£ ããã®ã¯é¢åã ãªãšæãããããããŸããããå®è£ è ãèªåã§ãããå®è£ ããããšæã£ãã®ãªãå®è£ ããŠè¯ããšããããšã§ããå®è£ è ã«ã¯èªåã®ããã°ã©ã ãèªç±ã«äœãæš©å©ããããŸãã誰ããèšã£ããäžã€ã®ããšãã«èªç±ã奪ã°ããè¬ãã¯ãããŸããã
æçŸ©3: ã§ããã ãçŽ æ©ãäœåºŠã詊äœã§ããä»çµã¿ãäœã
- æ§: ã§ããã ãæ©ã詊äœãäœæãã
倿Žããçç±ã¯ãããã«ãã€ã® UNIX å²åŠãã® ii. ãšåãã§ãããã®èãã¯ã¢ãžã£ã€ã«ã«ãéããèãæ¹ã§ããæ©ãæ®µéã§äžåºŠã ã詊äœããã®ã§ã¯ãªããçŽ æ©ãäœåºŠã詊äœãç¹°ãè¿ãããšãéèŠã§ããã·ã¹ãã ãé«éã«éçºããã«ã¯ä»çµã¿ãäœããªããã°ãããŸãããä»çµã¿ãäœããšããã®ã¯äŸãã°ãã«ãããã¹ãã®èªååãæå³ããŸãããŠã§ãã¢ããªã§ããã°ãµãŒããŒãžã®ãããã€ãå«ãŸãããã®ããã« git ãªã©ã®ããŒãžã§ã³ç®¡çããŒã«ã CI ãµãŒãã¹ãšã®é£æºãå¿ èŠãšãªã£ãŠããã§ãããããããã®ä»çµã¿ãæäŸããããœãããŠã§ã¢ãšããéå ·ããçµã¿åãããããšã¯ããŸãã« UNIX å²åŠã®èãæ¹ã§ããä»çµã¿ãªãã§ã¯äœåºŠã詊äœããã®ãé¢åã«ãªããŠã©ãŒã¿ãŒãã©ãŒã«ã®èãæ¹ã«æ»ã£ãŠããŸãããšã§ãããã
äœè«ã§ãããã¢ãžã£ã€ã«ãœãããŠã§ã¢éçºå®£èšãã«ã¯ãéå ·ã䜿ããªãããšããããã¥ã¡ã³ããäœããªãããšããèšç»ããªãããšã¯æžããŠããŸãããã¢ãžã£ã€ã«ã¯éå ·ã䜿ãããããã¥ã¡ã³ããäœãããèšç»ããŸããåéãããªããããã¢ãžã£ã€ã«ãœãããŠã§ã¢éçºå®£èšã®èªã¿ãšãæ¹ ãã®ããã¢ãžã£ã€ã«ãœãããŠã§ã¢éçºå®£èšãã«å¯Ÿãã誀解ãšçæããããèªãã§ãã ããã
æçŸ©4: èŠä»¶ãæºããå質ãšé«ãçç£æ§ãäž¡ç«ããã
- æ§: å¹çããç§»æ€æ§
ããŒããŠã§ã¢ã®ç¹æ®æ©èœã䜿ãå¹çãäžãããšç§»æ€æ§ãäžãããšèšãåºããã®ã¯ã¬ã³ã«ãŒãºã§ããããã㯠1980 幎代ã®å€ãèãæ¹ã§ããçŸä»£ã®èãæ¹ã¯ãã©ã€ããã©ãããŒãªã©ã§ããŒããŠã§ã¢ãç°å¢ã®éããåžåããå¹çãšç§»æ€æ§ãäž¡ç«ããããšããèãæ¹ãäž»æµã§ãããã®èãæ¹ã¯ããããå Žæã§äœ¿çšãããŠããŸããããŒããŠã§ã¢ã®ç¹æ®æ©èœã䜿ããå Žåã¯äœ¿ããããããæ©èœããªããŠãåãããå¹çãšç§»æ€æ§ãäž¡ç«ããŸããã©ãããŒã¯ãããã«ãªãŒããããããããŸããããããå¹çããç§»æ€æ§ããšããèšèãçŸä»£ã«åœãŠã¯ãããªãã°ãã©ãããŒããªãããŠå¹çãæ±ãããããã©ãããŒã䜿ã£ãŠç§»æ€æ§ãåªå ãããããšèšãã¹ãã§ãã
éèŠãªæ³šæç¹ãšããŠã¬ã³ã«ãŒãºãèšã£ãŠãããç§»æ€æ§ããšã¯ãç°ãªãã¢ãŒããã¯ãã£ã®ã³ã³ãã¥ãŒã¿ãžã®ç§»æ€ã®è©±ã§ãã£ãŠãç°ãªã OS ãžã®ç§»æ€ã®è©±ã§ã¯ç¡ããšããããšã§ãã1980 幎代ã¯ä»ãããå€ãã®ã³ã³ãã¥ãŒã¿äŒç€ŸãèŠæš©ãæ¡ãããšäºã£ãŠããããœãããŠã§ã¢äŒç€Ÿã¯ããã€ãã®ã³ã³ãã¥ãŒã¿å°çšã«ãœãããŠã§ã¢ãç§»æ€ããŠããŸããããããçŸåšã¯ããŒããŠã§ã¢ã®éã㯠OS ã«ãã£ãŠåžåãããŠãããç§ãã¡ã¯ç¹å®ã® OS çšã«ãœãããŠã§ã¢ãæžãã°è¯ããªããŸãããããã«ãŠã§ãã®æ®åã§äžã€ã® OS å°çšã«ãœãããŠã§ã¢ãéçºãããšããŠããå€ãã®çš®é¡ã®ã³ã³ãã¥ãŒã¿ã®å©çšè ãçžæã«ããžãã¹ãåºæ¥ãããã«ãªããŸãããç§»æ€æ§ã¯ä»ãéèŠã§ããããã®äŸ¡å€ã¯æã»ã©å€§ããã¯ãããŸãããç¹å®ã® OS ãã察å¿ããŠããªããŠãä»ãã䜿ããæ¹ã圹ã«ç«ã¡ãŸãã
ãŸããäžè¬çãªãœãããŠã§ã¢ã§ããã°ãé©åãªèšèªãã©ã€ãã©ãªãéžã¶ã ãã§ç§»æ€æ§ã¯ãã ã§æã«å ¥ããã®ã«ãªã£ãŠããŸããç§»æ€æ§ãæ°ã«ããã«åäžã®ãœãŒã¹ã³ãŒããæžãã ãã§èª°ã§ãç°¡åã«æäœé床ã®ç§»æ€æ§ãæã«å ¥ããããšãã§ããããã«ãªã£ããããç§»æ€æ§ã®é«ãã¯æè¡åã®å·®ã§ã¯ç¡ããªã£ãŠããŸããŸãããä»ã®æä»£ã«ç§»æ€æ§ãäœãèšèªãšããã®ã¯ãèªåã§äºææ§åé¡ã解決ããªããããã°ã©ãã³ã°ããªããã°ãããªãèšèªã®ããšã§ãã·ã§ã«ã¹ã¯ãªããã¯ç§»æ€æ§ãäœãèšèªã®äžã€ãšãªã£ãŠããŸãã
ã¬ã³ã«ãŒãºã®ãå¹çããšããçšèªã®äœ¿ãæ¹ã«ã泚æãå¿ èŠã§ãããå¹çãè¯ããã«ã¯ CPUãã¡ã¢ãªããã£ã¹ã¯ã®ãªãœãŒã¹äœ¿çšéãå°ãªããšããæå³ããããŸãããã¬ã³ã«ãŒãºã¯ãå¹ç (efficiency) ãè¯ããããæ§èœ (performance) ãè¯ããã®æå³ã§äœ¿ã£ãŠããããšããããŸãããå¹çãè¯ãããšã¯åã«ããªãœãŒã¹äœ¿çšéãå°ãªãããšãã§ã¯ãªããããæ¡ä»¶äžã«ãããŠç¡é§ãå°ãªãããšãã§ããäŸãã°é«éã«åŠçããããã«å€ãã®ã¡ã¢ãªã䜿çšããã¢ã«ãŽãªãºã ããã£ããšããŠããã®æ§èœãéæã§ãããšããæ¡ä»¶ã®å ã§ã¡ã¢ãªã®äœ¿çšéãå°ãªããã°å¹çãè¯ãèšãããŸãããæ§èœãéæã§ããªãã®ã§ããã°ãããã¡ã¢ãªã®äœ¿çšéãå°ãªããŠãå¹çãè¯ããšã¯èšãããŸãããã³ã³ãã¥ãŒã¿ã®æèŒã¡ã¢ãªãå°ãªãæä»£ã¯ãå€ãã®ã¡ã¢ãªã䜿çšãããšã¹ã¯ãããããŒãžã³ã°ã«ãã£ãŠé床ãé ããã£ã¹ã¯ãžã®èªã¿æžããçºçãæ§èœãäœäžããããããå¹çãããã=ãã¡ã¢ãªäœ¿çšéãå°ãªãã=ãïŒã¹ã¯ãããããŒãžã³ã°ãçºçããªãããïŒæ§èœãè¯ãããæãç«ã£ãŠããŸããããçŸåšã¯ãå¹çãããããšãæ§èœãè¯ããã¯ã€ã³ãŒã«ã§ã¯ãããŸããã
泚æãã¹ãããšã¯ãããŒããŠã§ã¢ã®ç¹æ®æ©èœã䜿ã = æ§èœãè¯ã = ç§»æ€æ§ã¯äœãããšãã話ã¯å¹çãšã¯ç¡é¢ä¿ã®è©±ã ãšããããšã§ããããã§æ§èœãšå¹çãšåäžèŠããŠããŸããšãå¹çãè¯ã = ç§»æ€æ§ãäœãããšããééã£ãåŒãçãŸããŸããå ã®æçŸ©ã®ãå¹çããç§»æ€æ§ãã¯ãã®ééã£ãåŒãå ã«ãªã£ãŠããŸããå¹çïŒæ§èœïŒãè¯ãæ¹æ³ã¯ãå¿ ãããç§»æ€æ§ãäœããªãããã§ã¯ãããŸãããä»ã¯å¹çãšç§»æ€æ§ãäž¡ç«ãããããšããã®ã§ ãå¹çïŒæ§èœïŒãç ç²ã«ããŠã§ããç§»æ€æ§ãé«ãæ¹æ³ãéžã¹ã ãšããè©±ã¯æä»£é ãã®èãæ¹ã§ãã
ã¬ã³ã«ãŒãºã®ç§»æ€æ§ã®è©±ã®çå®ã¯ã
- 1980 幎代ãŸã§ã¯ã³ã³ãã¥ãŒã¿ã®æ§èœãäœãã£ãã®ã§å¹çïŒæ§èœïŒããšãŠãéèŠã ã£ããæ§èœãäžããã«ã¯ããŒããŠã§ã¢ã®ç¹æ®æ©èœã䜿ãã®ã广çã ã£ãã OS ã«ãã£ãŠããŒããŠã§ã¢ã®éããåžåãããŠããªããããèªåãã¡ã§ããŒããŠã§ã¢ã®éããåžåããã©ãããŒãæžããªããã°ãªããªãã£ãããããã©ãããŒèªäœãå¹çã®äœäžããŸããã»ã©ã³ã³ãã¥ãŒã¿ã®æ§èœã¯äœãã£ããããã«ããŒããŠã§ã¢ã®æ§èœãçæéã§å€§ããåäžããæä»£ã§ããããæ¬¡ããæ¬¡ãžãšé«æ§èœã ãäºææ§ã®ãªãæ°ããããŒããŠã§ã¢ãéçºãããããã®æä»£ã§ã¯å¹çãšç§»æ€æ§ãäž¡ç«ãããã®ã¯å°é£ã§éçºã³ã¹ããèãããšå²ã«åãããå¹çãããç§»æ€æ§ã®æ¹ãéèŠã ãšããèãæ¹ãçãŸããã
ãšããããšãªã®ã§ãã
çŸåšã¯ãã®ç¶æ³ã¯å šãå€ãã£ãŠããŸããäžéšã®äŸå€ãé€ããœãããŠã§ã¢ã¯ã©ã®ãããªããŒããŠã§ã¢ã䜿ã£ãŠããããæ°ã«ããããšã¯ãªãéçºããããšãã§ããããã«ãªããŸãããOS ãããŒããŠã§ã¢ã®ç¹æ®æ©èœãããã°ããã䜿ããããã§ãªããã°ãœãããŠã§ã¢ã§ãšãã¥ã¬ãŒãããããªã©ããŠç§»æ€æ§ãæ°ã«ããããšãªãã³ã³ãã¥ãŒã¿ã®æ§èœãåŒãåºãããšãã§ããããã«ãªã£ãŠããŸãããããã£ãŠçŸä»£ã§å¹çãããç§»æ€æ§ãéèŠã ããããŒããŠã§ã¢ã®ç¹æ®æ©èœã䜿ããªãããã«ããããšèšãããŠãæä»£é¯èª€ã§ãããããŸãããä»ã§ãããŒããŠã§ã¢ã®ç¹æ®æ©èœãéèŠãªåéïŒäŸãã°é«åºŠãª 3D ã²ãŒã ãæ©æ¢°åŠç¿ãããã°ããŒã¿é¢é£ãªã©ïŒã¯æ®ã£ãŠããŸãããããã£ãåéã§ã¯ããŒããŠã§ã¢ã®ç¹æ®æ©èœã極ããŠéèŠãªæå³ãæã€ãããç§»æ€æ§ã倧äºãšèšãããŠãæ§èœã諊ãããå®çšã¬ãã«ã®èŠä»¶ãæºãããŸããããœãããŠã§ã¢ãšãã¥ã¬ãŒã·ã§ã³ã§ã¯å®çšã¬ãã«ã®æ§èœãåºããªããããããŒããŠã§ã¢ã®ç¹æ®æ©èœã䜿ããããªããšããåéãäžéšã«ãŸã æ®ã£ãŠããŸãã
ããŠãœãããŠã§ã¢ã«å¿ èŠãªãã®ã¯å¹çãç§»æ€æ§ã ãã§ã¯ãããŸãããå¹çãç§»æ€æ§ã¯ä»ã¯å質ã®äžéšãšããŠæ±ãããŠããŸããå質ã¯ä»¥äžã®ããã«ãæ©èœé©åæ§ããæ§èœå¹çæ§ããäºææ§ããäœ¿çšæ§ããä¿¡é Œæ§ããã»ãã¥ãªãã£ããä¿å®æ§ããç§»æ€æ§ãã«çްååãããŠããŸããïŒåè IPAãã€ãªããäžçã®ãœãããŠã§ã¢å質ã¬ã€ããïŒ
ãã®ãããªå質ã®èãæ¹ã¯ 1990 幎代é ãã確ç«ãããŠãã£ãããã§ããã€ãŸããã¬ã³ã«ãŒãºã® UNIX å²åŠãïŒ1994 幎åºçã ããã»ãšãã©ã¯ 1980 幎代ã®è©±ïŒã¯å質ã®èãæ¹ããŸã ååã«çºå±ããŠããªãæä»£ã ã£ããšããããšã§ããåœæã®ã³ã³ãã¥ãŒã¿ã®æ§èœã¯äœããããå¹çãç§»æ€æ§ä»¥å€ã®ããšãèããäœè£ã¯ãªãã£ãã§ããããã仿¹ã®ãªã話ã§ãããªãå質ã«é¢ããæŽå²ã¯ããœãããŠã§ã¢å質æè¡ã®æŽå²ãæ¯ãè¿ã - ãœãããŠã§ã¢å質枬å®ãäžå¿ã« -ãã§åããããããŸãšããããŠããŸããã
ãœãããŠã§ã¢ã«æ±ããããå質ã®ã¬ãã«ã¯ãããžã§ã¯ãã«ãã£ãŠç°ãªããŸããããããã§ãã£ãŠããœãããŠã§ã¢ã«æ±ããããå質ã¯é«ããªãäžæ¹ã§ãé«ãå質ãå®çŸããã«ã¯ã©ãããŠãæéãããã£ãŠããŸããŸããçç£æ§ãäžèŠãšãããããžã§ã¯ãã¯ãŸãç¡ãã§ããããããé«ãå質ãšçç£æ§ãäž¡ç«ããããªããã°ãªããŸããããã®ããã«ã¯é©åãªéå ·ãçµã¿åãããŠäœ¿ãããšãéèŠã§ããçŽ æŽãããããšã«çŸä»£ã§ã¯å質ã®é«ããœãããŠã§ã¢ãããããªãŒãã³ãœãŒã¹ã§æ°å€ãæäŸãããããã«ãªããŸããããããã®èšèªãã©ã€ãã©ãªãã³ãã³ããããã«ãŠã§ã¢ãçµã¿åãããŠäœ¿ãããšããã UNIX å²åŠã®èãæ¹ã«éããèãæ¹ã§ãã
çŸä»£ã«ãããŠç§»æ€æ§ãé«ããæè¡ã¯ãã©ã€ããã©ãããŒã«ããæœè±¡åã§ããã©ãããŒã®ååšã«ãã£ãŠå¹çãäžãããšæããããããŸããããçŸä»£ã§ã¯ãã®å¹çã®äœäžã¯ç¡èŠã§ããã¬ãã«ã§ããããåãé€ããŠãŸã§æ§èœãéèŠããæå³ã¯ãããŸãããããããæå³ã§ãå¹çããç§»æ€æ§ããšããèšèã¯ããæå³æ£ããã®ãããããŸãããGo ãªã©ã®é©åãªèšèªãã©ã€ãã©ãªãéžã¹ã°ãã©ãããŒã«çžåœããåŠçãïŒå¿ èŠãªãã°ïŒçµã¿èŸŒãŸããŠããã®ã§äœãããå¿ èŠããããŸãããã€ãŸãæåãããå¹çãããç§»æ€æ§ããå®çŸãããŠããäžã«çç£æ§ãé«ãã§ããç§»æ€æ§ã¯æåªå äºé ã§ã¯ãªãå質ã®èŠä»¶ã®äžã€ã§ãããããŸããããããã£ãŠä»ã®ç°å¢ãžã®å¯Ÿå¿ã¯ããžãã¹æŠç¥äžã®çç±ã§å¿ èŠã ãšæãã®ãªã察å¿ããããã§ãªããã°å¯Ÿå¿ããªããŠãè¯ãããããã¯å¿ èŠã«ãªã£ãŠãã察å¿ããã°è¯ããšãã£ãçšåºŠã®ãã®ã§ãããã®ä»ã«ãèããªããã°ãããªãããšã¯å±±çšãããŸããããœãããŠã§ã¢ã«å¿ èŠãªãã®ã¯å¹çãïŒç§»æ€æ§ãïŒããšããäºæã ããèããã°ããã£ãæä»£ã¯ãšã£ãã«çµãã£ãŠããŸãã
æçŸ©5: ãã¡ã€ã«ã«ã¯æšæºçãªåœ¢åŒãããã¹ãããŒã¹ã®åçŽãªåœ¢åŒã䜿çšãã
- æ§ïŒåçïŒ: æ°å€ããŒã¿ã¯ASCIIãã©ãããã¡ã€ã«ã«ä¿åãã
- æ§ïŒæ¹èšçïŒ: ããŒã¿ã¯ãã©ããããã¹ããã¡ã€ã«ã«ä¿åãã
ãã®æçŸ©ã¯ããã«ãã€ã® UNIX å²åŠã«ããä»ã®ããã°ã©ã ãšé£æºã§ããããã«ããã¹ãããŒã¹ã®ã€ã³ã¿ãŒãã§ãŒã¹ã«ãã話ãšã¯äŒŒãŠéãªããã®ã§ããä»ã®ããã°ã©ã ãšé£æºããããã«å¿ èŠãªã®ã¯ã€ã³ã¿ãŒãã§ãŒã¹ïŒæšæºå ¥åºåïŒã§ãã£ãŠããã¡ã€ã«åœ¢åŒã¯é¢ä¿ãããŸããããããã£ãŠãããŒã¿ã¯ãã©ãããã¡ã€ã«ã®ä¿åããããšããã®ã¯ã¬ã³ã«ãŒãºã® UNIX å²åŠã®ç¬èªã®èãæ¹ã§ãã
ãã¡ã€ã«ã«ç§»æ€æ§ããããšããããšã¯ãæªç¥ã®ããã°ã©ã ããã§ããã®ãã¡ã€ã«ã®èªã¿æžããã§ãããšããããšã§ãããã®ããã«å¿ èŠãªæ¡ä»¶ã¯æšæºçãªãã¡ã€ã«åœ¢åŒã䜿çšããããšã§ããããã¹ãã«ããããã€ããªã«ãããã¯é¢ä¿ãããŸãããããã¹ãã®æ¹ãåãæ±ãã«äŸ¿å©ã ãšã¯æããŸããããã¡ã€ã«ã®ç§»æ€æ§ã®è©±ãšã¯é¢ä¿ãªãã§ããããã€ããªã䜿çšçŠæ¢ã«ããã»ã©ã®ããšã§ã¯ãããŸãããæšæºçãªãã¡ã€ã«åœ¢åŒã䜿çšããŠãããªãã°ãç¥ããªã人ãäœã£ãããã°ã©ã ãšã飿ºãããããšãåºæ¥ãŸããæšæºçã§ã¯ãªããã¡ã€ã«åœ¢åŒã䜿ãå Žåããã®ãã¡ã€ã«åœ¢åŒãæ±ãããã®å°çšããŒã«ãã§ãããã£ãŠããŸããŸããä»ã®ããã°ã©ã ã¯ãã®ç¹æ®ãªãã¡ã€ã«åœ¢åŒã«å¯Ÿå¿ããªããã°ãããªããªãã§ãããã
zip 圢åŒã gif 圢åŒããååšããŠããªãã£ã 1980 幎代ãšã¯éããä»ã¯ãã€ããªããŒã¹ã§ãã£ãŠãæ°å€ãã®æšæºåããã圢åŒãããã¡ã¯ãã¹ã¿ã³ããŒãã«ãªã£ã圢åŒããããŸããç¹å®ã®äŒæ¥ãç¬å ããŠãããã®ã§ã¯ãªãã仿§ããªãŒãã³ã§å³å¯ã«æ±ºãŸã£ãŠãããäžã®äžã§åºããµããŒããããŠãããã¡ã€ã«åœ¢åŒã§ããã°ãç§»æ€æ§ãé«ããã¡ã€ã«åœ¢åŒãšèšããŸãããã€ããªã§ãããªããç§»æ€æ§ãé«ã圢åŒã«ã¯äŸãã° SQLite ã®ããŒã¿ããŒã¹åœ¢åŒã Excel ãã¡ã€ã«åœ¢åŒããããŸããïŒæ§ xls 圢åŒã仿§ã¯å ¬éãããŠããŸã, Microsoft Office Excel 97-2007 Binary File Format (.xls) Specification - This specification is provided under the Microsoft Open Specification Promise.ïŒ
éã«ããã¹ãããŒã¹ã®ãã®ã§ããæç¢ºãªãã¡ã€ã«åœ¢åŒã®ä»æ§ããªããç¹æ®ãªããŒã¿æ§é ããã£ã¬ã¯ããªæ§é ãæã£ãŠãããããã¡ã€ã«ã®é 眮ãã¢ã¯ã»ã¹æ¹æ³ã«ç¹å¥ãªã«ãŒã«ããã£ãããéã«ã«ãŒã«ãå šããªãæ°ãŸãŸåæã«ä»æ§ãäœãããŠããããããã®ã¯ãç§»æ€æ§ãäœããšèšããŸãããªããªãæ¢åã®ããã°ã©ã ã§å¯Ÿå¿ããŠãããã®ã¯ãªããè€éãªåœ¢åŒã§ããã°æ£ããæ±ãã®ã¯å°é£ã«ãªãããã§ãããŸãããã¹ãããŒã¹ã®ãã¡ã€ã«åœ¢åŒã§ãã£ãŠãäŒæ¥ãç¬å ããŠãããããã©ã€ãšã¿ãªãªåœ¢åŒã¯ããã®ã§æ³šæããŠãã ãããäžäŸãšã㊠FBX 圢åŒã玹ä»ããŠãããŸããããã¹ãããŒã¹ã®åœ¢åŒã ãããšãã£ãŠå¿ ãããç§»æ€æ§ãé«ãããã§ã¯ãããŸããã
ããæšæºåãããããŒã¿åœ¢åŒã§é©åãªãã®ããªããã°ãã§ããã ãåçŽãªè¡æåã®ããã¹ã圢åŒã«ããŠããã®ãç¡é£ã§ããåçŽãªè¡æåã®ããã¹ã圢åŒãšã¯ãäžè¡ããã®ãŸãŸäžããŒã¿ã«ãªã£ãŠãã圢åŒããäžè¡ã«ç©ºçœãªã©ã®æåã§åºåãããŠããŒã¿ã䞊ãã§ãããããªåœ¢åŒïŒãããã SSV 圢åŒïŒã§ããåçŽãªããã¹ã圢åŒã§ããã°å¯Ÿå¿ããã®ããããªã«å€§å€ã§ã¯ãªãã§ããããå¯èœãªéãåçŽã«ããŠãããªããã°ä»ã®ããã°ã©ã ããèªã¿æžãããã®ã¯å°é£ã«ãªããŸããããããã®å ŽåãããŒã¿ã«ç©ºçœãæ¹è¡ãªã©ã®ç¹æ®æåãå«ãŸããå Žåã®æšæºçãªæ±ºãŸãããªãããããŒã¿ã®æ§è³ªã«ãã£ãŠã¯åé¡ãçºçããå ŽåããããŸããã·ã§ã«ã¹ã¯ãªããã UNIX ã³ãã³ãã¯äžéšãé€ãåçŽãªè¡æåã®ããã¹ã圢åŒããåºæ¬çã«ã¯æ±ãããç¹æ®ãªæåãæ±ãããã®æšæºçãªæ±ºãŸãããããŸããããããä»åŸæ¹åããŠãããªããã°ãªããªãã·ã§ã«ã¹ã¯ãªããã®åé¡ç¹ã®äžã€ã§ãã
ãã°ãã°ééã£ãŠè§£éãããŠããŸãããUNIX ã³ãã³ãã¯ããã¹ãããŒã¹ã®åœ¢åŒãªãäœã§ãæ±ãããããã§ã¯ãããŸãããäŸãã° JSON 圢åŒã¯ããã¹ãããŒã¹ã®åœ¢åŒã§ããããã®æ§é ãçè§£ããŠãªãã®ã§ãæ§é ãæããªãããã¹ã圢åŒããšããŠããæ±ãããšãåºæ¥ãŸãããæ§é ã®æå³ãçè§£ããŠãªããŠãäžå¿æ±ãããããªãããšããçå±ã¯ããã€ããªãšãã£ã¿ã䜿ãã°ãã¹ãŠã®ãã€ããªãã¡ã€ã«ãèªã¿æžãã§ãããããã€ããªã¯ç§»æ€æ§ãé«ããšèšã£ãŠãã®ãšåãããšã§ããæ§é ïŒãŸãã¯åæ§é ïŒã®ããã¹ãããŒã¹ã®ããŒã¿åœ¢åŒãèªçããã®ã UNIX ã®æä»£ããåŸã§ããã€ãŸã UNIX ã³ãã³ããæ±ããªãããã¹ãããŒã¹ã®åœ¢åŒãæ°ãã«èªçããŠããŸã£ãããã§ããUNIX ã³ãã³ãã®æ£ããè§£éã¯ãåçŽãªè¡æåã®ããã¹ã圢åŒã§ããã° UNIX ã³ãã³ãã§ãæ±ããããšããçšåºŠã®ãã®ã§ãããã以å€ã®åœ¢åŒãæ±ãã«ã¯ jq ã³ãã³ãã®ãã㪠UNIX ã³ãã³ã以å€ã®ã³ãã³ããå¿
èŠã§ãã
ã©ãããŠãç¬èªã®åœ¢åŒãå¿ èŠãªå Žåã¯ãç¬èªåœ¢åŒã¯ããã¹ãããŒã¹ã«ããŠãããæ¹ãè¯ããšã¯æããŸãããããŒã¿ã®ç§»æ€æ§ãé«ãåºæºã¯ããã¹ãããŒã¹ããã€ããªããŒã¹ãã§ã¯ãªãæšæºçãªãã¡ã€ã«åœ¢åŒã䜿ãããšã§ããããã©ãããŠãæšæºçãªãã¡ã€ã«åœ¢åŒã䜿ãããšãåºæ¥ããåçŽãªåœ¢åŒã«ãåºæ¥ãªãã®ã§ããã°ãæ°ãã«ãã¡ã€ã«åœ¢åŒã®ä»æ§ãå®çŸ©ããŠå ¬éããããç°¡åã«èªã¿æžããæšæºçãªåœ¢åŒã«å€æã§ããã©ã€ãã©ãªãã³ãã³ããïŒå¯èœã§ããã°ãªãŒãã³ãœãŒã¹ã§ïŒäœããšè¯ãã§ãããããããã®åœ¢åŒãäžã®äžã«åºãŸãã°æšæºçãªãã¡ã€ã«åœ¢åŒã®ä»²éå ¥ãã§ãããã¡ããããã°ã©ã ãå éšçã«äœ¿ãã ãã®ãã¡ã€ã«åœ¢åŒã§ããã°ç¬èªåœ¢åŒã§ä»æ§ãå®çŸ©ããªããŠãæ§ããŸãããæšæºå ¥åºåã®ã€ã³ã¿ãŒãã§ãŒã¹ãããããããããã°ããã§ååã§ãã
æçŸ©6: å€ãã®ãœãããŠã§ã¢ã掻çšããŠçç£æ§ãé«ãã
- æ§: ãœãããŠã§ã¢ã®æ¢åãæå¹ã«æŽ»çšãã
æåã«ãããèªãã æããœãããŠã§ã¢ã®æ¢åãã®æå³ãããããŸããã§ãããæ¢åïŒãã³ïŒãšã¯ãã³ã®åçã®ãã³ã§ããè±èªã ãšã¬ãã¬ããžã§ããã¬ãã¬ããžã¯æè³çšèªãšããŠã¯ãã䜿ãããŠããŸãããã³ã§ãã¬ãã¬ããžã§ãããããããŸããã§ããããã®æç« ã®æå³ã¯ãäžäººã®åã¯å°ããéçãããããä»ã®äººãäœã£ããœãããŠã§ã¢ããã³ãšããŠèãããšããã³ã䜿ã£ãŠå°ããåã倧ããªåãžãšå€æã§ããããã«ãèªåäžäººã®åã§ã¯åºæ¥ãªãããšãäœããªããããªãã®ãä»äººã®åãåããŠå®çŸã§ããããšèšãæå³ã§ããã€ãŸãããœãããŠã§ã¢ã®æ¢åãæå¹ã«æŽ»çšããããšã¯ ãæ¢åã®ãœãããŠã§ã¢è³ç£ãå©çšããŠçç£æ§ãé«ããŸãããã ãšããæå³ã§ãã
ãã ããœãããŠã§ã¢è³ç£ãå©çšãããšãã£ãŠãã³ãŒãã®ã³ããïŒæ¢åã®ã³ãŒããåã貌ãããŠäœ¿ãããšïŒãããŠã¯ãããŸãããã·ã§ã«ã¹ã¯ãªããã§ãã£ãŠãèäœæš©ã¯ãããŸãããæ¢åã®ã³ãŒããïŒæå³ãçè§£ããã«ïŒåã貌ãããŠäœ¿ãè¡çºã¯å質ãèœãšãããšã«ã€ãªããã®ã§ãã¡ã ãšããã®ã¯ãããç¥ãããŠãããšæããŸãããããããããæžãã®ã¯ã¬ã³ã«ãŒãºãã³ãããæšå¥šããŠãããããªæžãæ¹ãããŠããããã§ããæåã«ããã¹ãããšã¯æ±çšçãªã©ã€ãã©ãªãä¿®æ£ããã«äœ¿ãããšã§ãããã®åœããåã®è©±ããUNIX ãšããèãæ¹ãã«ç»å ŽããŠãªãã®ã¯ãããããåœæã¯ãæ±çšçãªã©ã€ãã©ãªããšããèãæ¹ãåžèã ã£ããšæãããããã§ãããã®æ ¹æ ã¯ã詳説 æ£èŠè¡šçŸ 第äžçãã® P86 ã«æžãããŠãã以äžã®æç« ã§ãã
åãã 1986 幎ã«åããŠç»å Žãããããã POSIX ãããéèŠãªãã®ããHenry Spencer ã C èšèªã§æžããæ£èŠè¡šçŸããã±ãŒãžã§ããããã®ããã±ãŒãžã¯ãä»ã®ããã°ã©ããèªç±ã«èªåã®ããã°ã©ã ã«çµã¿èŸŒããããã«ãªã£ãŠãããããã®ãããªãã®ã¯åœæãšããŠã¯åããŠã ã£ããHenry ã®ããã±ãŒãžã䜿ã£ãŠããããã°ã©ã ïŒå€æ°ãã£ããïŒã¯ãäœè ãããããæžãæãããããªããšãããªããã°ãã©ããäžå®ã®åãåããããã
ãã®æç« ãåããŠèªãã æãïŒOS ã®æšæºã©ã€ãã©ãªä»¥å€ã«ïŒæ±çšçãªã©ã€ãã©ãªããªãã£ãæä»£ããã£ãããšã«ãèªåãæ°ã¥ããŠããªãããšã«æ°ãä»ããŸãããèããŠã¿ãã° C èšèªèªäœã UNIX ã®éçºã§çãŸããèšèªãªã®ã§ãUNIX ãäžã®äžã«çºè¡šãããæã« C èšèªçšã®æ±çšã©ã€ãã©ãªããªãã®ã¯åœããåã®è©±ã§ããUNIX ãäžã®äžã䜿ãå§ããæãçã¯å šãŠã®ã³ãŒããèªåã§æžããŠããããã§ãã
æ±çšçãªã©ã€ãã©ãªãèšèšããã®ã¯æå€ãšé£ãããã®ã§ããæ±çšçãªã©ã€ãã©ãªããªãæä»£ã§ã¯ãæ¢åã®ã³ãŒãã®äžãã䜿ããããªã³ãŒããæ¢ãåºããŠã³ãããããããããŸããããã®ãã UNIX ãæäŸããæšæºçãªæ©èœïŒC èšèªã®æšæºã©ã€ãã©ãªãã³ãã³ãïŒã®ã¿ã䜿ããããšã¯ã³ããããŠäœ¿ãã®ãåœæã®ããããéçºã¹ã¿ã€ã«ã ã£ãã®ã ãšæããŸãããŸãããããæã®è©±ã§ããä»ã¯é«åè³ªãªæ±çšã©ã€ãã©ãªãã©ã®èšèªã«ããããŸããïŒã·ã§ã«ã¹ã¯ãªããã¯å°ãªãã®ã§ããã»ã»ã»ïŒ
ãœãããŠã§ã¢ã®æ¢å㯠UNIX ã«æåããåãã£ãŠãåºæ¬æ©èœã ãã®ããšã§ã¯ãããŸãããC èšèªãã·ã§ã«ã¹ã¯ãªããã ãã§ã¯ãªããããããèšèªãããããã©ã€ãã©ãªããããããã¬ãŒã ã¯ãŒã¯ãããããã³ãã³ããããããããã«ãŠã§ã¢ããã¹ãŠã®ãœãããŠã§ã¢ãæ¢åã§ããä»ã®ããã°ã©ã ã¯ãšãŠã倧ãããªãããŸã OS ãæäŸããŠãªãç»ååŠçãé³å£°åŠçãªã©é«åºŠã§é£ããã¢ã«ãŽãªãºã ãå¿ èŠãšãããã®ãå€ããããäžäººã®åã§äŸ¡å€ã®ãããœãããŠã§ã¢ãäœãã®ã¯é£ãããªã£ãŠããŸããŸããã䟡å€ã®é«ãã©ã€ãã©ãªãšããã®ã¯äœåè¡ãäœäžè¡ããããåããããªãã®ãäœããšãããèšå€§ãªæéãããã£ãŠããŸããŸãã
ãã§ã«ãããœãããŠã§ã¢ã掻çšããã®ã¯ä»ã§ã¯åœããåã®èãæ¹ã§ããä»ã§ã¯ããŸããŸãªãœãããŠã§ã¢ããªãŒãã³ãœãŒã¹ãã€ç¡æã§äœ¿ããããã«ãªããŸãããéã«ç°¡åãããããšãŸã§éå°ã«ã©ã€ãã©ãªã«äŸåããã®ã¯ãããããšèŠåããªããã°ãããªããããã§ãããœãããŠã§ã¢ã®å質ã¯äŸåããŠãããœãããŠã§ã¢ã«äŸåããã®ã§ãå質ã®é«ããã®ãéžã°ãªããã°ãããŸããããããã£ãå質ãé«ããœãããŠã§ã¢ãèŠæãã®ãæè¡åã®äžã€ã§ãã
æçŸ©7: ã³ãã³ããã·ã³ãã«ã«çµã¿åãããããã«ã·ã§ã«ã¹ã¯ãªãããæŽ»çšãã
- æ§: ã·ã§ã«ã¹ã¯ãªããã䜿ãããšã§æ¢åã®å¹æãšç§»æ€æ§ãé«ãã
ãŸãæåã«æããã«ããŠãããªããã°ãããªãããšãäºã€ãããŸããäžã€ã¯ã¬ã³ã«ãŒãºã¯ C èšèªãããã·ã§ã«ã¹ã¯ãªããã®æ¹ãç§»æ€æ§ãé«ããšèšã£ãŠããã ãã§ãRust ã Go ã Python ã Perl ãªã©ã®ä»ã®æ°ããèšèªãšã®æ¯èŒã¯ããŠããªããšããããšã§ããããäžã€ã¯ã·ã§ã«ã¹ã¯ãªãããä»ã® OS ãžç§»æ€ããå Žåã¯ç§»æ€æ§ã¯äœããšããããšã§ããæ¢åã®å¹æãé«ããã®ã«ã·ã§ã«ã¹ã¯ãªããã§ããå¿ èŠã¯ãããŸããã
äžã€ç®ã«ã€ããŠã§ãããã¬ã³ã«ãŒãºãä»ã®èšèªãšæ¯èŒããŠããªãçç±ã¯ãUNIX å šçæã®æä»£ã«ã¯ãä»ã®èšèªã¯ããŸã èªçããŠããªããæ®åããŠããªã段éã§ãããUNIX éçºè ã§ããã¬ã³ã«ãŒãºã«ãšã£ãŠ UNIX ã®äžéšã§ã¯ãªãèšèªã¯éžæè¢ã«ãªããªãã£ãããã§ããC èšèªãšã·ã§ã«ã¹ã¯ãªãã㯠UNIX ã®éçºã®äžã§çãŸããèšèªã§ UNIX ã®äžéšã§ããããã®ä»ã®èšèªã¯ããã§ã¯ãããŸãããè£è¶³ãšããŠäžå¿ awk ã UNIX ã§çãŸããèšèªã§ãã sed ãèšèªã«è¿ãæããããŸãããæ±çšæ§ãšããŠã¯ã·ã§ã«ã¹ã¯ãªãããããå£ã£ãŠããŸãã
äºã€ç®ã«ã€ããŠã§ãããã¬ã³ã«ãŒãºãã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ãé«ããšèšã£ãŠãã®ã¯ããããŸã§èªç€Ÿã® UNIX ãæ°ããã¢ãŒããã¯ãã£ã®ã³ã³ãã¥ãŒã¿ã«ç§»æ€ããæã«ãã·ã§ã«ã¹ã¯ãªããã§æžããŠããã°ä¿®æ£ã®å¿ èŠããªããšãã話ã§ããç§»æ€ãã UNIX ã¯ãããŸã§ã® UNIX ãšåãããããã¯åã UNIX ã®åŸç¶ããŒãžã§ã³ãªã®ã§ããã®å Žåã¯ç¢ºãã«ã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ã¯é«ããšèšããŸãããããä»ç€Ÿã® UNIX ãžã·ã§ã«ã¹ã¯ãªãããç§»æ€ããå Žåãç°å¢äŸåãæ¿ããããã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ã¯äœããªããŸãã
ããã§ POSIX ã§ UNIX ã®ä»æ§ãæšæºåãããã®ã ãããPOSIX ã«åŸã£ãŠããã°ã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ã¯é«ããªãã®ã§ã¯ãªããïŒãšæããããããŸããããããã«çœ ããããŸããå®ã¯ POSIX ã¯å UNIX ã³ãã³ãã®å®è£ ã®éããå®å šã«ãªããããšãç®çãšããŠããŸããã倧éæã«èšããªãã°ã1. ã©ã®å®è£ ã§ãäºææ§ãããéšåãã2. 埮åŠã«åããç°ãªãéšåãã3. äºææ§ããªãéšåãã«åé¡ããŠãç§»æ€æ§ãé«ãã¢ããªã±ãŒã·ã§ã³ãéçºããå Žå㯠2 ãš 3 ã«æ°ãã€ããªããéçºããŠãã ãããšããã¬ã€ãã©ã€ã³ãäœã£ãã ãã§ããå UNIX ãã³ããŒã¯åŸæ¹äºææ§ãç¶æããããã«èªåãã¡ã®å®è£ ã®åãã倿ŽãããPOSIX ãããã§è¯ãïŒPOSIX æºæ ãšèªããïŒãšããŠããŸããPOSIX ã¯å®è£ ãããã®èãæ¹ãªã®ã§ãå€ãã®å®è£ ã§äºææ§ããããšèªããããã°æšæºåããŸãããèªããé³é ãåã£ãŠä»æ§ãçµ±äžããããæ°ãã仿§ãçå®ãããããŸãããåºæ¬çã« UNIX ãã³ããŒä»»ããšãªã£ãŠãããUNIX ãã³ããŒã¯åŸæ¹äºææ§ã®ããã«åäœã倿Žããªããã POSIX ã®æ¹èšãå°ãªãçç±ã§ãïŒå®è£ ããããªã®ã§æ¹èšããããŠã UNIX ãã³ããŒã倿ŽãããŸã§ã¯æ¹èšåºæ¥ãªãïŒããã ã C èšèªã®éšåã«é¢ããŠã¯ ANSI C ã§æšæºåããããã®ãæ¡çšãããšããæ¹éã§ãããANSI C 㯠POSIX ãšã¯å¥ã®æã§å®æçã«æ¹åãããŠããŸããã€ãŸãã·ã§ã«ã¹ã¯ãªããã«é¢ä¿ããéšåã ããç§»æ€æ§ãäœããŸãŸåãæ®ãããŠããã®ãçŸç¶ã§ãã
çªç¶ã§ããããã§ã¯ã€ãºã§ããæ¬¡ã® 1ã2 ã®ãã¡ãç§»æ€æ§ãé«ãã·ã§ã«ã¹ã¯ãªããã¯äžè¬çã«ã©ã¡ãã«ãªãã§ããããïŒãªãããã§ããç§»æ€æ§ãšã¯ä»ã® UNIX ãŸã㯠UNIX ç³» OS ãžã®ç§»æ€æ§ã®ããšã§ãã
- æšæºã€ã³ã¹ããŒã«ãããŠãã UNIX (POSIX) ã³ãã³ãã ãã䜿ãã·ã§ã«ã¹ã¯ãªãã
- æšæºã€ã³ã¹ããŒã«ãããŠããªã é UNIX (POSIX) ã³ãã³ãã ãã䜿ãã·ã§ã«ã¹ã¯ãªãã
æ£è§£ã¯ 2 ã§ãã1 ã¯å UNIX ããšã«åŸ®åŠã«äºææ§ããªãã³ãã³ãã«äŸåããŠããŸãããã©ãŠã¶ã Java ã®å®è£ ãå€ããŠäºææ§åé¡ã§èŠããã§ããã®ãšåã話㧠UNIX ã³ãã³ãã®å®è£ ãå€ããã°å€ãã»ã©äºææ§ã¯äœããªããŸããäžæ¹ã2 ã® UNIX ã³ãã³ã以å€ã¯åºæ¬çã«éçºå ãäžã€ã§ããã®ã³ãã³ãããã®ãŸãŸäœ¿ã£ãŠããããšãå€ãããäºææ§åé¡ã¯ãããŸããããã¡ãããã®ã³ãã³ããã©ã®ç°å¢ã§ãåãäºææ§ãç¶æããŠããå Žåã«éãããŸããããŠãŒã¶ãŒãå€ãã³ãã³ãã¯å€§æµãã®æ¡ä»¶ãæºãããŠããŸããããã§ 1 ãšçãã人ã¯ããããã ãOS ã®æå°æ§æã§åãããšããšãç§»æ€æ§ããæ··åããŠããŸããã€ã³ã¹ããŒã«ãããŠããªããªãã€ã³ã¹ããŒã«ããã°è¯ãã ãã§ãã1980 幎代ã®ãC èšèªã§äœãããã³ãã³ãã¯ãã«ããé£ãããŠã€ã³ã¹ããŒã«ããã®ã¯å€§å€ããšããèãã¯éå»ã®ãã®ã§ããä»ã¯ããã±ãŒãžãããŒãžã£ã䜿ã£ãŠç°¡åã«ã³ãã³ãã®ã€ã³ã¹ããŒã«ãã»ãã¥ãªãã£æŽæ°ãã§ããŸããã·ã§ã«ã UNIX ã³ãã³ãã®äºææ§åé¡ã§ãããGNU bash ã GNU CoreUtils ãã€ã³ã¹ããŒã«ããçšåºŠã§è§£æ±ºããããšãåºæ¥ãŸãããµãŒããŒãœãããªãããããããã»ãšãã©ã®ã³ãã³ãã¯èšå®äžèŠã§ã€ã³ã¹ããŒã«ããã ãã§äœ¿ããŸããããã±ãŒãžããªãå Žåã§ã Go ã§äœããããœãããŠã§ã¢ãªã©ã¯ã¹ã¿ãã£ãã¯ãã«ãæžã¿ã®ãã®ãé åžãããŠãããããã®ã§ãã·ã§ã«ã¹ã¯ãªãããã³ããŒããããã«å®è¡ãã¡ã€ã«ãã³ããŒããã ãã§äœ¿ããŸãã
ããŠããããŸã§ã§ã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ã¯äœããšæããã«ããŸãããåŸã«èªçããæ°ããèšèªã¯ C èšèªãã·ã§ã«ã¹ã¯ãªãããããåªããŠããŸãããœãããŠã§ã¢ã®æ¢åïŒã³ãã³ããã©ã€ãã©ãªïŒã®å¹æãªãä»ã®èšèªã§ã掻ããããšãåºæ¥ãã®ã§ã·ã§ã«ã¹ã¯ãªããã«ãã ããçç±ã¯ãããŸãããããã«ä»ã®èšèªã¯é£ããããšãèããã«é«ãç§»æ€æ§ãå®çŸããããšãã§ããŸããã·ã§ã«ã¹ã¯ãªããã§ã¢ããªã±ãŒã·ã§ã³ãéçºãããšããã®ã¯ãä»ã« C èšèªãããªãã©ã€ãã©ãªããªãã£ã 1980 幎代ã®ã¢ã€ãã¢ã§ããåœæã¯é¢çœãã¢ã€ãã¢ã ã£ããããããŸãããããã 30 幎ã 40 幎ãæã®ã¢ã€ãã¢ã§ããããã¹ãããŒã¹ã®ãã¡ã€ã«ãæ±ãå Žåã§ãä»ã®èšèªã®æ¹ãããé«éã§ç°¡åã§ãã
ã·ã§ã«ã¹ã¯ãªããã§ã®ã¢ããªã±ãŒã·ã§ã³éçºã¯ãæ¬è³ªçã«ããã€ãã®åé¡ãæ±ããŠããŸããã³ã³ãã€ã«ãäžèŠãšããç¹ã¯ C èšèªã«å¯Ÿããã¡ãªããã«ãªããŸãããä»ã®ã¹ã¯ãªããèšèªã¯ãããåãã§ããã¹ã¯ãªããèšèªã®æç¹ã§é«ãããã©ãŒãã³ã¹ãå®çŸããããšã¯ã§ããŸããããé »ç¹ã«å€éšã³ãã³ããåŒã³åºããŠã¯ããã«çµäºãããã¹ã¿ã€ã«ã§ãããããäœåºŠãã³ãã³ãã®å®è¡ãããŒã¿ã®èªã¿çŽããçºçãããã©ãŒãã³ã¹ã®æªãã«æè»ããããŠããŸãããã€ãã«ãã倧éã®ããŒã¿ã®ããã»ã¹ééä¿¡ãããã©ãŒãã³ã¹ã«åœ±é¿ãäžãããã€ãã§ã€ãªããã³ãã³ããå€ããšãã®æ°ã ãäžæçãªäžéããŒã¿ãã¡ã¢ãªå ã«äœåºŠãäœãããšã«ãªãã®ã§å¹çãæªããªããŸããè€éãªããŒã¿æ§é ã«å¯Ÿå¿ããŠãªããããé©åãªããŒã¿æ§é ãçŽæ¥æ±ãã倿ãå¿ èŠãšããOS ãæã£ãŠãã API ãçŽæ¥åŒã³åºãããšãã§ãããããŸããŸãªåŠçãä»ã®èšèªã®ããã°ã©ã çµç±ã§å®è¡ããªããã°ãªããªããããããããªãŒããŒãããã«ãªããŸããçµå±ä»ã®èšèªã®ããã°ã©ã ãåŒã³åºããŠåŠçããã®ã§ããã°ãæåãããã®èšèªã§ãã£ãã»ããå¹çãæ§èœãé«ããšããããšã§ããç°¡åãªãã®ãªããããããã·ã§ã«ã¹ã¯ãªããã®äžã§ãããããªåŠçãããããšæã£ããå€ãã®ã³ãã³ããçµã¿åãããªããã°ãããªããªããããããã«è€éã«ãªã£ãŠããŸããŸãã
ç°¡æœã«èšããªããé«åºŠãªããŒã¿åŠçãè¡ãã®ã§ããã°ã·ã§ã«ã¹ã¯ãªããã䜿ããããä»ã®èšèªã䜿ã£ãã»ããè¯ãããšããããšã§ããä»ã®èšèªã«ã¯æãã awk ã Perl ã䜿ãããŠããŸããããæè¿ãªã Python ã Go ãªã©ã䜿ããšè¯ãã§ãããããã¡ããåçŽãªããã¹ãåŠçã§ååãªå Žå㯠sed ã grep ã䜿ã£ãŠããã®ã§ããããããã®ã³ãã³ããããã€ãè€éã«çµã¿åãããŠãããããäžã€ã®ããŒã¿åŠçããããããããªãããã®éšåãã·ã³ãã«ãªãä»ã®èšèªã§äœã£ãäžã€ã®ã³ãã³ããã§çœ®ãæããæ¹ãåªããŠããŸããã ãããšãã£ãŠã·ã§ã«ã¹ã¯ãªããã«åœ¹ç®ããªããšããããšã§ã¯ãããŸãããã·ã§ã«ã¹ã¯ãªããã®åœ¹ç®ã¯ãç¬ç«ããè€æ°ã®ããŒã¿åŠçãè¡ããã³ãã³ãã飿ºãããããšãã§ãã
ã·ã§ã«ã¹ã¯ãªãããã³ãã³ãã飿ºãããã®ã«åããŠããçç±ã¯ãã³ãã³ãã颿°ã®ããã«äœ¿ããããã«èšèšãããŠããããã§ããä»ã®èšèªã§ã¯ãã®èšèªã®é¢æ°ã䜿ã£ãŠéæ¥çã«ã³ãã³ããåŒã³åºãå¿ èŠãããããé¢åã§ãããŸãã³ãã³ãã¯æšæºåºåã«ããŒã¿ãåºåããŸãããä»ã®èšèªã®é¢æ°ã¯æšæºåºåã¯åºæ¬çã«äœ¿ãããæ»ãå€ã§ããŒã¿ãè¿ãããã颿°ãšã³ãã³ãã§ã¯ã€ã³ã¿ãŒãã§ãŒã¹ãå šãç°ãªã£ãŠããŸãããã®ãããªéãããããããä»ã®èšèªã¯ã·ã§ã«ã¹ã¯ãªããã®ä»£ããã«ã¯ãªããããããã£ãŠã³ãã³ãã飿ºãããã¹ã¯ãªããèšèªã«ã¯ã·ã§ã«ã¹ã¯ãªãããæãé©ããŠãããšèšããŸãããªãããã§ããã·ã§ã«ã¹ã¯ãªãããšã¯ Bourne ã·ã§ã«ã POSIX ã·ã§ã«ã«éå®ããŠããŸããã察話çã«äœ¿ããã·ã§ã«ïŒcsh ã fish ãªã©ïŒã§åäœããã·ã§ã«ã¹ã¯ãªãããã¹ãŠãå«ãã§ããŸããïŒåºçŸ©ã«ã¯ Windows ã®ããããã¡ã€ã«ãå«ãŸããŸãïŒ
ããŠãå°ãé·ããªã£ãŠããŸã£ãã®ã§è»œããŸãšããŠãããŸããããæ¢åã®å¹æãšç§»æ€æ§ãé«ããããã ãã«ã·ã§ã«ã¹ã¯ãªããã䜿ãçç±ã¯ãããŸãããããã€ãçµã¿åãããŠç¡çããäžã€ã®ããŒã¿åŠçãè¡ãããããªããä»ã®èšèªã§ããŒã¿åŠçãè¡ãã³ãã³ããäœããŸããããUNIX ã³ãã³ãã«åºå·ããããªã awk ãèšèªãšããŠäœ¿ããŸããããã£ãšé©åãªã³ãã³ãã䜿ããªããæ¢ããŸããããã·ã§ã«ã¹ã¯ãªããã¯ã³ãã³ãã飿ºãããæã«äœ¿ããŸãããã ãã·ã§ã«ã¹ã¯ãªããã UNIX ã³ãã³ãã¯ç§»æ€æ§ãäœãã®ã§æ³šæãå¿ èŠã§ããç§»æ€æ§ã¯å¿ é ã§ã¯ãªãã®ã§è«Šããã®ãããã§ãããŸã GNU bash ã GNU CoreUtils ãªã©ãã€ã³ã¹ããŒã«ããŠäœ¿ãã°ç§»æ€æ§åé¡ã¯ããçšåºŠè§£æ±ºããŸããUNIX å²åŠã¯ããããªéå ·ãçµã¿åãããŠäœ¿ãããšãªã®ã§ãéå ·ãã€ã³ã¹ããŒã«ããŠåé¡ã解決ããããšã¯ãŸãã« UNIX å²åŠã®èãæ¹ã§ãã
æçŸ©8: èªååŠçã®ããã«ã³ãã³ãã«ã¯é察話çãªã€ã³ã¿ãŒãã§ãŒã¹ãæããã
- æ§: é床ã®å¯Ÿè©±çã€ã³ã¿ãŒãã§ãŒã¹ãé¿ãã
ãé床ã®å¯Ÿè©±çã€ã³ã¿ãŒãã§ãŒã¹ãé¿ããããšæå³ã倧ããå€ãã£ãããã§ã¯ãããŸããããé床ãšèšãããŠãã©ã®ã¬ãã«ãé床ãªã®ãããããŸããããŸããéèŠãªããšã¯å¯Ÿè©±çãªã€ã³ã¿ãŒãã§ãŒã¹ãé¿ããããšã§ã¯ãªãã察話çã§è±ã€ã³ã¿ãŒãã§ãŒã¹ãããããããšã§ãããããã£ãŠå¯Ÿè©±çã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããŠãè¯ãããã©ããèªååŠçãã§ããããã«é察話çã«äœ¿ããã€ã³ã¿ãŒãã§ãŒã¹ãæãããŸããããšãã圢ã«ä¿®æ£ããŠããŸãã
察話çã€ã³ã¿ãŒãã§ãŒã¹ãšã¯ãäŸãã°ãå®è¡ããŸããïŒ (Y/N)ãã®ããã«äººéãã³ã³ãã¥ãŒã¿ãšè©±ãïŒå¯Ÿè©±ïŒããã«æäœããããšãåæãšããã€ã³ã¿ãŒãã§ãŒã¹ã®ããšã§ããä»ã«ã¯ã«ãŒãœã«ããŒã§ã¡ãã¥ãŒãéžæãããããªã€ã³ã¿ãŒãã§ãŒã¹ãããã§ããæäœã ãã§ã¯ãªããls ã®ã«ã©ã 衚瀺ãåºåã«è²ãä»ãããããªäººéã®ããã®åºåæ©èœã察話çã€ã³ã¿ãŒãã§ãŒã¹ãšèšããŸããïŒã·ã§ã«ã¹ã¯ãªããã§ã¯ãªãïŒäººéãã·ã§ã«ã䜿ã£ãŠãããšãã察話çã«äœ¿ã£ãŠãããšèšããŸãã察話çãªæ©èœãå®è£
ããŠããå Žåã«ã¯ããããç¡å¹ã«ãããªãã·ã§ã³ãä»çµã¿ïŒåºåå
ã端æ«ã§ã¯ãªãæã«èªåçã«ç¡å¹ã«ãããªã©ïŒãæãããªããã°ãªããŸããã
察話çã€ã³ã¿ãŒãã§ãŒã¹ãé¿ããçç±ã¯ããã®ãããªãã®ããããšã·ã§ã«ã¹ã¯ãªããããèªååŠçãè¡ãããšãå°é£ã«ãªãããã§ãã(Y/N) ã®ãããªè³ªåã§ããã° yes ã³ãã³ãã䜿ã£ãŠåé¿ãã§ããŸãããããã¯è¡åãæªãããã°ã©ã ã®ããã®æçµææ®µã§ãã£ãŠ yes ã³ãã³ãã䜿ãããšããªãããã«ããªããã°ãããŸãããäŸãã°å
šãŠã®è³ªåã«èªåçã« yes ãéžæãããªãã·ã§ã³ãã³ãã³ãã«å®è£
ãããããããšã§ãã
CLI ç°å¢ã§åãããã°ã©ã 㯠CLI ã³ãã³ãã ãã§ã¯ãªãããšã«æ³šæããŠãã ãããTUIïŒããã¹ããŠãŒã¶ã€ã³ã¿ãã§ãŒã¹ïŒãšåŒã°ããããã¹ãããŒã¹ã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãæã£ãããã°ã©ã ããããŸãïŒã¡ãªã¿ã« CUI ã¯å補è±èªã§ãïŒãäŸãã° vim ã emacs ã®ãããªãã®ã§ãããã¹ãæåã䜿ãããã©ããç»é¢å
šäœã䜿ã£ãŠ GUI ã®ãããªã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŠãããã®ã§ãããã®ãã㪠TUI ãšããŠäœ¿ãã®ãåæãšããããã°ã©ã ã«ããããé察話çãªã€ã³ã¿ãŒãã§ãŒã¹ãçšæããå¿
èŠã¯ãããŸãããTUI ã« CLI ãšããŠäœ¿ãããããªã€ã³ã¿ãŒãã§ãŒã¹ã远å ããŠè€éåãããããããå¥ã® CLI ã³ãã³ããšããŠç¬ç«ãããæ¹ãè¯ãã§ããããå¥ã³ãã³ããšããŠåé¢ãããšããŠãããã®äžã§å®è¡ããåŠçãã©ã€ãã©ãªãªã©ã«ããããšã§å
±éåããããšãåºæ¥ãã®ã§éè€ã³ãŒããå¢ããŠããŸãããšã¯ãããŸããã
æçŸ©9: ããŒã¿ãåŠçããããã°ã©ã ã¯å¯èœãªéããã£ã«ã¿ã«ãã
- æ§: ãã¹ãŠã®ããã°ã©ã ããã£ã«ã¿ã«ãã
UNIX ã³ãã³ãã®æèã§ãã£ã«ã¿ãšã¯ããŒã¿ãæšæºå ¥åããå ¥åãæšæºåºåã«ããŒã¿ãåºåããã³ãã³ãã®ããšã§ããUNIX ã³ãã³ãã¯å¿ ããããã£ã«ã¿ã«ãªã£ãŠããããã§ã¯ãããŸãããå³å¯ã«æ°ããŠã¯ããŸããããããããã£ã«ã¿ãšããŠæ©èœãããã®åæ°ã»ã©ãããªããšæãããŸãã
UNIX ã³ãã³ãã§ãã£ã«ã¿ã«ãªã£ãŠããã®ã¯ãããã¹ãåŠçãããŒã¿åŠçã®ã³ãã³ãã§ãããã®ãããªã³ãã³ãã«ã¯ sed, awk, cut, grep ãªã©ããããŸãããŸã diff ã join ã®ããã«ããŒã¿ã®äžã€ã¯æšæºå
¥åããåãåããã®ã®ããäžã€ã¯ãã¡ã€ã«ããå
¥åãããšããäžå®å
šãªãã£ã«ã¿ããããŸãã
äžæ¹ã§ãã¡ã€ã«ç®¡çãããã»ã¹ç®¡çã®ã³ãã³ãã¯ãã£ã«ã¿ã§ã¯ãããŸãããäŸãã° df, du, ls, ps ãªã©ã§ãããããã¯å
¥åããŒã¿ãæšæºå
¥åã§ã¯ãªããã¡ã€ã«ã·ã¹ãã ãããã»ã¹æ
å ±ããçŽæ¥ååŸããŸãããããã£ãŠå
šãŠã®ããã°ã©ã ããã£ã«ã¿ã«ããããšã¯åºæ¥ãŸããã
ããŒã¿å
¥åãè¡ããªãã³ãã³ãã倿°ãããŸããäŸãã° echo, printf, seq, yes, date, dirname, basename ãªã©ã§ãããããã®ã³ãã³ãã¯ã³ãã³ãã©ã€ã³åŒæ°ã§æåã倿ŽããŸããã³ãã³ãã©ã€ã³åŒæ°ãå
¥åãšèããããšãåºæ¥ãŸãããæšæºå
¥åããããŒã¿ãå
¥åããã®ã§ã¯ãªãããå®çŸ©äžã¯ãã£ã«ã¿ã§ã¯ãããŸããããã®ãããªããã°ã©ã ã¯äººéã®æç€ºïŒåŒæ°ïŒã§ãããã°ã©ã ãããŒã¿ãäœãããšèããããšãåºæ¥ãŸããå¿
ãããããã°ã©ã ããèªã¿åãå¯èœãªããŒã¿ãå
ã«ããããã§ã¯ãªãã®ã§ãããããã¹ãŠã®ããã°ã©ã ããã£ã«ã¿ã«ã¯åºæ¥ãªãçç±ã§ãã
æšæºå
¥åãæšæºåºåããªãã³ãã³ãããããŸããäŸãã° chmod, chown, kill, wait ãªã©ã§ãããããã¯åŒæ°ã§äººéã®æç€ºãåãåããã¡ã€ã«ã·ã¹ãã ãããã»ã¹æ
å ±ã«çŽæ¥åœ±é¿ãäžããŸãã
ãã®ããã«æ¢åã® UNIX ã³ãã³ãã«ã¯ãã£ã«ã¿ã§ã¯ãªããã®ã倿°ãããŸãããã®ãããªç¶æ ã§ããã¹ãŠã®ããã°ã©ã ããã£ã«ã¿ã«ããããšèšãããŠã説åŸåã¯ãããŸãããç¡çãããã£ã«ã¿ã®ãããªåœ¢ã«ããããšæãã°åºæ¥ããããããŸããããããã§ã¯ UNIX ãšããŠçŽæçãªã€ã³ã¿ãŒãã§ãŒã¹ãšã¯èšããªããªãã§ããããïŒå人çã«ã¯ç¡çãããã£ã«ã¿ã®åœ¢ã«ãããšããçºæ³ã§é¢çœãããšãåºæ¥ãã®ã§ã¯ãªãããšèããŠããŸããããŸã èãã¯ãŸãšãŸã£ãŠããŸããïŒ
ããŒã¿ãšã¯ãªã«ãïŒããããããã¯ããã¡ã€ã«ã®äžèº«ããšããŠè¡šçŸå¯èœãªãã®ã§ã¯ãªãã§ããããïŒãã£ã«ã¿ããªãæä»£ãã€ãŸããã€ããååšããªãæä»£ãåããããªããšãããã«ã¯ããããã°ã©ã ã®åºåããã¡ã€ã«ã«åºåããŠã次ã®ããã°ã©ã ã¯ãã®ãã¡ã€ã«ãåŠçããŠããŸããããããäžèŠã«ãããããã°ã©ã ã®åºåãå¥ã®ããã°ã©ã ã®å
¥åã«çŽæ¥ã€ãªããããšãåºæ¥ãã®ããã€ãã§ããã€ãŸããã£ã«ã¿ã«ããããšãå¯èœãªã®ã¯ããã¡ã€ã«ã®äžèº«ããæ±ãããã°ã©ã ã ãã ãšããããšã§ããchmod ã®ãããªãã®ã¯ããã¡ã€ã«ã®äžèº«ãã§ã¯ãªãããã¡ã€ã«ã®ã¡ã¿æ
å ±ããæ±ããã®ãªã®ã§ãã£ã«ã¿ã«ã§ããŸããããããã¹ãŠã®ããã°ã©ã ããã£ã«ã¿ã«ãããªãã°ããã®åæãšããŠãã¹ãŠã®æ
å ±ãããã¡ã€ã«ã®äžèº«ããšããŠè¡šçŸãã OS ãäœããã°ãªããªãã§ããããUNIX ã¯ãã®ãã㪠OS ã§ã¯ãªãã®ã§ããã¹ãŠã®ããã°ã©ã ããã£ã«ã¿ã«ããããšã¯ã§ããŸããã
ãœãããŠã§ã¢ããŒã«ã®æºæçŸ©
ãUNIX ãšããèãæ¹ãã§ã¯ 9 ã€ã®æçŸ©ã®ä»ã«ããããªã 10 ã® UNIX ã®èãæ¹ã (Ten Lesser Tenets) ãšããŠéèŠåºŠã®äœãæçŸ©ã玹ä»ãããŠããŸãããã®èšäºã§ã¯ããããæºæçŸ©ãšè¡šçŸããŠããŸãããã ãåã«ãUNIX ãšããèãæ¹ãã«å¯Ÿå¿ãããŠæºæçŸ©ãšæžããŠããã ããªã®ã§ããã®èšäºã®èª¬æã«ã¯ LesserïŒå£ãïŒãšãããã¥ã¢ã³ã¹ã¯å«ãŸããŠããŸããã
ã¬ã³ã«ãŒãºã¯ãUNIX ãšããèãæ¹ãã® P105 ã§ã以äžã®ããã«åŒ·ãèšèã§ãæçŸ©ããã©ãã»ã©éèŠã§ãããã䞻匵ããŠããŸãã
ãããŸã§ã®å®çã«ã€ããŠã¯ã UNIX éçºè ã¯äžæ©ãè²ããªããæ»æãããã°å šåã§ç«ã¡åããã
ãããããã¯ãããŸã§ã¬ã³ã«ãŒãºã®äž»åŒµã§ãã£ãŠãããã§ãã UNIX éçºè ãšããã®ã¯ãããã ãDEC ã® UNIX éçºããŒã ã ã§ãæã ã¯ãããããã®æ°æã¡ã§ UNIX ãéçºããŠãããšããçšåºŠã®æå³ã劥åœãªã®ã ãããšæã£ãŠããŸãããŸãã
以äžã§è°è«ããèãã¯ãããŸããã©ã¡ãããšããã°ä¿ºãè³æã ãçšåºŠã ããUNIX é£å¶ã®å šå¡ãè³æããŠããããã§ã¯ãªãããã³ãã¥ããã£å šäœãšããŠã¯æ¯æããŠãããšèšã£ãŠè¯ãã ããã
ãšããã®ã ãDEC ã® UNIX éçºããŒã ã®éã§ãæèŠãåãããŠããã ãšããçšåºŠã®æå³ãªã®ã ãããšæã£ãŠããŸããã¬ã³ã«ãŒãºã®äž»åŒµãééã£ãŠãããšããæå³ã§ã¯ãããŸããããåå žã® UNIX å²åŠãšã¯ãããªã«è¿ãããã§ã¯ãªãäžå人ã®äž»åŒµãšæããã¹ãã§ããããå¯äžã®æ£ãã UNIX å²åŠã§ãããã®ããã«è§£éããã®ã¯ééãã§ãã
æºæçŸ©ïŒ: ããã°ã©ãåãã®ç°å¢ãéå ·ã¯ã«ã¹ã¿ãã€ãºæ§ãé«ããã
- æ§: 奜ã¿ã«å¿ããŠèªåã§ç°å¢ã調æŽã§ããããã«ãã
ã«ã¹ã¿ãã€ãºå¯èœã«ãã¹ããã®ã¯ïŒGUI ãã¹ã¯ãããïŒç°å¢ã ãã§ã¯ãããŸãããã·ã§ã«ã®å®è¡ç°å¢ãã³ãã³ãã®ãªãã·ã§ã³ãªã©ã«ããã«ã¹ã¿ãã€ãºãåãã§ãããã®ç°å¢ã調æŽã§ããããã«ãããšããèãæ¹ã¯ãã¹ã¢ãŒã«ã»ã€ãºã»ãã¥ãŒãã£ãã«ãããäžã€ã®ããã°ã©ã ã«ã¯äžã€ã®ããšãããŸãããããããšããå€ãæçŸ©ãšççŸããŠããããšã«ãæ°ã¥ãã§ããããïŒç°å¢ã調æŽã§ããããã«ãããšããããšã¯ãããããªããšãã§ããããã«ãªããããã ãããã°ã©ã ã倧ãããªããšããããšã ããã§ãããããç§ã¯æ¢ã«å€ãæçŸ©ãå°ããããå¿ èŠã¯ãªããšä¿®æ£ããã®ã§ççŸã¯ãããŸããã
éå ·ã«é«ãã«ã¹ã¿ãã€ãºæ§ãæããããšããèãæ¹ã¯ãã³ã³ãã¥ãŒã¿ã®ãŠãŒã¶ãŒã§ã¯ãªããããã°ã©ãã«ãšã£ãŠã®äŸ¡å€ãããèãã ãšçè§£ããŠããå¿ èŠããããŸããããã°ã©ãã³ã°ãªã©ã«èå³ããªãäžè¬ã®ãŠãŒã¶ãŒã«ãšã£ãŠã¯é«ãã«ã¹ã¿ãã€ãºæ§ã¯éã«é£ããéå ·ã«èŠããŠããŸãããšããããŸããWindows ã macOS ã§ãã«ã¹ã¿ãã€ãºã®ç¯å²ã¯ããŸãåºãããããšãããäžéšã®æ©èœã¯é«åºŠãªæ¹æ³ïŒã¬ãžã¹ããªã CLI ã³ãã³ãïŒããã®ã¿èšå®å¯èœã«ãªã£ãŠããŸããUNIX å²åŠã¯ããããããã°ã©ãã®ããã®å²åŠã§ãã
å ·äœäŸãããã€ã玹ä»ããŸãã
Windows ã®ã¡ã¢åž³ã¯ã«ã¹ã¿ãã€ãºæ§ã¯ä¹ãããšã³ããŠãŒã¶ãŒåãã®ã¢ããªã±ãŒã·ã§ã³ã§ãããšèããããŸãããµã¯ã©ãšãã£ã¿ã®ãããªãã®ã¯ããçšåºŠã®ã«ã¹ã¿ãã€ãºæ§ãåããŠããŸããããã®ç¯å²ã¯å°ããçŸåšã®åºæºã§ã¯ããã°ã©ãåãã®éå ·ãšããŠååã§ã¯ãããŸãããVSCode ã¯é«ãã«ã¹ã¿ãã€ãºæ§ãåããŠããããã°ã©ãã®éå ·ãšããŠé©åã§ãããæ¡åŒµæ©èœã§æ©èœã远å ã§ãããšããã®ã¯ãéå ·ãçµã¿åãããŠäœ¿ããšãã UNIX å²åŠã«ãéããŠããŸãã仿ããäžã€ããã¹ããšãã£ã¿ã®äžã§ã¯ãããã°ã©ããªã VSCode ãæãé©ããŠããäœ¿ãæ¹ã¯é£ãããããããŸãããçç£æ§ã¯é«ããªããŸãããããäžè¬ã®ãŠãŒã¶ãŒã«ãšã£ãŠã¯ã¡ã¢åž³ããµã¯ã©ãšãã£ã¿ã®æ¹ãç°¡åã§ããããïŒãã¡ãã vim ã emacs ãã«ã¹ã¿ãã€æ§ãé«ãããã°ã©ãã®éå ·ã§ãïŒ
å¥ã®äŸãšããŠé«ãã«ã¹ã¿ãã€ãºæ§ãåããã³ãã³ãã¯ãä»ã®éå ·ãšçµã¿åãããŠäœ¿ãèœåãäžãããŸããäŸãã°ããã³ãã³ãã«åçŽãªããã¹ã圢åŒã ãã§ã¯ãªã JSON 圢åŒã§åºåãããªãã·ã§ã³ãããã° JSON ãæ±ãä»ã®ã³ãã³ããšçµã¿åãããããšãåºæ¥ãããã«ãªããŸããïŒè€éããä¹ãè¶ããããã®ã§ããã°ïŒãªãã·ã§ã³ãå€ãããšã¯è¯ãããšã§ãã
ã·ã§ã«ç°å¢ãã«ã¹ã¿ãã€ãºã§ããããã«ããŠããå¿ èŠããããŸããäŸãã°ãã人㯠macOS ã䜿ãã€ã€ããHomebrew ã§ã€ã³ã¹ããŒã«ãã bash ãš GNU CoreUtils ãåªå ããŠäœ¿ã£ãŠããå ŽåããããŸãããŠãŒã¶ãŒãã«ã¹ã¿ãã€ãºããç°å¢ã䜿ããããšããæ°æã¡ã劚ããŠã¯ãããŸãããç§»æ€æ§ãé«ãã·ã§ã«ã¹ã¯ãªããã¯ãã®ãããªç°å¢ïŒmacOS ãªã®ã«äœ¿ãã³ãã³ã㯠GNU çïŒã§ãåäœããããã«äœã£ãŠãããšè¯ãã§ãããã
æºæçŸ©ïŒ: ã«ãŒãã«ã¯å°ãããããŠãŒã¶ãŒã©ã³ãã®ããã°ã©ã ãè±å¯ã«ãã
- æ§: ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã«ãŒãã«ãå°ãã軜ããã
ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã«ãŒãã«ãå°ãã軜ããããããšãã§ããã®ã¯ UNIXïŒã«ãŒãã«ïŒéçºè ã ããªã®ã§ããããããã¬ã³ã«ãŒãºã® UNIX å²åŠãã¯ãUNIX ãéçºããŠãã人ãåŸãã¹ãæçŸ©ãã§ãã£ãŠ UNIX äžã§ãœãããŠã§ã¢ãéçºããŠããéçºè ãåŸãæçŸ©ãšããŠäœããããã®ã§ã¯ãªãã®ã ãããšç§ã¯å€æããŸããã
å ã®æçŸ©ã®æç¹ããå°ãããããšèšã£ãŠãã®ã¯ã«ãŒãã«ã ãã§ããã«ãŒãã«ä»¥å€ãã€ãŸããŠãŒã¶ãŒã©ã³ãã®ããã°ã©ã ã§ãã UNIX ã³ãã³ãããã以å€ã®å€æ°ã®ã³ãã³ã以å€ãå°ãããããšã¯èšã£ãŠããŸãããä¿®æ£åŸã®èª¬æã§ã¯ãã«ãŒãã«ä»¥å€ã®ããã°ã©ã ãå°ããããå¿ èŠã¯ãªããšæç¢ºã«ããããã«ããŠãŒã¶ãŒã©ã³ããè±å¯ã«ããããšä»ãå ããŠããŸãããŠãŒã¶ãŒã©ã³ããšã¯ã«ãŒãã«ããã©ã€ã以å€ã®éšåã§ãUNIX ã³ãã³ããã»ãšãã©ã®ããã°ã©ã ã¯ãŠãŒã¶ãŒã©ã³ãã§åäœããŠããŸãã
UNIX ã³ãã³ã㯠OS ã®æšæºã³ãã³ãã§ããããã以å€ã®ã³ãã³ããšåºå¥ããªãããšã«æ³šæããŠãã ãããã·ã§ã«ã§ããä»ã®ã³ãã³ããšå€ãããããŠãŒã¶ãŒã©ã³ãã§åãããã°ã©ã ã§ãããããŸããããã㯠UNIX ã³ãã³ãïŒåºçŸ©ã® OS ã®ã³ãã³ãïŒã ããéããšãããããªæ§è³ªã¯ãªããšããããšã§ãããŠãŒã¶ãŒã©ã³ãã®ããã°ã©ã ãããã«ãŒãã«ïŒç矩㮠OSïŒã®ã³ãŒããå®è¡ãããã®ã¯ã·ã¹ãã ã³ãŒã«ãåŒã³åºããããšãã ãã§ããã·ã¹ãã ã³ãŒã«ã®åŒã³åºããé ããšããã®ã¯ã·ã§ã«ã¹ã¯ãªãããé ããªãåå ãšããŠç¥ã£ãŠããå¿ èŠããããŸããå€éšã³ãã³ãã®åŒã³åºãã§ãããã€ãã«ããããã»ã¹ééä¿¡ã§ãããã·ã¹ãã ã³ãŒã«ã䜿ãåŠçã¯é ããªã£ãŠããŸããŸãããã®ããé床ãéèŠãªãä»ã®èšèªã䜿ã£ãæ¹ãéããªããŸãã
ãã®æçŸ©ã§ã¯ UNIX ã³ãã³ããã€ãŸããŠãŒã¶ãŒã©ã³ãã«ãã OS ã®åºæ¬ã³ãã³ãïŒã·ã§ã«ãå«ãïŒãå°ãããããšã¯èšã£ãŠããŸããããå®éã«ã¯å°ããããããšã®æ¹ãå€ãã§ããããã¯æå°ã®ã³ã³ãã¥ãŒã¿ã§åãããã«ããããã§ããOS ã¯ã©ã®ãããªç°å¢ã§äœ¿ããããããããŸããããã«ãã³ã¢ã® CPU ãšè±å¯ãªã¡ã¢ãªãåããã³ã³ãã¥ãŒã¿ã§åãããããããŸããããIoT ãçµã¿èŸŒã¿ã®ãããªè²§åŒ±ãªç°å¢ã§åããããããããŸãããCPU ã®æ§èœã¯äœããŠãé ãã ãã§ããã°ã©ã ã¯å®è¡å¯èœã§ãããã¡ã¢ãªã¯è¶³ããªããã°åããŸãããçµã¿èŸŒã¿ç°å¢ïŒç¹ã«ãªã¢ã«ã¿ã€ã å¶åŸ¡ãå¿ èŠãªå ŽåïŒã¯ä»®æ³ã¡ã¢ãªã䜿ãããšã¯éããªãã®ã§ OS ã¯çã¡ã¢ãªåªå ã§ããããšãå€ãã§ããå°ãªãã¡ã¢ãªã§ã OS ãåºæ¬çãªã³ãã³ãã¯åãããã«ããã¹ãã§ããã䜿çšã¡ã¢ãªãå°ãªããœãããŠã§ã¢ã¯é«ãããã©ãŒãã³ã¹ãåºããªãå¯èœæ§ããããŸãããããã£ãŠ OS ã®åºæ¬æ©èœã¯å°ããããé«ããã©ãŒãã³ã¹ã®ãœãããŠã§ã¢ã¯è¿œå ããã±ãŒãžã®ãã®ã䜿ããšããã®ãçæ³çã§ãããšèšããŸãã
Linux 㯠OS ãå°ããä¿ã£ãŠãã OS ã§ããGNU ã³ãã³ãã¯å€§ãããšèãããããããŸããããLinux ãšããã«ãŒãã«ã«ãšã£ãŠ GNU ã³ãã³ãã¯ãŠãŒã¶ãŒã©ã³ãã§åãã³ãã³ãã»ããã®äžã€ã§ãããããŸãããGNU ã³ãã³ãã倧ãããªãå¥ã®ã³ãã³ãã»ããã䜿ãã°ããã®ã§ããå®éã« GNU ã³ãã³ãã®ä»£ããã«å°ããªã³ãã³ãã»ããã§ãã BusyBox ã䜿ã£ã Alpine Linux ããããŸããAlpine Linux ã§ã GNU ã³ãã³ãã¯ã³ãã³ãæ¯ã«æäŸãããŠããå¿ èŠãªãã°å ¥ãæ¿ããããšãå¯èœã§ããäœè«ã§ããã·ã§ã«ãã³ãã³ããå«ãŸãªã distroless ãšãã Linux ã³ã³ããã€ã¡ãŒãžããããŸããããã°ã©ã ãå®è¡ããã ããªãã·ã§ã«ãã³ãã³ãããäžèŠã§ãã
æºæçŸ©ïŒ: å¯èªæ§ã®ããã«é·ãååã䜿ããçãååã¯æ¥œãããæã«äœ¿ã
- æ§: å°æåã䜿ããçã
倧æåã䜿ããã©ããã¯æ
£ç¿ã«åãããŠãã ããããã¡ã€ã«åã¯éåžžå°æåããã䜿ãããŸãããREADME ãªã©ã¯æ
£ç¿çã«å€§æåã§ããäžå¿ ASCII æåã³ãŒãé ã§äžŠã¹ãæã«ç®ç«ã€åã®æ¹ã«æ¥ããããšããçç±ããã£ãã®ã§ããããã±ãŒã«ã« en_US.UTF-8 ãªã©ã䜿ã£ãå Žåã¯ãããªããªãã®ã§ã倧æåã䜿ãã®ã¯ãã¯ãæ
£ç¿ã§ããç°å¢å€æ°ã¯å€§æåã䜿ãã·ã§ã«å€æ°ã¯å°æåã䜿ãã®ãæ
£ç¿ã§ããã³ãã³ãåã颿°åãã¯ã©ã¹åãªã©èšèªã«ãã£ãŠæ
£ç¿ã¯éãã®ã§é©åãªãã®ã䜿çšããŠãã ããã
æã¯ãã¬ã¿ã€ãããã®ããŒå ¥åãåºåïŒå°åïŒãé ããããã°ã©ã ãå°ããããããã«ããããããšã«æå³ããããŸããããä»ã¯ãã®ãããªæå³ã¯ãããŸãããUNIX ã³ãã³ãããã®ãªãã·ã§ã³ãçããããšäœãèããã«ç䌌ãããªãããã«ããŠãã ããã
çç¥ãããçãããã³ãã³ãåã¯èŠãã«ããã ãã§ã¡ãªããã¯ãããŸãããäœã®åæç¥èãæã£ãŠãªã人ã§ãããããããªååã®æ¹ãåªããŠããŸããUNIX ã³ãã³ããçãååã䜿ã£ãŠãããããçãååã«ããã®ã UNIX å²åŠãªãã ãšããã®ã¯ãã ã®åéãã§ããçãååã«ããŠããã®ã¯ãåã«çãååã®æ¹ãã¡ãªããããããšèããŠããã ãã§ããã©ãã§ããã䜿ãããæ±çšçãªã³ãã³ãã¯èŠãã¥ãããšãäœåºŠã䜿ãã®ã§èŠããŠããŸããŸããèŠããŠããŸã£ãã®ã§ããã°çãããšã«ã¡ãªããããããŸãããããããŸã䜿ããªããããªã³ãã³ãã¯èŠããããšã¯ãªããåã«åããã¥ããã ãã§ãã
çãã³ãã³ãåãèš±ãããã®ã¯ãæ±çšçã§äœåºŠãå©çšãããããã¥ãããšãèŠããããšã«äŸ¡å€ããããšèªä¿¡ãæã£ãŠãããããªãã®ã ãã§ããäŸãã° jq ã³ãã³ãã®ãããªãã®ã¯ããã§ããããæ±çšçãªã³ãã³ãã¯ããããªãããžã§ã¯ãã§åºã䜿ãããŠãããã®ã§ãããŸãèªä¿¡äœãäœã£ãããã°ã©ãã¯ããã¯ãããããããããã䜿ãããã¯ãã ãçãååã ãšå
¥åãæ¥œã ããšèããã®ãæ®éãªã®ã§çãããããªãæ°æã¡ã¯ããããŸããã§ãçãååã¯ä»ãšãã¶ãããã貎éã§ããçãååã¯ããã°ã©ãã«ãšã£ãŠã®å
±æè²¡ç£ãªã®ã§å€§åã«ããŠãã ãããçãååã倿Žããã®ã¯æåã«ãªã£ãåŸããã§ãåºæ¥ãŸãããå人çã«çããããã ããªã alias ã䜿ãã°è¯ãã ãã§ããgit ã®ããã«äžé£ã®ã³ãã³ã矀ãå¿
èŠãªããµãã³ãã³ãã®å©çšãæ€èšããŠãã ãããgo ã³ãã³ãããµãã³ãã³ãã䜿ã£ãŠããŸãã
ã³ãã³ãã®ãªãã·ã§ã³ã«ã¯åºæ¬çã«é·ããªãã·ã§ã³ãäœãããšãæšå¥šããŸãã1 æåãªãã·ã§ã³ã¯ã©ããæ°ãè¶³ããªããªã£ãŠããŸããŸãã1 æåãªãã·ã§ã³ã¯å ¥åãæ¥œã«ããããã«ãã·ã§ã«ãããã䜿ããããªãªãã·ã§ã³ã«å²ãåœãŠããšè¯ãã§ããããã·ã§ã«ã¹ã¯ãªããããã³ãã³ããåŒã³åºãå Žåã¯é·ããªãã·ã§ã³ã䜿ã£ãã»ããå¯èªæ§ã®ç¹ããè¯ãã§ããããäŸå€ã¯ POSIX ã³ãã³ãã®ãªãã·ã§ã³ã§ããç§»æ€æ§ãå¿ èŠãªã·ã§ã«ã¹ã¯ãªããã§ OS ã«æšæºã§ã€ã³ã¹ããŒã«ãããŠããã³ãã³ãã§åãããã«ãããå Žåã¯çããªãã·ã§ã³ã䜿ããããããŸãããèŠããŠããŸãã»ã©ãã䜿ããªãã·ã§ã³ãªãçããªãã·ã§ã³ã䜿ã£ãŠãè¯ããšæããŸãããåºæ¬ã¯é·ããªãã·ã§ã³ã§ããGo ã¯æšæºã®ãªãã·ã§ã³è§£æã©ã€ãã©ãªã§ãã³ã°ãªãã·ã§ã³ããµããŒãããŠããŸãã
ãã®ä»ãããã°ã©ãã³ã°èšèªã§ã¯ã¹ã³ãŒãã倧ããã»ã©é·ãååã§ãããŒã«ã«å€æ°ãªãçããŠãè¯ããªã©ã®ã«ãŒã«ããããŸãããããããã®èšèªã®ã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ãåèã«ããŠãã ããã
æºæçŸ©ïŒ: 森æãç°å¢ãå®ããé»å䜿çšéãCOâæåºéãæžãã
- æ§: 森æãå®ã
æ£çŽãªæãããã UNIX å²åŠã«å ¥ã£ãŠãçç±ã¯è¬ã§ããçŽãç¡é§ã«ããŠããããšãš UNIX å²åŠã¯é¢ä¿ãªãããã§ããåœæã®ããŒã ã®äžã€ãããŒããŒã¬ã¹ç€ŸäŒ (Paperless society)ãã«ãããã£ãŠã¬ã³ã«ãŒãºã¯ UNIX å²åŠã«å ¥ããã®ã ãšæãããŸããæåã¯åé€ãããããšæã£ãŠããã®ã§ãããUNIX å²åŠã«çµã³ã€ããããšãåºæ¥ãã®ã§æ®ããŠããŸãã
å ã ãã®æçŸ©ã¯æã¯é·ããœãŒã¹ã³ãŒããçŽã«å°å·ããŠãããã°ããŠãããšãã話ã§ããæã®ãã£ã¹ãã¬ã€ã§è¡šç€ºã§ããç¯å²ã¯å°ãããããããå°ããªé¢æ°ã«ãããšããã¹ã¿ã€ã«ããŸã ååæ®åããŠããªãã£ããããé·ãã³ãŒããèªãã®ã倧å€ã ã£ãã®ã§ããããããã«æã¯ãã³ãã«ãŒãã«ããããŒã¿å ¥åïŒçŽã®ã«ãŒãã«ç©Žããããã®ã§åºæ¬çã«äœ¿ãæšãŠïŒã§ããã«çŽãç¡é§ã«ããŠããŸããããããã®åé¡ã¯å€§ããªã°ã©ãã£ã«ã«ãªãã£ã¹ãã¬ã€ã§è§£æ±ºããŸãããä»ã«ãæ§ã ãªã·ã¹ãã ããªã³ã©ã€ã³åãããã£ãããšã§ã¯ãããŸããä»ãããŒããŒã¬ã¹åã¯é²ãã§ããŸãã
ç°å¢ã§å®ãã¹ããã®ã¯æ£®æã ãã§ã¯ãããŸãããäŸãã°ãšãã«ã®ãŒåé¡ããããŸããããã«ã¯ä»®æ³ãã·ã³æè¡ãã³ã³ããæè¡ããããŠã¯ã©ãŠããšãããéå ·ã䜿ãããšããèããã UNIX å²åŠã«çµã³ã€ããããšãåºæ¥ãŸããã³ã³ãã¥ãŒã¿ã¯çé»åæ©èœãåããŠããŸãããäœãåŠçãããŠããªããŠãã€ããŠããã ãã§é»æ°ãæ¶è²»ããŸããã³ã³ãã¥ãŒã¿ã®èœåã倧ãããªã£ãŠäžå°ã®ã³ã³ãã¥ãŒã¿ã§ãèœåãããŸãããã«ãªã£ãä»ãä»®æ³ãã·ã³æè¡ãã³ã³ããæè¡ãšããéå ·ã䜿ã£ãŠãè€æ°å°ã®ã³ã³ãã¥ãŒã¿ãäžå°ã«éçŽããããšã§é»åãç¯çŽããããšãåºæ¥ãŸãã
ã¯ã©ãŠãïŒããŒã¿ã»ã³ã¿ãŒïŒã§ã¯ããããšåãããšã倿°ã®ãŠãŒã¶ãŒã§è¡ãããšãåºæ¥ããããããå¹ççã«ãšãã«ã®ãŒã䜿ãããšãåºæ¥ãŸããæå ïŒèªç€Ÿã®ã³ã³ãã¥ãŒã¿å®€ãªã©ïŒã«ã³ã³ãã¥ãŒã¿ãããã®ãé éå°ã«ã³ã³ãã¥ãŒã¿ããã®ãå€ãããªããšæããããããŸããããããŒã¿ã»ã³ã¿ãŒã§ã¯å€æ°ã®ã³ã³ãã¥ãŒã¿ããŸãšããŠç©ºèª¿ç®¡çããŠããããŸãç¹å¥ãªé»åã·ã¹ãã ãåããŠããå Žåããããç°å¢ã«åªãããšèšããŸãã
ããŒã¿ã»ã³ã¿ãŒã¯å šäœã§å€§ããªé»åãæ¶è²»ããããã«ãéã«ãããå°ãã§ãæžããããšåãçµãã§ããŸããäŸãã°å·åŽå¯ŸçãšããŠæ¶Œããå°åã«ããŒã¿ã»ã³ã¿ãŒãäœã£ãããæµ·æ°Žã§å·ãããããé«å§çŽæµéé» (HVDC) ãæ¡çšããŠããããŸãïŒåè çŽæµæä»£ã®å°æ¥ïŒïŒåç·šïŒãããã€ã³ã¿ãŒãããã®çŽæµçµŠé»ã·ã¹ãã ïŒHVDCïŒïŒãå®éã«ãã®ææãåºãŠããããã§ãããããŒã¿ã»ã³ã¿ãŒãäžçã®é»åã䜿ãæããïŒ ãããªäºæ ãé¿ããããã«åãçµãã¹ã課é¡ããã
ããŒã¿ã»ã³ã¿ãŒã®äœæ¥è² è·ã¯2018å¹Žã®æç¹ã§10å¹Žãšæ¯ã¹ãŠ6å以äžã«å¢ããŠãããããšãã«ã®ãŒæ¶è²»éã¯ã»ãšãã©å€ãããªãã£ããšããã®ã ã
ãããã£ãåãçµã¿ã¯å€§æãããªããŒã¿ã»ã³ã¿ãŒã§ããªããã°ãªããªãåºæ¥ãŸããããªã«ããªãã§ãã¯ã©ãŠããµãŒãã¹ã䜿ãã¹ãã ãšããã€ããã¯ãããŸããããã¯ã©ãŠãã ãšã³ã³ãã¥ãŒã¿ããã¡ãã¡è³Œå ¥ããå¿ èŠã¯ãªããäŸãã°éçºã®åææ®µéã§ã¯å°ããïŒå®ãïŒç°å¢ãæ§ç¯ããŠãå¿ èŠã«ãªã£ãæã«å¿ èŠãªã¹ããã¯ã®ã³ã³ãã¥ãŒã¿ã«å€æŽããããšãåºæ¥ãŸãããµãŒããŒã®è² è·ã«å¿ããŠããŒã¯æã¯ä»®æ³ãã·ã³ã®å°æ°ãå¢ãããããã§ãªãæã¯æžãããšããäœæ¥ãèªååãããã°ã³ã¹ããæéãåæžã§ããŸãã以åã®ããã«é«æ§èœã®ã³ã³ãã¥ãŒã¿ãè²·ã£ããã®ã®ãããŒã¯æä»¥å€ã¯ã»ãšãã©äœãããŠããªããªããŠããšã¯ãããŸãããã¯ã©ãŠãç¹æã®ãã©ãã«ã¯ãããŸããããããèšã£ããããŒããŠã§ã¢ãæ éããããã§ããããã«æ¯ã¹ãã°åŸ©æ§äœæ¥ã¯æ¥œã§ããããä»®æ³ãã·ã³æè¡ãã³ã³ããæè¡ãã¯ã©ãŠãæè¡ãšããéå ·ã䜿ããšç°å¢ãå®ãã€ã€ã³ã¹ããåæžã§ããŠäžç³äºé³¥ãšããããã§ãã
æºæçŸ©ïŒ: ããŒã¿ã¯åºåãã¹ãæã«ãäžè²«ãã圢åŒã§ããŒã¿ãåºåãã
- æ§: æ²é»ã¯é
ãæ²é»ãéããæ£ãã説æãããšåŠçãæ£åžžçµäºããæã®ãåŠçãå®äºããŸãããããè¿ãã¹ãããŒã¿ãç¡ãæã®ãããŒã¿ãèŠã€ãããŸãããã®ãããªãç¶æ³ã瀺ãã¡ãã»ãŒãžããåºåããã®ã§ã¯ãªããäœãåºåããªãããªãããã«ããïŒæ²é»ããïŒãšããæå³ã§ãããšã©ãŒãçºçããŠãã®ã«æ²é»ããæ¹ãè¯ããšããæå³ã§ã¯ãããŸããããšã©ãŒã¯ã¡ãããšæšæºãšã©ãŒåºåã«åºåããããã«ããŠãã ããã
ãã®æçŸ©ã¯ãæçŸ©8: èªååŠçã®ããã«ã³ãã³ãã«ã¯é察話çãªã€ã³ã¿ãŒãã§ãŒã¹ãæããããã®åºåããŒã¿ããªãå Žåã«é©çšããç¹æ®ãªã«ãŒã«ãšãããŸããã³ãã³ãã®åºåã¯ãå¥ã®ããã°ã©ã ãžã®å ¥åãšãªãå¯èœæ§ãããã®ã§ãå¥ã®ããã°ã©ã ã§åŠçãããããããªåœ¢åŒã§åºåããŸããããšããããšã§ããäœè«ã§ããåæã® UNIX ã«ã¯æšæºãšã©ãŒåºåããªãããšã©ãŒã¡ãã»ãŒãžãæšæºåºåã«åºåããŠããããããããããšé¢åãªããšã«ãªã£ãŠããããã§ãã
ç¶æ³ã瀺ãã¡ãã»ãŒãžã¯äººéãèªãããã®ãã®ã§ä»ã®ããã°ã©ã ã®å
¥åãšãªãåºåããŒã¿ã§ã¯ãããŸããããããã£ãŠåºåããå¿
èŠã¯ãããŸãããããã絶察ã«è¡šç€ºããŠã¯ãããªãããšèšããããã°ãå¿
ãããããã§ã¯ãªããåºåã圢åŒäžè²«ããŠããã°åé¡ãããŸãããäŸãã°ãè¿ãã¹ãããŒã¿ããªã«ããªãæã«éããããŒã¿ãèŠã€ãããŸããããšããã¡ãã»ãŒãžãåºåãã仿§ã ãšããŒã¿ãšããŠåŠçãã¥ããã§ããã代ããã«ãtotal 0ãã®ããã«åžžã«èŠã€ãã£ãä»¶æ°ãåºåãããšãã仿§ã§ããã°ãããŒã¿ãšããŠäœ¿çšå¯èœã«ãªãããåé¡ã«ã¯ããŸãããå®ã¯ãã㯠POSIX ã® ls -l ã®ä»æ§ã§ãã
ããŒã¿ãšããŠäœ¿çšå¯èœãªæ å ±ãç¡ãã®ã§ããã°ãç¶æ³ã瀺ãã¡ãã»ãŒãžã¯äžèŠã§äœãåºåããªããŠããã®ã§ãããããã©ãããŠãç¶æ³ã瀺ãã¡ãã»ãŒãžãåºåãããå Žåããããæå¶ãããªãã·ã§ã³ãä»ããããæšæºãšã©ãŒåºåã«åºåãããšãã£ãæ¹æ³ããããŸãã
ãã®æçŸ©ã®æ¬åœã«éèŠãªãã€ã³ãã¯æ²é»ããããšã§ã¯ãªããããŒã¿åŠçå¯èœãªæ å ±ãäžè²«ãã圢åŒã§åºåããããšã§ãã
æºæçŸ©ïŒ: 䞊è¡åŠçã»äžŠååŠçãè¡ãããã°ã©ã ãäœã
- æ§: 䞊è¡ããŠèãã
ãã®æçŸ©ã®å€ã説æã¯åèã§ã¯ãThink parallelãã§ããæ®éã«èš³ããããäžŠè¡ (concurrent)ãã§ã¯ãªãã䞊åããŠèãããã ãšæãã®ã§ããããªã䞊è¡ã«å€ããã®ãæå³ãã€ãããŸããã§ãããå šãŠäžŠè¡ã«å€æŽããŠããã®ã§ããã°ãŸã ãããã®ã§ããã䞊è¡äž»çŸ©ããšããèšèããã£ãããäžŠåææ³ããšããèšèããã£ããã§ã䞊è¡ãšäžŠåãå ¥ãæ··ãã£ãŠããŸããããããåèã¯ãã¹ãŠ parallel ã ãšæããŸããäžéå端ã«äžŠè¡ãšäžŠåãæ··ãã£ãŠããã®ã§æ··ä¹±ããŸãããå€ååºå¥ããŠäœ¿ã£ãŠããªãæ°ãããŸãã
ã³ã³ãã¥ãŒã¿çšèªã§ã䞊è¡ããšã¯è€æ°ã®åŠçãåæã«å®è¡ãããŠãããã®ããã«å®è¡ããããšã§ããCPU ãäžã€ããç¡ãç°å¢ã§ã¯ CPU ã现ããæéã§åãæ¿ããªããè€æ°ã®åŠçãå®è¡ããŠããŸããé ããã£ã¹ã¯èªã¿æžãããããã¯ãŒã¯åŠçã人éã®å ¥ååŸ ã¡ãªã©ã«ãã CPU åŸ ã¡æéã«ä»ã®åŠçãããããšã§ãå¹çãã CPU ã䜿ãããã®æ¹æ³ã§ããäžæ¹ã§ã䞊åããšã¯è€æ°ã® CPUããŸã㯠CPU ã³ã¢ã䜿ã£ãŠæ¬åœã«åæã«åŠçãè¡ãããšã§ããã®åæãšããŠäžŠè¡åŠçãå¯èœãªäœãã«ãªã£ãŠããå¿ èŠããããŸãã
ã䞊è¡ããŠèããããšãã説æã®æªãæã¯ãäž»èªãæžãããŠããªãæã§ããã³ã³ãã¥ãŒã¿ã䞊è¡ã§èããã®ãããããšã人éã䞊è¡ããŠèããã®ãïŒ äººéã䞊è¡ããŠèãããã€ãŸã现ããæéã§äœæ¥ãåºåããªãããã«ãã¿ã¹ã¯ã§è€æ°ã®äœæ¥ãåæé²è¡ãããå¹çãæªããªãã®ã¯ããç¥ãããŠããŸãã人éã¯äžŠè¡ã§ã¯ãªãéåæã§èããªããã°ãããŸãããéåæã§èãããšã¯ãããã¯ã°ã©ãŠã³ãã§ããã°ã©ã ãåãããåŠçãå®äºãããŸã§å¿ããŠããããããšã§ãã
CLI ç°å¢ã§ã¯ã䞊è¡åŠç察å¿ã®ããã°ã©ã ã䜿ãå Žåãé€ããã·ã§ã«ã§ã³ãã³ãã®æåŸã« & ãã€ããŠæèããŠããã¯ã°ã©ãŠã³ãã§ããã°ã©ã ãå®è¡ããå¿
èŠããããŸããGUI ãã¹ã¯ãããç°å¢ã§ã¯åã«ã¢ããªã±ãŒã·ã§ã³ãåãæ¿ããã ãã§ãã1980 幎代ã§ã¯ãŸãšãã«ãã«ãã¿ã¹ã¯ãè¡ãã OS 㯠UNIX ããããããããŸããã§ãããä»ã§ã¯ã©ã® OS ã§ããã«ãã¿ã¹ã¯ã«å¯Ÿå¿ããŠãã GUI ã䜿ãããšã§èªç¶ã«ããã¯ã°ã©ãŠã³ãã§ããã°ã©ã ãåããããšãã§ããã®ã§ãæèãããšã誰ããã䞊è¡ããŠèããããå®è·µããŠããŸãã
ãUNIX ãšããèãæ¹ãã®è§£èª¬ã®å 容ã¯ãã³ã³ãã¥ãŒã¿ã® CPU ãå¿ããåããããšãã話ãããŠããããããã¯ã°ã©ãŠã³ãã§ããã°ã©ã ãå®è¡ããè©±ãæžããŠãã£ããã人éã®è©±ãäž»é¡ãªã®ãã³ã³ãã¥ãŒã¿ã®è©±ãäž»é¡ãªã®ãããããããŸãããããªãæ©ãã ã®ã§ãããã³ã³ãã¥ãŒã¿ãäŒãŸããã«ç¡é§ãªã䜿ãããã®æ¹æ³ã¯åããªãããšãã話ããããã®ã ãšè§£éããŸããã
䞊ååŠçãè¡ãã«ã¯ããã€ãã®æ¹æ³ããããŸããïŒæŠå¿µçã«å¥ã«æ±ãã¹ããã®ããã¡ããŸãã§ããïŒ
- ãã«ãããã»ã¹ã«ãã CPU ã®äžŠååŠç
- ãã«ãã¹ã¬ããã«ãã CPU ã®äžŠååŠç
- GPU ã䜿ã£ã䞊ååŠç
- Elixir ã Erlang çã®è»œéããã»ã¹ã«ãã䞊ååŠç
- Haskel ã Go çã®è»œéã¹ã¬ããã«ãã䞊ååŠç
äŒçµ±ç㪠UNIX ã§ã¯ 1 ãã䜿ããŸãããã·ã§ã«ã¹ã¯ãªããã®ããã¯ã°ã©ãŠã³ãããã»ã¹èµ·åã xargs -P ã make -j ãªã©ã䜿ã£ãŠããã»ã¹ãè€æ°èµ·åããããšã§äžŠååŠçãè¡ãå Žåã¯ãã®æ¹åŒãšãªããŸãã
2 ã®ãã«ãã¹ã¬ããã«ãã䞊ååŠçã¯ããã«ãããã»ã¹ã䜿ã£ã䞊ååŠçãšã¯ç°ãªããäžã€ã®ããã»ã¹ã§è€æ°ã® CPU ãäœ¿ãæ¹æ³ã§ãã¡ã¢ãªãå ±æããŠãããšããç¹åŸŽããããŸããäŸãã°ãã«ãããã»ã¹ã§ãã€ãã䜿ã£ãŠããã»ã¹ééä¿¡ãè¡ããšã¡ã¢ãªã®ã³ããŒãå¿ èŠã«ãªããŸãããã¹ã¬ããã䜿ããšãããé¿ããããšãåºæ¥ãŸãããã®ãããã«ãã¹ã¬ããã®æ¹ããã«ãããã»ã¹ãããå¹çãããã®ã§ããå®è£ äžã®éœåçã§å¿ ããããã«ãã¹ã¬ããã®æ¹ãéããšã¯éããªãã®ã§æ³šæãå¿ èŠã§ãã
3 ã® GPU ã䜿ã£ãæ¹æ³ã¯æè¿ãã¬ã³ãã®ææ³ã§æ©æ¢°åŠç¿ãããã°ããŒã¿åŠçãªã©ã§çšããããŠããŸãã䞊ååŠçãåŸæãª GPU ãå©çšããŠèšç®ãè¡ããã察å¿ããããŒããŠã§ã¢ãå¿ èŠã§ããCPU ã䜿ã£ã䞊ååŠçãšã¯å šãäœ¿ãæ¹ãç°ãªããããGPU åŠççšã®ããã°ã©ã ãæžãå¿ èŠããããŸããPython ãªã©ãã©ã€ãã©ãªãå å®ããŠãã䟿å©ã§ãã
4 ã 5 ã¯äžéšã®äžŠååŠçãåŸæãšèšãããèšèªã§å©çšå¯èœãªæ¹æ³ã§ããOS ã®ãã«ãããã»ã¹ããã«ãã¹ã¬ããã®æ©èœãçŽæ¥äœ¿ãã®ã§ã¯ãªããèšèªã«åãã£ãŠãã䞊ååŠçã®æ©èœã䜿ããŸãã軜éãšããåã®éã OS ã®æ©èœã§ã¯äžå¯èœãªæ°çŸäžãæ°åäžãšãã£ãããã»ã¹ãã¹ã¬ãããäœæããããšãå¯èœã§ãã
ãã®ããã«UNIX å šçææä»£ã«ã¯ãªãã£ã䞊ååŠçã®æ°ããææ³ãå¢ããŠããŸããã©ã®ææ³ãéžã¶ãã¯å Žåã«ãããŸããã1 以å€ã¯ã·ã§ã«ã¹ã¯ãªããã UNIX ã³ãã³ãããçŽæ¥äœ¿ãããšã¯åºæ¥ãŸãããã€ãŸãã·ã§ã«ã¹ã¯ãªããã UNIX ã³ãã³ãã¯äžŠè¡åŠçã»äžŠååŠçã䜿ã£ãŠã³ã³ãã¥ãŒã¿ã®æ§èœãåŒãåºãã«ã¯ããŸãé©ããŠããªããšããããšã§ããã³ã³ãã¥ãŒã¿ã®æ§èœãåŒãåºãã«ã¯ä»ã®èšèªã䜿ã£ãããæ°ããã³ãã³ãã䜿ãå¿ èŠããããŸããã±ã³ã»ãã³ããœã³ã Go ãäœã£ãçç±ãããã«ãããŸãããšã¯èšã䞊ååŠçã¯é£ããåéã§ããããããããã»ã¹åäœã§ã®äžŠååŠçãšãªããŸããã䞊ååŠçãè¡ããªãã³ãã³ããç°¡åã«äžŠååã§ããã·ã§ã«ã¹ã¯ãªããã«ãæè»œããšããã¡ãªããããããŸããã·ã§ã«ã¹ã¯ãªããã«æ±ããã¹ããã®ã¯æ§èœã§ã¯ãªãæè»œãã§ãã
æºæçŸ©ïŒ: 倧ããªã·ã¹ãã ã¯è€æ°ã®ããã°ã©ã ãçµã¿åãããŠäœã
- æ§: éšåã®ç·åã¯å šäœããã倧ãã
è£è¶³ã§ãããéšåã®ç·åã¯å šäœããã倧ãã (The sum of the parts is greater than the whole)ããšã¯ã¢ãªã¹ããã¬ã¹ã®èšèãThe whole is greater than the sum of the partsããå ãã¿ã ãšæãããŸãã
ãã®æçŸ©ã¯å€§ããªã·ã¹ãã ãäœãæããããåäžã®å€§ããªãœãããŠã§ã¢ãšããŠäœãã®ã§ã¯ãªããè€æ°ã®ããã°ã©ã ã®éãŸããšããŠäœããšã¡ã³ããã³ã¹æ§ãªã©ãåäžããŠããåªããŠãããšãã話ã§ããäŸãã°å€§ããªçµ±åã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®éšåã®éãŸããšããŠæ§æããããšã§ããã倧ããªãµãŒããŒãè€æ°ã®ããã³ããšã³ããµãŒããŒãšäžã€ã®ããã¯ãšã³ããµãŒããŒã§æ§æããããšã§ããã倧ããªãµãŒãã¹ãè€æ°ã®ãµãŒãã¹ã®çµã¿åããã§äœããã€ã¯ããµãŒãã¹ã®èãæ¹ãªã©ãšåãã§ãããã®ãããªèãæ¹ã¯ãœãããŠã§ã¢éçºã®ãããæã«ãããŸããåå©çšå¯èœãªãœãããŠã§ã¢ãå¢ããä»ãå šãŠãäžã€ã®ãœãããŠã§ã¢ã§äœãããšã¯ããŸããªãã§ãããã
倧ããªã·ã¹ãã ãè€æ°ã®ããã°ã©ã ã®çµã¿åããã«ãããšããã®ã¯ãããããççµåã«ãããšããããšã§ãããã®ããã«ããããšã§ããã°ã©ã åäœã§äžŠè¡ããŠéçºããã¹ãããããããªããããã°ã©ã åäœã§å ¥ãæ¿ããããšãå¯èœã«ãªããŸãããã®æã«éèŠãªã®ã¯ã€ã³ã¿ãŒãã§ãŒã¹ãé©åã«æ±ºããããšã§ããé©åã«æ±ºãããšããã®ã¯åã«ããã¹ã圢åŒãšããã ãã§ã¯äžååã§ãäŸãã° JSON 圢åŒãªãã©ã®ãããªããŒãæãããªã©ãå«ããŠã€ã³ã¿ãŒãã§ãŒã¹ã§ããä»ã®çšèªã§èšãã®ãªã Web API ããã£ã¡ãå®ãããšããããšã§ããããã°ã©ã éã®ããŒã¿ã®åãæž¡ãã«ã¯ãã€ãããœã±ããïŒããã°ãã°ãã¡ã€ã«ïŒãªã©ã®ããã»ã¹ééä¿¡ãçšããããŸãã
è€æ°ã®ããã°ã©ã ã®çµã¿åããã§äœãããšã«ããã¡ãªããã¯ãããŸããããã¯çµã¿åãããããã°ã©ã ã®æ°ãå€ããªããšè€éåãããšããããšã§ããããããã®ããã°ã©ã ã¯åäœã§ã¯ã·ã³ãã«ã§ãã£ãŠãããããçµã¿åãããæã«ã·ã³ãã«ã«ãªããšã¯éããŸãããçµã¿åããããšããè¡çºã¯è€éæ§ãå¢ããè¡çºã ããã§ããã·ã§ã«ã¹ã¯ãªããã§å€æ°ã®ã³ãã³ãããã€ãã§ã€ãªãã æã«è€éã«ãªãã®ãšåã話ã§ãããã®è€éæ§ã軜æžããã«ã¯çµã¿åãããããã°ã©ã ã®æ°ãæžããããšã§ããäŸãã°ã¢ããªã±ãŒã·ã§ã³ã³ã³ããæè¡ã䜿ã£ãŠè€æ°ã®ããã°ã©ã ã§æ§æãããè€éãªãœãããŠã§ã¢ããäžã€ã®åçŽãªã³ã³ããã«ãããšè€éæ§ãäžãããŸãããœãããŠã§ã¢ãéå±€åããŠæ§æããããšã§ãçµã¿åãããæ°ãæžãããšããèãæ¹ã§ãã
æºæçŸ©ïŒ: æ¬åœã«ããã¹ãããšã«éäžãããããªãããšã決ãã
- æ§: 90 ããŒã»ã³ãã®è§£ãç®æã
ã90 ããŒã»ã³ãã®è§£ãç®æãããšããã®ã¯ãäœäºã 90 ããŒã»ã³ãããããäžåºŠããããšããæå³ã§ã¯ãããŸãããééã£ãŠããå®ç§ãããªãããšãæ£ãããã ïŒããå®ç§ãããªãããšãç®æãïŒããšããæå³ã«ã¯è§£éããªãã§ãã ããããã®æçŸ©ã®æ¬åœã®æå³ã¯ãå®ç§äž»çŸ©ã§ã¯ãããªããšããæå³ã§ãããå®ç§ã«ããŠã¯ãããªããšããæå³ã§ããããŸãããäœãã©ããŸã§äœããã¯éèŠåºŠããããžã§ã¯ãã®æ¹éã«ãã£ãŠç°ãªããŸãã100% ãç®æããªããã°ãããªããœãããŠã§ã¢ã¯ä»ã§ã¯æ°å€ããããŸãã
ãã®æçŸ©ã¯ YAGNI ã®ååãšããŠãç¥ãããŠããŸããäŸãã°ããªãã®äœã£ããœãããŠã§ã¢ã¯ãããã UNIX ç³» OS ã§åããã§ããããïŒ Linux ã ãã®å¯Ÿå¿ã§ååã§ã¯ãªãã§ããããïŒãšããããšã§ããåŸã§åãããããããªããªã©ãšããäºæž¬ã§äœã£ãŠãå®éã«ã¯äœ¿ãããªãããšãå€ãã察å¿ããã®ã«è²»ãããæéã¯ç¡é§ã«ãªããŸãããã®ãããªå¯Ÿå¿ã¯ã³ãŒããè€éã«ããŠããŸããŸããããããèšèšãåçŽã«ããã»ããéèŠã§ãã
ã90 ããŒã»ã³ãã®è§£ãç®æãããããã°ã©ã ã®äžåããã°ãçºèŠãããšãã®å 眪笊ã«ããŠã¯ãããŸãããäžåããã°ãææãããŠåŸåºãã§ã90 ããŒã»ã³ãã®è§£ãç®æãã ãããã°ãããã®ã¯ããããŸãããšéãçŽãããã®ãã®ã§ã¯ãããŸãããåççãªçç±ãæç€ºããŠããªãã®ã§ããã°ãã°ãšèšãããŠããããããããŸããããã°ã¯ã¡ãããšå¯Ÿå¿ããå¿ èŠããããŸãã察å¿ãããšããã®ã¯ãã°ãä¿®æ£ãããšããæå³ã§ã¯ãªãããã°ãšèªããäžã§ä¿®æ£ãããã©ãããæ€èšããŠçµè«ãåºããšããããšã§ããä¿®æ£ããªããšæ±ºããå Žåã¯ããã®äºãçç±ãšãšãã«èšé²ã«æ®ãããšã察å¿ãããšããããšã§ããããããšã ãã§ã¯ãªãããããªãããšã決ããå¿ èŠããããŸãã
ã90 ããŒã»ã³ãã®è§£ãç®æããã¯èª€è§£ãäžããããªãæç« ã§ãããã°ãçºèŠãããšãã®èšãèš³ãšããŠæªçšãããªãããã«ã衚çŸã倿ŽããŸãã
æºæçŸ©ïŒ: æéããããŠå®æããããããçŽ æ©ããããã¿ã€ããäœã
- æ§: å£ãã»ããåªããŠãã
ãå£ãã»ããåªããŠãããã®ãããªèªè ã®èå³ãæ¹ãããã ãã®ãã£ãããŒãªãã¬ãŒãºã䜿ã£ãŠã¯ãããŸããã倩ã®éªé¬Œãªæç« ã®æå³ã説æããŸãã¯çè§£ããã®ãã¡ã€ã³ããŒãã«ãªã£ãŠãæ¬åœã«äŒããã¹ãããšãäœãäŒãããŸãããåœç¶ã§ããå£ã£ãŠããæ¹ãåªããŠããããšãªããããããŸããããã°ããã£ãã䜿ãã«ãããã£ãããå£ã£ãŠãããšããã®ã¯æ®éã¯ããããæå³ã§ãããã®æçŸ©ã¯ãå£ã£ãŠããæ¹ãåªããŠããããšããæå³ãšããŠæªçšãããŸãã
ãœãããŠã§ã¢ã®çæ³ã®å®æåœ¢ã¯èª°ã«ãéçºè ã«ãæ³åã§ããŸããããŸããŠãä»ãŸã§èª°ãäœã£ãããšã®ãªãç¬åµçã§ç»æçãªãœãããŠã§ã¢ã§ããã°ãªãããã§ããæ£ããå§¿ãããããªãã®ã§ããã°ãããã¿ã€ããäœããŸããããå°æ°ã®éçºè ã ãã§æ©ãã§ããŠãé©åãªçãã¯ã§ãŸããããããã¿ã€ããããã°ããå€ãã®æèŠãéããããšãåºæ¥ãŸãã
ãå£ãã»ããåªããŠããããšã¯ãæ©èœçãå°ãªãã£ããçæ³ã«æ¯ã¹ãŠæªå®æãªç¶æ ã§ãªãªãŒã¹ãããã©ãããããåŠã¶ããšãåºæ¥ãããæçµçã«ãããåªãããœãããŠã§ã¢ã®éçºã«ã€ãªãã£ããšããããšã§ããå£ã£ãŠããã®ã¯ãããã¿ã€ãçã®è©±ã§ãæçµçã«ã¯åªãããã®ãåºæ¥äžãããŸãã
ãå£ãã»ããåªããŠããããšããèšèã«æãããããšãã¬ã³ã«ãŒãºã®ããã«ãUNIX ãããããé¢ã§æ¬åœã«è¯ããªã£ãããä»åºŠã¯æ»æ» ã®å±æ©ãèŠæããªããã°ãªããªããªãã ãããããšãæå³äžæãªããšãèšãåºãã¯ãã«ãªããŸãããå£ãã»ããåªããŠãã (Worth is Better)ããšèšãåºããã®ã¯ Richard P. Gabriel ã§ããã¬ã³ã«ãŒãºããŸãããã®ãã£ãããŒãªãã¬ãŒãºã«æããããç ç²è ã§ããïŒåè "Worse is Better"ã³ã³ã»ãããšã¢ãžã£ã€ã«/ãªãŒã³ïŒ
æºæçŸ©10: ç®çã«å¿ããŠæé©ãªããŒã¿æ§é ã䜿çšãã
- æ§: éå±€çã«èãã
ãUNIX ãšããèãæ¹ãã«ã¯éå±€çãªãã®ã®äŸãšããŠãP11 ããããã¡ã€ã«ã·ã¹ãã ããããã¯ãŒã¯ãµãŒãã¹ã§ã®åœåæ³ããŠã€ã³ããŠç®¡çããªããžã§ã¯ãæåéçºãP122 ãããããã»ã¹ããªãŒãGUI ã€ã³ã¿ãŒãã§ãŒã¹ãæããããŠããŸããä»ã«ãéå±€çãªãã®ã«ã¯ããµãã³ãã³ããæ§é åããã°ã©ãã³ã°ã颿°ã®åŒã³åºãããªãŒãã©ã€ãã©ãªã®åå空éãJSONãYAMLãXMLãããããšããã«éå±€çãªãã®ã¯ãããŸãããããéå±€æ§é ã¯å¿ ãããæé©ãªããŒã¿æ§é ãšã¯éããŸããã
éå±€æ§é ã§ã¯ãªãæåãªäŸã¯ãã³ãã³ããæ±ããã©ãããã¡ã€ã«ã§ãããšããããšã§ãéå±€çã«èãããšããã®ã¯ãã¬ã³ã«ãŒãºã®ãããŒã¿ã¯ãã©ããããã¹ããã¡ã€ã«ã«ä¿åããããšããæçŸ©ãšççŸããèãæ¹ã§ãããã£ãšãç§ã¯ãã®æçŸ©ããæšæºçãªåœ¢åŒã䜿çšããããšèšæ£ããã®ã§ççŸããŸããããéå±€çã«èããããšããæçŸ©ãšããã©ãããã¡ã€ã«ã«ä¿åããããšããæçŸ©ãççŸããŠããæããããããããã«ãå Žåã«ãã£ãŠéå±€æ§é ãé©åãªå Žåãããã©ããæ§é ãé©åãªå Žåãããã以å€ã®ããŒã¿æ§é ãé©åãªå Žåããããšããããšã§ãã
æŽå²ãé¡ããšãã©ããããã¹ããã¡ã€ã«ã®å ã¯ãã¡ã€ã³ãã¬ãŒã ã®ãã©ããããŒã¿ããŒã¹ã§ããããã«æŽå²ãé¡ããšãããã¯ã¿ãã¥ã¬ãŒãã£ã³ã°ãã·ã³ã§çšããããããã³ãã«ãŒãã§ããã«ãŒãäžæãäžè¡ã®ããŒã¿ã«çžåœããŸããã§ã¯ãã®ã¡ã€ã³ãã¬ãŒã ããã©ããããŒã¿ããŒã¹ã ãã§ååã ã£ãããšèšããšããã¡ãããããªããšã¯ãªãããŒã¿ããŒã¹ã®æŽå² ãçŽè§£ããš UNIX ãèªçãã 1969 幎ãŸã§ã«ãæ§é åããŒã¿ããŒã¹ããããã¯ãŒã¯ããŒã¿ããŒã¹ãé¢ä¿ããŒã¿ããŒã¹ (RDB) ãšãã£ãæ§é ãæã£ãããŒã¿ããŒã¹ãèªçããŠããŸãã
ããŒã¿ããŒã¹ã®æŽå²ããæé©ãªããŒã¿æ§é ãšããã®ã¯äžã€ã§ã¯ãªãããããªæ§é ãããããšããããã§ããããçµå±ã®æãéå±€æ§é ãšããã®ã¯ãéèŠãªããŒã¿æ§é ã®äžã€ã§ããå¯äžã®æ£ããããŒã¿æ§é ã§ã¯ãããŸãããç®çã«å¿ããŠé©åãªããŒã¿æ§é ããããŸãããã ãã·ã§ã«ã¹ã¯ãªãããUNIX ã³ãã³ããç°¡åã«æ±ããã®ã¯ãã©ããããŒã¿ã ããªã®ã§ãéå±€ããŒã¿ãªã©ãæ±ãããã«ä»ã®èšèªã UNIX ã³ãã³ã以å€ã䜿ãå¿ èŠããããŸãã
ãœãããŠã§ã¢ããŒã«ã®éçºåå
äž»ã«éå ·ïŒãœãããŠã§ã¢ããŒã«ïŒãäœããšãã®éçºååã§ãããã¬ã€ã¢ã³ãã® UNIX å²åŠããããŒã¹ã«ä¿®æ£ã»ã»ã»ãšèšãããæã§ããããã¡ãã¯åŒçšã®ã¿ã§ä¿®æ£ã¯ãããŸããããã®çç±ã¯ãååæœè±¡åãããŠãããååã¯å€ããªã£ãŠãããã誀解ããããªæç« ã§ã¯ãªãããã§ããããã«ããããããããã®èšäºã«èŒããŠããã®ã¯ããœãããŠã§ã¢ããŒã«ãéçºããããã®ããå ·äœçãªååãšããŠå¿ èŠãªãã®ã ããã§ããããœãããŠã§ã¢ããŒã«ã®ææ³ããšããœãããŠã§ã¢ããŒã«ã®æçŸ©ãã¯æŒ ç¶ãšããå 容ã§ãããã ãã§ã¯éå ·ãäœãèãæ¹ãç¿åŸã§ãããããªãã®ã§ã¯ãããŸãããããã ãã§ã¯è¶³ããªããšããæå³ã蟌ããŠããã®èšäºã«ã¯ãã¬ã€ã¢ã³ãã® UNIX å²åŠããããœãããŠã§ã¢ããŒã«ã®éçºååããšããŠåŒçšããŠããŸãã
ãã ãå 容ã«ç°è«ããŸã£ãããªãããã§ã¯ãããŸãããããã€ãæ°ã«ãªãç¹ã¯ããã®ã§ãããå°ãªããšãååã®æç« ãã誀解ãããå¯èœæ§ã¯å°ããã®ã§ãã®ãŸãŸæŸçœ®ã§ã倧äžå€«ã ãããšããããšã§ç·šéããŠããŸããããããšã¯ãŸã现ããç¹ãææã§ããã»ã©ãŸã ååã«èªã¿èŸŒãã§ããŸãããããŒãžæ°ããUNIX ãšããèãæ¹ãã® 4 åè¿ãããéãå€ãã§ãã
ãã¬ã€ã¢ã³ãã® UNIX å²åŠãã®è©³çްã«ã€ããŠã¯ãThe Art of UNIX Programmingããåç §ããŠãã ãããè±èªçãªãèè ã®å ¬åŒããŒãžããç¡æã§èªãããšãã§ããŸããä»ã®ææžã«æ¯ã¹ãŠæ°ããïŒãšèšã£ãŠã 2003 幎åºçã§ããïŒã ãã§ã¯ãªã UNIX ã®æŽå²ã®è©³çްãå ·äœçãªã±ãŒã¹ã¹ã¿ãã£ãä»ã® OS ãšã®èãæ¹ã®éããUNIX å²åŠã«é¶é ããã®ã§ã¯ãªãã¡ãªããã»ãã¡ãªãããªã©ãæžãããŠãããUNIX å²åŠãåŠã¶ã®ã§ããã°ãUNIX ãšããèãæ¹ããããå¹ åºãå å®¹ãæ±ã£ãŠãã ãThe Art of UNIX Programmingãã®æ¹ããªã¹ã¹ã¡ ã§ãã
ã¡ãªã¿ã«ãThe Art of UNIX Programmingãã®æ¥æ¬èªèš³ã§ã¯ãUnix ææ³ããšæžãããŠããŸãã Basics of the Unix Philosophy ãããããããã«ãåèã§ã¯ãUNIX å²åŠãã§ãã
ãããã«
æ¬æãæžãäžããããŠæåŸã¯ã©ããã£ãŠç· ãããããšèããŠããæãå€ãæ¬ãæ¢ããŠããæã«èŠã€ããããœãããŠã§ã¢éçº201ã®éåããããŸããŸæã«ãšã£ãŠããŸããããã®æ¬ã®åç㯠1996 幎ã«åºçãããŠãããåæžã®ã201 Principles of Software Development ã㯠1995 幎 3 æã§ãããUNIX ãšããèãæ¹ãã®åºç㯠1994 幎 12 æ ãªã®ã§ããã 4 ã¶æããé¢ããŠããŸãããæ¬ã®è¶£æšãéããšã¯èšããèªãã æã«æããæä»£ã®ç©ºæ°ããããŸã§éããã®ãªã®ããšå°ãé©ããŸããããã¯ããUNIX ãšããèãæ¹ã㯠1980 幎代ãèå°ã§ãã
ããœãããŠã§ã¢éçº201ã®éåãã® P2 ã«ã¯ãã®ããã«æžãããŠããŸãã
äžçµã¿ã®åçã¯ãåŠååéã®æé·ã«ã€ããŠé²åãããã®ã§ãããçŸåããåçã¯æ¹å®ãããæ°ããªåçãå ãããããããŠå€ãåçã¯ç Žæ£ããããïŒäžç¥ïŒããã1964 幎ã®ãœãããŠã§ã¢å·¥åŠã®åçã調æ»ãããšããã°ããããã®åçã¯çŸåšã§ã¯ã²ã©ãã°ããããã®ã«èŠããã ããïŒäŸãã°ãåžžã«çã倿°åã䜿çšããããšããããã°ã©ã ãçãããããã«ã¯ã©ããªããšã§ãããããšãã£ãåçã§ããïŒããããšåãããã«ãçŸåšéçšããŠããåçã¯ã30 幎åŸã«ã¯ã°ããããã®ã«èŠããããšã ããã
ãã®èšäºãå·çããŠãã 2022 幎ã¯ããã® 30 幎åŸãŸã§ããšããã 3 幎ã«ãªã£ãŠããŸããŸããããã®éãã§ãã30 幎ãããã°åœæã®åçãªããŠå€ãã£ãŠããŸããã®ã§ããUNIX å²åŠã¯å€ãããªãïŒä»ããã®ãŸãŸéçšããïŒãããªãããããŸãããåçã¯æ¹å®ããªããã°ãããŸãããããããã®èšäºã§è¡ã£ãããã§ãã
ç§ã UNIX å²åŠã®è§£èª¬ãä¿®æ£ããããšãæ°ã«å ¥ããªã人ãããã®ã§ã¯ãªãããšæããŸããä»ãŸã§ã® UNIX å²åŠã®è§£èª¬ãæ£ãããšä¿¡ããŠçãããæã«èŠããç¥èã ãããã°ååãæ°ããããšãåŠã°ãªããŠããããããããå€ããªããŠãããšæã£ãŠãã人ãã¡ã§ããããŠãããŒãžããã©ãã©ãšããã£ãŠããæãP142ãåç 129 èªãã ããšã®ãã¹ãŠãä¿¡ãããªãã§å²åŠã«ã€ããŠè峿·±ãããšãæžãããŠããã®ã§åŒçšããŸãã
äžè¬çãªã«ãŒã«ãšããŠãç¹å®ã®å²åŠãä¿¡ãã人ã ã¯ããã®å²åŠãæ¯æããããŒã¿ãŒãæ¢ãæ±ããæ¯æããªãããŒã¿ãŒãæšãŠããã®ã ãä»ã®ç«å Žãä¿¡ããããšãã人ã¯ãæããã«ãããæ¯æããªãããŒã¿ãŒã«ã¯èå³ã瀺ããããããæ¯æããããŒã¿ãŒãçšããããææ³ x ã䜿ãã°ã93 % ãŸã§çç£æ§ïŒãŸãã¯å質ïŒãæ¹åã§ããããšãããããµã«åºäŒã£ããšãããããã®å Žåããã®ææ³ã¯æ¬åœã«ããããçµæãéæããã®ãããããªãããããã¯äŸå€çãªã±ãŒã¹ã ããããšæã£ãæ¹ãããã倧éšåã®ãããžã§ã¯ãã¯ãã©ããã£ãã¯ãšã¯ã»ã©é ãçµæãçµéšããããšã ãããããã¯ãããããµããããšã ãããã«ããããããžã§ã¯ãã§ã¯ãææ³ x ã䜿ã£ãããã«ãçç£æ§ãäžããããšã ã£ãŠããã®ã ã
Ref: Fenton, N., "How Effective Are Software Engineering Methods?" Journal of Systems and Software, 22, 2 (August 1993), pp. 141-146.
201 ã®éåã¯å€ããªã£ããšæãããããã®ãããã€ããããŸãããç§ã®æèŠã§ã¯ããã®ãåç 129 èªãã ããšã®ãã¹ãŠãä¿¡ãããªãã¯ä»ã確å®ã«éçšããŠããŸããã€ãŸããUNIX å²åŠã®èªãã ããšã®ãã¹ãŠãä¿¡ãããªãã§ãã
å€ã UNIX å²åŠã®èª¬æãä¿¡ãã人ã ã¯ããããæ¯æããªããã®èšäºã®ãæ°ãã UNIX å²åŠãã®èª¬æãïŒèæ ®ããããšãªãïŒæšãŠãã«éããããŸãããã§ããæ¥µããŠå€åãæ©ãã³ã³ãã¥ãŒã¿ãšãœãããŠã§ã¢ã®åéã§ 30 幎以äžåã®èãæ¹ãããã®ãŸãŸã®åœ¢ã§ä»ãéçšãããªããŠããããªãã®ã§ããUNIX å²åŠã¯å€ãããªãã®ã§ã¯ãªãå€ããŠããªãã ãã§ããUNIX å²åŠãå€ããããšãäžã®äžã®ãœãããŠã§ã¢æè¡ã¯å€§ããå€ãã£ãŠããŸããæŽæ°ãããªã UNIX å²åŠã¯ãäžã®äžããé ããŠããèãæ¹ãšããããšã«ãªã£ãŠããŸããŸããããã°ã©ãã«ãšã£ãŠéèŠãª UNIX å²åŠã®èãæ¹ãæä»£é ãã®ãŸãŸã«ããŠã¯ãããŸããã
æåŸã«éèŠãªããšãªã®ã§ããäžåºŠèª¬æããŠãããŸããUNIX å²åŠã¯å€§ããªã·ã¹ãã ãã¢ãžã¥ãŒã«åãããæ§æå¯èœãªããã°ã©ã èšèšã§éçºãããšããèãæ¹ã§ãããã®å®è·µäŸã®äžã€ããœãããŠã§ã¢ããŒã«ã§ããUNIX ã·ã§ã«ã UNIX ã³ãã³ãã ãã§ã¯ãªããããŸããŸãªã·ã§ã«ãããŸããŸãªã³ãã³ããããŸããŸãªèšèªãããŸããŸãªããã«ãŠã§ã¢ãªã©ãããŸããŸãªãœãããŠã§ã¢ãäœãããããŠçµã¿åãããŠäœ¿ããšããèãæ¹ã§ããUNIX å²åŠã¯ãã€ãŸã§ãå€ãããªãå€ãéå ·ã䜿ããUNIX æä»£ã®éçºææ³ãç¶ãããšããèãæ¹ã§ã¯ãããŸãããæä»£ã®å€åã«å¯Ÿå¿ããŠæ°ããéå ·ãäœãåºããå€åããŠããã®ãæ¬æ¥ã® UNIX å²åŠã§ãã


