POSIX æºæ ãšã¯
ãPOSIXæºæ ããšã¯ç§»æ€æ§ãé«ããããã® POSIX ãå®çŸ©ããèŠä»¶ãæºããããšã§ããLinux/Unixçšã®å€æ°ã®ãœãããŠã§ã¢ã¯ POSIX ã«æºæ ããŠãããå€ãã®ç°å¢ã§ã®åäœãå®çŸããŠããŸããPOSIX ã®èŠä»¶ã«ã¯ OS ãã³ããŒåããšã¢ããªã±ãŒã·ã§ã³ã®éçºè åãã®èŠä»¶ããããé«ãç§»æ€æ§ã®å®çŸã«ã¯åæ¹ã POSIX ã®èŠä»¶ãæºãããŠéçºããå¿ èŠããããŸããPOSIX ãç®æšãšããç§»æ€æ§ãšã¯å®è¡ãã¡ã€ã«ã®ãã€ããªããã®ãŸãŸåãããšã§ã¯ãªãããœãŒã¹ã³ãŒãã¬ãã«ã®ç§»æ€æ§ãã§ããã€ãŸã ãã¢ããªã±ãŒã·ã§ã³ã®ç§»æ€æ§ãé«ãããšã¯å¥ã®ç°å¢ã§ã®ãã«ããšã€ã³ã¹ããŒã«ã容æã§ãããšããæå³ã§ããäŸãã° cURLãSQLiteãbash ãªã©ã¯ POSIX æºæ ã®ãœãããŠã§ã¢ã®äŸã§ãæ°å€ãã® OS ã§åäœããŠãããšããäºå®ã¯ POSIX æºæ ã§ããããšã®èšŒæã§ããçŸåšãæ°ããããªãã»ã©å€ãã®ãœãããŠã§ã¢ãé«ãç§»æ€æ§ãå®çŸããªãããé«ãæ§èœãæ©èœæ§ãçç£æ§ãäºææ§ãªã©ãäž¡ç«ãããŠããŸããä»ãç¹å®ã®ç°å¢ã§ããåããªããœãããŠã§ã¢ã¯ã»ãšãã©ãããŸãããããã¯å OS ãèšèªãã©ã€ãã©ãªãæçã POSIX ã«åŸã£ãŠäœãã®ããšãŠãç°¡åã«ãªã£ãããã§ããç§»æ€æ§ãé«ããœãããŠã§ã¢ãå©çšããŠäœããããœãããŠã§ã¢ããŸãç§»æ€æ§ãé«ããªããŸããPOSIX ã®ç¯å²ã§äœããšããã®ã¯ æçµçã«åŒã³åºã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã POSIX ã§æšæºåããã API ã§ããããšã§ãããããã£ãŠ POSIX å€ã®ã³ãã³ãã PythonãRubyãRustãJavaScriptãJava ãªã©ã®ããŸããŸãªèšèªã§äœã£ãã¢ããªã±ãŒã·ã§ã³ãïŒéæ¥çã«ïŒPOSIX ã€ã³ã¿ãŒãã§ãŒã¹ãåŒã³åºããŠãããªããPOSIX æºæ ããšèšããŸããäºå®ãããã䜿ã£ãŠäœãããã¢ããªã±ãŒã·ã§ã³ã¯é«ãç§»æ€æ§ãšäºææ§ããããã©ã®ç°å¢ã§ãåããŸããçŸåšã®ãœãããŠã§ã¢éçºã¯å€æ°ã® POSIX æºæ ã®èšèªãã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãããã«ãŠã§ã¢çã«æ¯ããããŠããŸãã
POSIX ã«æºæ ããŠã¢ããªã±ãŒã·ã§ã³ãéçºãããšç§»æ€æ§ãé«ãŸããšãã話ã¯ããç¥ãããŠããŸãã POSIX ã«æºæ ãããšããäºãæ¬åœã¯ã©ãããæå³ãªã®ãã¯æ¡å€ç¥ãããŠããªãæ°ãããŸããPOSIX 㯠C èšèªçšã® POSIX API ãã·ã§ã«ã¹ã¯ãªããçšã® POSIX ã³ãã³ããæšæºåããŠããŸãããPOSIX æºæ ãšã¯ãPOSIX API ã POSIX ã³ãã³ãã ãã䜿ã£ãŠ C èšèªãšã·ã§ã«ã¹ã¯ãªããã§äœãããšãã§ã¯ãããŸãããããã ãšå€ã OS ãæºæ ããŠããã¯ãã® POSIX ãªã®ã«ããã®äžã§åäœããã¢ããªã±ãŒã·ã§ã³ãä»ã®èšèªã§ã¯äœããªããšããæå³äžæãªè©±ã«ãªã£ãŠããŸããŸãããŸãéçºèšèªãïŒçŸä»£ã®åºæºã§çç£æ§ã®äœãïŒC èšèªãšïŒæ©èœäžè¶³ã§é ãïŒã·ã§ã«ã¹ã¯ãªããã«éå®ããããšããããæ°ããèšèªãå€ãã®ã©ã€ãã©ãªãåŠå®ããæšæºèŠæ Œãšãªã£ãŠããŸã誰ãåŸããŸãããPOSIX ãšã¯äœ¿çšããŠããã©ã€ãã©ãªãã³ãã³ããå¶éãããã®ã§ã¯ããŸãããå°æ¥ã®æ¡åŒµãšèªç±ãä¿èšŒããŠãããæ°ããããšã¯ POSIX å€ã§è¡ããäºãåæã®æšæºèŠæ Œã§ããPOSIX èªäœã®ä»æ§ã¯ã»ãšãã©å€åããŸããããããã¯æ°ãããã®ãäœãåºãæšæºèŠæ Œã§ã¯ãªã POSIX ãæšæºåããã 1988 å¹Žåœæã® Unix ãèµ·ç¹ãšããŠãã©ã® Unix ç³» OS ã«ãå ±éãããOS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã ãããæšæºåãããã®ã ããã§ãããã OS ã®æ°æ©èœã¯å ±éãããã®ã§ãªããã° POSIX ã«çµã¿èŸŒãŸããŸããããå¥ã® OS ãå ±éããæ©èœãéçºããããšã¯ããŸããããŸãããå®å®ããŠãããšèšãã°èããã¯è¯ãã§ãã POSIX ã®èŠæ Œã¯æã® OS ã®ä»æ§ã®ãŸãŸã»ãšãã©æ¹åãããæäœéã®å ±éæ©èœããæšæºåãããŠããªããšããããšã§ããPOSIX 㯠OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã®ã¿ã察象ãšãããã®ã§ããããããœãããŠã§ã¢éçºã®çç£æ§ãäžããåªããèšèªãã³ãã³ããã©ã€ãã©ãªãããã«ãŠã§ã¢ãå«ãŸããããšã¯ãããŸãããã ãããšèšã£ãŠ POSIX å€ã®ãœãããŠã§ã¢ã䜿çšãããšç§»æ€æ§ãäžãããšã¯ POSIX ã¯èšã£ãŠããªãã®ã§ããPOSIX ã§èŠå®ãããæ©èœã ãã䜿ã£ãŠéçºããã®ã¯çŸå®çã§ã¯ãããŸãããããããã POSIX ã POSIX ã§èŠå®ããæ©èœã ãã䜿ããšã¯èšã£ãŠããŸãããPOSIX ãèŠå®ããã®ã¯ãããŸã§ OS ã®åºç€ãã£ãŠããœãããŠã§ã¢éçºã®åºç€ã¯ POSIX ã®å¯Ÿè±¡å€ãæšæºåãå¿ èŠãªãå¥ã®å£äœã§ãããŸããããšããã ãã§ãã
ãŸã POSIX ã§æšæºåãããŠããªãã€ã³ã¿ãŒãã§ãŒã¹ïŒäŸãã° GPU ãä»®æ³åã»ã³ã³ããæè¡ãªã©ïŒã䜿ã£ãŠããŠã POSIX æºæ ãšåŒã¶ããšãã§ããŸãããªãããèšãåããã®ããšèšããš POSIX ã®ããã¥ã¡ã³ãã«ãæ¡åŒµæ©èœãå©çšãã POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ããšããå®çŸ©ãããããã§ããæ¡åŒµæ©èœãšã¯ POSIX ã§èŠå®ãããŠããªã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã®ããšã§ãå ·äœçã«ã¯ GNU ã BSD åºæã® APIïŒã·ã¹ãã ã³ãŒã«ãã©ã€ãã©ãªïŒã POSIX ã³ãã³ã以å€ã® OS ã®ã³ãã³ãçã®ããšã§ããæ¡åŒµæ©èœãå©çšãã POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ãšããå®çŸ©ãããããšãããPOSIX ã§èŠå®ãããŠããã®ã ãã䜿ããšããã®ãééãã§ããããšãã¯ã£ãããšåãããŸããPOSIX ã®ç®çã¯ç§»æ€æ§ãé«ãã¢ããªã±ãŒã·ã§ã³ã®éçºã容æã«ããããšã§ããéã«èšãã°ãæ°ããèšèªãã³ãã³ããã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãGUI ãããŒã¿ããŒã¹ãªã©ã¯ POSIX ã®ç®çã§ã¯ãããŸãããããã㯠POSIX ã®å¯Ÿè±¡ç¯å²ã§ã¯ãªããã POSIX ã§æšæºåãããããšã¯ãããŸããããã ãããšèšã£ãŠ POSIX ã¯æ¡åŒµæ©èœã䜿ã£ãŠã¯ãããªããšã¯äžèšãèšã£ãŠããŸãããPOSIX ã§æšæºåããã OS ã®æ©èœã ãã䜿ããæ®ããã¹ãŠãèªåã§äœæããªããã°ãªããªããšãããããœãããŠã§ã¢éçºã®çç£æ§ã¯å€§ããäžãã£ãŠããŸãéçºã³ã¹ãã¯å€§ããèšãäžãã£ãŠããŸããŸããPOSIX ã§èŠå®ãããã®ã ãã䜿ãããšããPOSIX æºæ ããªã®ã§ã¯ãªã POSIX ã§èŠå®ããéšåã POSIX ã«åŸã£ãŠããã°ãPOSIX æºæ ãã§ããæ¡åŒµæ©èœã®äœ¿çšã¯èªå·±è²¬ä»»ãšããã ãã§ POSIX ã¯äœ¿çšãçŠæ¢ããŠã¯ããããPOSIX æºæ ã§ã¯ãªããªãç§»æ€æ§ã¯ãªãïŒãããªç©ã䜿ããšç§»æ€ã§ããªããŠåŸæãããïŒããªã©ãšè²¬ãç«ãŠãããšã¯ãªãã®ã§ãã
POSIX ã®ç®çã§ããç§»æ€æ§ãšã¯ã¢ããªã±ãŒã·ã§ã³ãä»ã®ç°å¢ã§ãã«ãããããããããšã§ãã远å ã®ã³ãã³ããã€ã³ã¹ããŒã«ãããããããã®ã§ãã£ãŠãPOSIX ã³ãã³ã以å€ãã€ã³ã¹ããŒã«ããªãããã«ããããšãããã®ã§ã¯ãããŸãããPOSIX ã³ãã³ãã¯ã©ãã§ã䜿ãããããããŸããã POSIX ã³ãã³ã以å€ãã©ãã§ãåããšããäºå®ã¯éèŠã§ããPOSIX ã³ãã³ã以å€ã®ç§»æ€æ§ãå®çŸããã®ã POSIX ã®ææã ããã§ãããªãŒãã³ãœãŒã¹ã®ãœãããŠã§ã¢ã«éãã°äœ¿ããªããªã£ããœãããŠã§ã¢ã¯ãŸããããŸãããå°æ¥äœ¿ããªããªããããªããŠå¿é ããå¿ èŠããããŸããããœãŒã¹ã³ãŒããå ¬éãããŠãããªãèªåã§åŸãåŒãç¶ãããšãã§ããããã§ããæã®ä»æ§ã§ãããPOSIX ã³ãã³ããããææ°ã®ã³ãã³ãã®æ¹ã髿©èœã§äŸ¿å©ã§åªããŠããŸãããã©ã®ç°å¢ã§ãåãïŒPOSIX ã³ãã³ã以å€ã®ïŒPOSIX æºæ ã³ãã³ããã䜿ãã°è¯ãã®ã§ãç§»æ€æ§ãçç±ã«æ©èœã貧匱ã§ã§ããããšãå°ãªã POSIX ã³ãã³ãã«åºå·ããæå³ã¯ãããŸãããç§»æ€æ§ã«ãšã£ãŠéèŠãªã®ã¯ POSIX æºæ ãšããèšèã§ã¯ãªãå®éã«ç§»æ€ãããŠããããšã§ãããããã POSIX ã³ãã³ãã ãããšãã£ãŠã·ã¹ãã ã«æåããã€ã³ã¹ããŒã«ãããŠãããšã¯éããŸãããPOSIX ã®èŠä»¶ã«ãPOSIX ã³ãã³ãã¯æå°æ§æã§ã€ã³ã¹ããŒã«ããªããã°ãªããªãããšããèŠå®ã¯ãããŸãããã©ã¡ãã«ããäœããã€ã³ã¹ããŒã«ããªããã°ã·ã¹ãã ãåããªãã®ã§ããã°äŸ¿å©ãªã³ãã³ããã€ã³ã¹ããŒã«ããŠäœ¿ãã®ãã®åãããšã§ããããã±ãŒãžç®¡çã·ã¹ãã ã®ç»å Žã§ä»ã®ã€ã³ã¹ããŒã«äœæ¥ã¯ãšãŠãç°¡åã«ãªããŸããããã䜿ãããŠãããœãããŠã§ã¢ã§ããã°ã€ã³ã¹ããŒã«ã§ãã«ãäœæ¥ãè¡ãå¿ èŠã¯ãããŸãããCLI ã³ãã³ããªãå€ãã®å Žåã¯èšå®äœæ¥ãäžèŠã§ãããªãã§ãèªäœããã®ã§ã¯ãªãæ¬åœã«äŸ¡å€ããããã®ãäœããšããèãæ¹ãéèŠã§ãããããåããã£ãŠãæ±ããŠããæ©èœããå®çŸã§ããªããã°äŸ¡å€ã¯ãããŸãããæéããããŠäœã£ãŠã䜿ãããªããã°ãã ã®ç¡é§ãªéçºã³ã¹ãã§ãã
ã·ã§ã«ã¹ã¯ãªããã«ã¯ç°å¢äŸåãæ¿ãããšããåé¡ããããŸãããã㯠POSIX ã³ãã³ããã£ãŠãåäœãåç°å¢ã§å®å šãªäºææ§ããªãããã§ããPOSIX ã§æšæºåãããŠããç¯å²ã®ã·ã§ã«ã®ææ³ãã³ãã³ãããªãã·ã§ã³ã§ãã£ãŠãäºææ§ã¯å®å šã§ã¯ãããŸãããPOSIXã§èŠå®ãããŠãã仿§ã«åŸã£ãŠãããã®ã§ãåäœã«éããããã®ã§ãããŸãçŸå®ã«ã¯ POSIX ã«æºæ ããŠããªãå®è£ ããã°ã§ POSIX ã§æ±ºãŸã£ãŠããéãã«åããªãããšããããPOSIX ã®ç¯å²ãªã OS ã倿ŽãããæŽæ°ãããããŠãåäœãå€ãããªããšããä¿èšŒã¯ãããŸãããPOSIX ã®ä»æ§ã¯çµ±äžããåäœã«æ±ºãŸã£ãŠããããã§ã¯ãªãã®ã§ OS ãæŽæ°ããããã«ç°å¢äŸååé¡ãšæŠãç¶ããå¿ èŠããããŸããPOSIX ã¯æè©®ä»æ§ãšããææžã«éããªãã®ã§ä»æ§ãå€ãããªããŠãå®éã®åãã¯å€ãããŸãããPOSIX ã«ã¯ä»æ§ãæç¢ºã«æ±ºããããŠãªããšããããããŸããã®ãããªèª¬æãèŠãããŸããããã®èª¬æã¯ééã£ãŠãããPOSIX ã仿§ãæç¢ºã«æ±ºããŠãªãã®ã§ã¯ãªããå Unix ã§åäœãç°ãªã£ãŠãããããPOSIX 㯠å Unix ã§ä»æ§ãç°ãªãéšåãæç¢ºã«ææããŠããããšããã®ãæ£ãã説æã§ããå OS ã§åäœãéã£ãŠããæãçµ±äžããåäœã«èŠå®ããŠããŸããšäºææ§ãä¿ãŠãªããªãã®ã§å€æŽã§ããªãã®ã§ããäŸãã°ã³ãã³ãåºåã®äœçœ®æãã®ããã®ç©ºçœã®æ°ã¯ïŒPOSIX ã§èŠå®ããã®ãå¿ããŠããã®ã§ã¯ãªãïŒå OS ã§ãã©ãã©ã§ãããš "POSIX ã¯ææ" ããŠããŸãïŒåè POSIXã³ãã³ãåºåã®ã€ã³ãã³ãã»ã«ã©ã éã®ã空çœã®æ°ãç°å¢ã«ãã£ãŠç°ãªãã®ã¯POSIXã«æºæ ããåäœãã§ãããšãã話ïŒããã®ãããªãã®ã¯ POSIX ã詳现ãªä»æ§ãèŠå®ããªãã£ãããå OS ãã³ããŒã仿¹ãªããã©ãã©ã«å®è£ ããã®ã§ã¯ãªããå ã« OS ãã³ããŒããã©ãã©ã«å®è£ ããŠããããã®äºå®ã POSIX ã¯æšæºåããŠããã®ã§ããPOSIX ã«ãåäœã決ãŸã£ãŠããªãããšæžããŠãããªãã°ãããã¯çç±ããã£ãŠæå³çã«ããæžããã®ã§ããããæ¬åœã« POSIX ã仿§ã決ããã®ãèŠéããŠããã®ã§ããã°äœãæžããŠããªãã¯ãã§ããå®éã®æ POSIX ã«ãæžãæŒãã¯ããã®ã§ããæ°ã¯ãããªã«å€ãã¯ãããŸããããããã®ãã¹ã¯äœå¹Žæ¯ã® POSIX ã®æ¹å®ã§ä¿®æ£ãããŠããŸããã·ã§ã«ã¹ã¯ãªãããäŸåããŠããã³ãã³ãã®å€ããã·ã§ã«ã¹ã¯ãªããã®ç°å¢äŸåãæ¿ããåå ã®äžã€ã§ããPOSIX ã³ãã³ãã¯å€ãã® OS ã§ããããç¬èªã«å®è£ ãããŠããå Žåãå€ããå®è£ ã®çš®é¡ã®å€ããç°å¢äŸåã®åé¡ãæªåãããŠããŸããããäžã€ã®å£äœããPOSIX ã³ãã³ãããäœã£ãŠãããšããããç§»æ€æ§ã®åé¡ã¯èµ·ããªãã£ãã§ãããããæ®å¿µãªããæŽå²çäºæ ã§ããããããšã«ã¯ãªããŸããã§ããã
POSIX ã§ã¯ããããã® OS ã«ã¯åäœã«éããããããšãã§æããã«ãããŠããŸããé«ãç§»æ€æ§ã®å®çŸã«ã¯ãå OS ã®åäœã®éãã«å¯Ÿå¿ããŠã¢ããªã±ãŒã·ã§ã³ãæžããããšãéèŠã«ãªã£ãŠããŸãããPOSIX ã«ã¯å OS ã®ä»æ§ã®è©³çްã¯èšèŒãããŠããŸãããPOSIX ã ããåç §ããŠã¢ããªã±ãŒã·ã§ã³ãæžããŠãåããã©ããã¯é次第ã§ããå OS ã®ããã¥ã¡ã³ãããã£ããèªãã§ãå OS ã§åäœãã¹ããããªããã°ãã©ãã§ãåãã¢ããªã±ãŒã·ã§ã³ãéçºããããšã¯ã§ããŸãããã ãã ç§»æ€æ§ãé«ãã¢ããªã±ãŒã·ã§ã³ãæžãã®ã¯æ¬æ¥ã¯å€§å€ãªäœæ¥ãªã®ã§ãããããã£ã倧å€ãªäœæ¥ã楜ã«ããããã«ãåèšèªãã©ã€ãã©ãªã¯å OS ã®åäœã®éããåžåããŠæ®éã«ã¢ããªã±ãŒã·ã§ã³ãæžãã ãã§ç§»æ€ã§ããããã«ãªã£ãŠããŸããã€ãŸããä»ã®èšèªã§ã¯ POSIX ã«æºæ ããäœæ¥ã¯èšèªéçºè ãã©ã€ãã©ãªéçºè ããã§ã«è¡ã£ãŠããããšããããšã§ãããããã£ããµããŒããªãã« POSIX ã§æšæºåããã API ã ã³ãã³ãã ãã䜿ã£ãŠã©ã®ç°å¢ã§ãåãã¢ããªã±ãŒã·ã§ã³ãéçºããããšãããå OS ã®å€ãã®éãã«æ©ãŸãããããšã«ãªããŸãããPOSIX æºæ ãæ°ã«ããªãã§éçºã§ããä»ã®èšèªã®æ¹ãç°¡åã«æ¥œã«é«ãç§»æ€æ§ãå®çŸã§ããã ãšããã®ã¯ç®èãªäºå®ã§ãããPOSIX ãæåã«æšæºåããã 1988 幎ãããããã ããœãããŠã§ã¢éçºã®äžçã¯å€§ããçºå±ãããšããããšã§ããä»ã誰ã§ãæèããã« POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ãäœã£ãŠããŸããå®éã«éçºããã¢ããªã±ãŒã·ã§ã³ã¯ã©ã®ç°å¢ã§ãåãã§ãããïŒ äŸ¿å©ãªèšèªãã©ã€ãã©ãªã䜿ã£ãŠãäœãèããã«ç§»æ€æ§ãå®çŸã§ããã®ãªãããã䟡å€ã¯ãããŸãããå OS ã®éãã«æ©ãŸãããªããéçºããã»ã©ç§»æ€æ§ã®äŸ¡å€ã¯é«ããããŸãããç§»æ€ãããããšããªãã®ã«ç§»æ€æ§ãæ°ã«ãããããããã£ãšéèŠãªããšãä»ã«ããã¯ãã§ãã
è£è¶³ ãã®èšäºã¯ POSIX ã®ããã¥ã¡ã³ãã®æç« ã«åºã¥ããŠæžããŠããŸããå ·äœçã«ã©ãã«æžããŠããã®ããç¥ããã人ã¯ãã®èšäºã®åŸåãåç §ããŠãã ããããã®èšäºã®å 容㯠POSIX ã® C èšèªãšã·ã§ã¹ã¯ãªããã®äž¡æ¹ã®éçºã«åœãŠã¯ãŸã話ã§ãããç§ãæ®æ®µãã£ãŠããããšãã·ã§ã«ã¹ã¯ãªããåéã§ãããããã·ã§ã¹ã¯ãªããã®è©±ã«åã£ãŠããŸãããäºæ¿ãã ããã
ãPOSIX æºæ ãã®æ£ããçè§£
ããã§ã¯ POSIX ã¯ã©ããããã®ããæ¯ãè¿ããªãããPOSIX ã§èŠå®ãããŠãããã®ã ãã䜿ã£ãŠã¢ããªã±ãŒã·ã§ã³ãéçºããããšããçè§£ãééã£ãŠããçç±ã解説ããŸãããããèªãã°ãã®çè§£ãééã£ãŠããã©ããããPOSIX ã®èããç®çãšã¯æ£å察ã®çè§£ã§ããããšãããããšæããŸãã
ãPOSIX æºæ ãã®å®çŸ©
POSIX ãšã¯ OS ãã³ããŒãšã¢ããªã±ãŒã·ã§ã³éçºè ã®äž¡æ¹ãåç §ãã¹ãããã¥ã¡ã³ãã§ãããã®ãã POSIX æºæ ã®èŠä»¶ã«ããOS ãã³ããŒåãããšãã¢ããªã±ãŒã·ã§ã³éçºè åããã®äºã€ã®èŠä»¶ãå®çŸ©ãããŠããŸããããããå®çŸ©ãããŠããå Žæã¯ 2. Conformance ã§ãã
OS ãã³ããŒåãã® POSIX æºæ ã®å®çŸ©ã¯å€§ããäºçš®é¡ãããŸãããã»ãšãã©ã®äººã¯ OS ãã³ããŒã§ã¯ãªãã¢ããªã±ãŒã·ã§ã³éçºè ã§ãããããOS ãã³ããŒåãã®è©±ã¯çç¥ããŸãã
ã¢ããªã±ãŒã·ã§ã³éçºè åãã® POSIX æºæ ã®å®çŸ©ã¯å€§ããäºçš®é¡ãããŸããããã®äžã§ç§ãèããäºã€ã®å€§ããªå®çŸ©ã¯ãå³å¯ãª POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ããšãæ¡åŒµæ©èœãå©çšãã POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ãã§ãã以äžã¯ãã®äºã€ã®éãã瀺ãããã®ã§ãã
OS ãšã¢ããªã±ãŒã·ã§ã³ã®åºå¥
ç°¡åãªããã§æå€ãšé£ããã®ã OS ãšã¢ããªã±ãŒã·ã§ã³ã®åºå¥ã§ããPOSIX 㯠OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãå®çŸ©ããŠããããããã®ã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããŠããã®ã¯ OS ã§ãããšèšããŸããããã POSIX ãå®çŸ©ããŠããã®ã¯ãç§»æ€æ§ããã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãã ããªã®ã§ãPOSIX ãå®çŸ©ããŠãããã®ã OS ã®å šãŠã§ã¯æããŸããããç§»æ€æ§ããªã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ããæ®ã£ãŠããŸãã
åºå¥ããã®ãé£ããçç±ã¯ããã±ãŒãžç®¡çã·ã¹ãã ãç»å Žããããã§ããå®ã¯ããã±ãŒãžç®¡çã·ã¹ãã ãç»å Žããã®ã¯ POSIX çå®ã®åŸã§ Linux (Debian?)ãæåã§ãïŒåè wikipedia: Package Manager åã³ How package management changed everythingïŒããããŸã§ã¯ OS ãšèšãã° OS ãã³ããŒããªãªãŒã¹ãããã®ã«å«ãŸããŠãããœãããŠã§ã¢ã§ãã£ãããåºå¥ããã®ã¯æ¯èŒçç°¡åã§ãããWindows ã macOS ã¯ä»ã§ãããã«è¿ãç¶æ ã§ããããã Linux çã§ã¯ããã±ãŒãžç®¡çã·ã¹ãã ã«ãã£ãŠèšå€§ãªãœãããŠã§ã¢ãå©çšããããšãåºæ¥ãŸãã
Linux ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ãããŠåºçŸ©ã® OS 㯠OS æšæºã®ããã±ãŒãžç®¡çã·ã¹ãã ã§ã€ã³ã¹ããŒã«ã§ãããœãããŠã§ã¢ãã¹ãŠã§ãããã®äžã«ã¯ Python çã®ããã°ã©ãã³ã°èšèªã Office ãœãããã²ãŒã ãŸã§å«ãŸããŠããŸãããããå€ãã®äººã¯ãã®ãããªãœãããŠã§ã¢ã¯ãããã±ãŒãžç®¡çã·ã¹ãã ã«åé²ãããŠããã ãã§ OS ã®äžéšãšã¯èããŠããªãã®ã§ã¯ãªãã§ããããïŒå®éã«ããã±ãŒãžç®¡çã·ã¹ãã ã䜿ããã« Python ã Office ãœãããã€ã³ã¹ããŒã«ããå Žå OS ã®äžéšãšããçç±ã¯ãªã«ããããŸããã
ãããã£ãŠ OS ã®å³å¯ãªå®çŸ©ã¯ã§ããŸããããäžè¬çãªæèŠãšããŠä»¥äžã«è©²åœãããœãããŠã§ã¢ã¯ OS ã®äžéšã§ãããšç§ã¯èããŠããŸããéèŠãªç¹ãšããŠãœãããŠã§ã¢ã®çš®é¡ã§ OS ãã©ããã®å€æã¯ããŠããŸãããïŒããã°ã©ãã³ã°èšèª = OS ãšã¯éããªããšããããšïŒ
- POSIX ã§èŠå®ãããŠãããã®ã¯ OS
- Unix ã§æãã OS ã®äžéšãšããŠé åžãããŠãããœãããŠã§ã¢ã¯ OS
- OS ã®æå°æ§æã§ãã€ã³ã¹ããŒã«ãããŠãããœãããŠã§ã¢ã¯ OS
- OS èªèº«ããŠãŒã¶ãŒã管çããããã®ãœãããŠã§ã¢ã¯ OS
- GUI ã®ãŠã€ã³ããŠã·ã¹ãã ã GPU åšã㯠OS
POSIX æºæ ã®ã¢ããªã±ãŒã·ã§ã³ã¯äžèšä»¥å€ã®ããã°ã©ãã³ã°èšèªãã³ãã³ããã©ã€ãã©ãªãããŒã¿ããŒã¹ããŠã§ããµãŒããŒãããã«ãŠã§ã¢ãªã©ãã¹ãŠã§ããPOSIX ã®å®çŸ©ã«ã¯ OS ãšã¢ããªã±ãŒã·ã§ã³ã®åºå¥ããç¡ããããOS 以å€ã¯ãã¹ãŠã¢ããªã±ãŒã·ã§ã³ãšããŠèããŸãã
éçºèšèªã¯ C èšèªãšã·ã§ã«ã¹ã¯ãªããã«éå®ãããªã
ãããã POSIX 㯠OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ããå®çŸ©ããŠãªããã ãã
ã©ã®èšèªã§å®è£
ããã£ãŠè¯ããã§ãïŒ
åé ã§ OS ãš ã¢ããªã±ãŒã·ã§ã³ã®åºå¥ã®è©±ãããã®ã¯ãäŸãã° Python ã䜿ã£ãŠã¢ããªã±ãŒã·ã§ã³ãéçºããå Žåã§ã POSIX æºæ ã®å®çŸ©ãæºãããšãã話ããããã£ãããã§ãã
äŸãã° Python ãšããèšèªã¯ POSIX ã§ã¯èŠå®ãããèšèªã§ã¯ãããŸãããããã®çç±ã¯ Python ã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã§ã¯ãªãããã§ãïŒäžèšè£è¶³åç §ïŒãPython 㯠POSIX ã®å®çŸ©äžã¯ã¢ããªã±ãŒã·ã§ã³ã«åé¡ãããŸããåŸã£ãŠ Python åã³ Python ã§éçºããã¢ããªã±ãŒã·ã§ã³ãå éšã§ POSIX ã§èŠå®ããã POSIX API ã®ã¿ã䜿çšããŠãããšããããšãåæãšãªããŸãããPython ã§äœãããã¢ããªã±ãŒã·ã§ã³ã¯ãå³å¯ãª POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ãã®èŠä»¶ãæºãããšãããŸãã
ããã§ãªããã° C èšèªã䜿ã£ãŠéçºãããç¬èªã³ãã³ãã¯POSIX ã§èŠå®ãããŠããªãã³ãã³ãããªã®ã§ãèªåã§äœã£ãã³ãã³ãã䜿ã£ãæç¹ã§ãå³å¯ãª POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ãã§ã¯ãªããªããšããæå³äžæãªçµè«ã«ãªã£ãŠããŸããŸããç¬èªéçºã®ã³ãã³ãã ãããä»äººãäœã£ãã³ãã³ãã ãããèšèªã ãããã©ã€ãã©ãªã ãããããããã«å€§ããªéãã¯ãããŸãããOS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã§ã¯ãªããã®ãããã䜿ããã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãå®ãã POSIX ãšã¯äœãé¢ä¿ã®ãªã話ãªã®ã§ãã
ãŸãšãããšããããããšã§ãã
- åããã°ã©ãã³ã°èšèªããã³ã©ã€ãã©ãª
- å
éšã§ OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãåŒã³åºããªããã®
â OS ã®ã€ã³ã¿ãã§ãŒã¹ã§ã¯ãªããã®ã¯èªç±ã«äœ¿ããïŒPOSIX æºæ ïŒ - å
éšã§ POSIX ã§èŠå®ããã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãåŒã³åºããã®
â å³å¯ãª POSIX æºæ - å
éšã§ POSIX ã§èŠå®ãããŠããªã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãåŒã³åºããã®
â æ¡åŒµæ©èœã®å©çšïŒå OS ã«å¯Ÿå¿ããŠããéã POSIX æºæ ïŒ
- å
éšã§ OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãåŒã³åºããªããã®
ã§ããŸããããªé·ã ãšèª¬æããªããŠãäžèšã§æžã¿ãŸããPOSIX ã®ã©ããèŠãŠããPOSIX æºæ ã«ããããã«ã¯ C èšèªãšã·ã§ã«ã¹ã¯ãªããã ãã§äœããã°ãªããªãããšã¯æžããŠããŸãããçŠæ¢ãããŠãªãã®ã§ããã°äœã䜿ã£ãŠãããã®ã¯èªæã§ãã
è£è¶³ ä»®ã«èªåãæ°ããããã°ã©ãã³ã°èšèªãäœã£ããšããŠãããã OS æšæºã®ããã±ãŒãžç®¡çã·ã¹ãã ããå©çšå¯èœã«ãªã£ãã ãã§ãèªåãäœã£ãèšèªã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã«ãªã£ããšæã人ã¯ããªãã§ãããïŒ ããã·ã¹ãã å šäœã§ Python ã䜿ãããšãåæãšããŠéçºããã OS ã ã£ãå Žåã¯ãPython ã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãšèšãããããããŸãããã
ã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ãšéçºå¹çã¯äœã
ã¬ã³ã«ãŒãºã UNIX å²åŠãšããŠãæ¢åã®å¹æãšç§»æ€æ§ãé«ããããã«ã·ã§ã«ã¹ã¯ãªãããå©çšããããšèšã£ãããã§ãç§»æ€æ§ãäžçªé«ãã®ã¯ã·ã§ã«ã¹ã¯ãªããããšåéãããŠãã人ãæã èŠãããŸãããããã¯æããã«ééãã§ããã¬ã³ã«ãŒãºãèšã£ãèšèã®æå³ã¯ä»ã®ã¢ãŒããã¯ãã£ã®ã³ã³ãã¥ãŒã¿ã« UNIX ãç§»æ€éçºããå Žåã®è©±ã§ãä»ã® OS ãžã¢ããªã±ãŒã·ã§ã³ãç§»æ€ããå Žåã®è©±ã§ã¯ãããŸãããããã 1980 幎代㮠UNIX éçºã®è©±ãšããããªãå€ããã®ã§ãã
çŸä»£ã§ã¯ã·ã§ã«ã¹ã¯ãªããã§ãªããšãç§»æ€æ§ã¯é«ãã§ããããªããªãä»ã®èšèªã®æ¹ãç§»æ€æ§ã¯å€§å¹ ã«é«ãã§ãããã®çç±ã¯ã·ã§ã«ã¹ã¯ãªããã OS æ¯ã«åäœã埮åŠã«ç°ãªã POSIX ã³ãã³ãïŒUNIX ã³ãã³ãïŒã«äŸåããŠããããšãå€ãã®ã«å¯ŸããŠãä»ã®èšèªã§ã¯ OS æ¯ã®åŸ®åŠãªåäœã®éããåžåããŠããããã§ããæ®å¿µãªããçŸä»£ã®åºæºã§èšãã°ã·ã§ã«ã¹ã¯ãªããã«ç§»æ€æ§ãé«ããšããã¡ãªããã¯ãããŸããã
POSIX ã® C èšèªã€ã³ã¿ãŒãã§ãŒã¹ã«æ¯ã¹ããšãPOSIX ã·ã§ã«ããã³ POSIX ã³ãã³ãã®ç§»æ€æ§ã¯äœãã®ãçŸç¶ã§ããUNIX ã³ãã³ãã¯å UNIX ã§ããããæ¡åŒµãããŠãããããããšããšäºææ§ãäœãã®ã§ãããã®äºææ§ãäœãäžã§ãããããŠç§»æ€æ§ãããéšåããŸãšããã®ã POSIX ã§ãããããã£ãŠæ©èœãå°ãªã POSIX ã·ã§ã«ãš POSIX ã³ãã³ãã ãã䜿ã£ãŠéçºããããšã¯ãéçºå¹çãäœããšããããšãæå³ããŠããŸãã
ãŸã POSIX ã® C èšèªã€ã³ã¿ãŒãã§ãŒã¹ã®äºææ§ãå®ç§ã§ã¯ãããŸããããããã£ãŠå€ãã®èšèªã¯ OS ã®çްããéããåžåããªããèšèªãã©ã€ãã©ãªãéçºããŠããŸããC èšèªã§ãã£ãŠããPOSIX API ãçŽæ¥äœ¿çšãããããç§»æ€æ§ãèæ ®ããŠäœãããã©ã€ãã©ãªã䜿ãã»ããç§»æ€æ§ã¯é«ããªããŸããããã®æ¹ãéçºå¹çãé«ãã§ããä»ã®ããã°ã©ãã³ã°èšèªãªããªãããã§ãã
åé ã§èª¬æããããã«ãPOSIX ã«æºæ ããæ¡ä»¶ã¯ãC èšèªãã·ã§ã«ã¹ã¯ãªããã䜿ãããšã§ã¯ãããŸãããPOSIX ã³ãã³ãã ãã䜿ãããšã§ããããŸãããOS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšãããšãã«éæ¥çã§ãã£ãŠã POSIX ã§èŠå®ãããã€ã³ã¿ãŒãã§ãŒã¹ãé©åã«åŒã³åºããŠããã°ãããã§ POSIX æºæ ã«ãªããŸãã
è£è¶³ã§ãããã¬ã³ã«ãŒãºã® UNIX å²åŠã¯ãããã€ãã® UNIX å²åŠã®äžã§ãç¹ã«åé¡ãå€ã UNIX å²åŠã§ãã詳ããã¯[åèãUNIXãšããèãæ¹ - UNIXå²åŠãã¯æ¬åœã«åèãªã®ãïŒ ã èè ã®ã¬ã³ã«ãŒãºã¯äœè ãªã®ããšããšã調ã¹ãŠã¿ãããåç §ããŠãã ããã
POSIXã¯ã·ã§ã«ã¹ã¯ãªããã§åé¡ã«ãªãOSã®éããåžåã§ããŠããªã
ã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ãäœãåå ã¯ãçµå±ã®ãšãã OS ã«æšæºã€ã³ã¹ããŒã«ãããŠããã³ãã³ããç¹ã« POSIX ã³ãã³ãã䜿ã£ãŠããããã§ããPOSIX ã³ãã³ãã¯ããã㪠OS ãã³ããŒãããããéçºããŠãããå®è£ ããããããããŸããå®è£ ããããããã = ããããã§åããéã = ç§»æ€æ§ãäœããªããšããããšã§ããPOSIX ã¯ç§»æ€æ§ãé«ããããã®æšæºèŠæ Œã ãããããã§å®çŸ©ãããŠãã POSIX ã³ãã³ãã䜿ãã°ç§»æ€æ§ãé«ããªãã¯ãã»ã»ã»ãããééã£ãèãæ¹ãªã®ã§ãã
POSIX ã³ãã³ãã¯ããã㪠OS ãã³ããŒãéçºããŠããç§»æ€æ§ãäœããšããåé¡ãããããããããã©ãã«ã解決ããããã«äœãããã®ã POSIX ã§ããã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ãé«ããããã®æ¹æ³ã POSIX ææžã«æžããŠããããããæ³šææ·±ãèªãã§ã·ã§ã«ã¹ã¯ãªãããæžãããšããã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ãé«ããããã«å¿ èŠãªããšã§ãããããŠããã POSIX ã³ãã³ãã䜿ãããšã®å€§å€ãªãšããã§ãã
ããŒããŠã§ã¢ã®éããåžåããŠããã®ã¯ OS ïŒã«ãŒãã«ããã©ã€ãïŒã§ãããã®ãããã§ã©ã®èšèªã§äœã£ããœãããŠã§ã¢ã§ãã£ãŠãç°ãªãããŒããŠã§ã¢äžã§åããŸããããã OS ã«ãéãããããŸããOS ã®éãã¯èª°ãåžåããã°ããã®ã§ããããïŒ POSIX ã³ãã³ã㯠OS ã®äžéšãšã¿ãªãããŠããã³ãã³ãã§ããã·ã§ã«ã¹ã¯ãªããã«ãšã£ãŠã® OS ã®éãã¯èª°ãåžåããã°ããã®ã§ããããïŒ
ã€ãŸããOS ã®éããåžåããå±€ããå¿ èŠãªã®ã§ããäžè¬çãªããã°ã©ãã³ã°èšèªã§ããã°ãããã¯èšèªæ©èœãã®ãã®ãã©ã€ãã©ãªã§ããã·ã§ã«ã¹ã¯ãªããã«ãšã£ãŠã¯ïŒOS äžéšã§ãã POSIX ã³ãã³ãã§ã¯ãªãïŒæ°ãã«äœãããã³ãã³ãã§ããæ°ããäœãããå€ãã®ã³ãã³ãã¯ç¹å®ã® OS ã«äŸåããŠãããã©ã®ç°å¢ã§ãåããŸããOS ã«éãããããšããããšã¯ OS ã®æ©èœãçŽæ¥äœ¿ããªãããšãç§»æ€æ§ãé«ããããã®éèŠãªéµã«ãªããŸããã©ã®ç°å¢ã§ãå šãåãããã«åãã³ãã³ãã ãã䜿ã£ãŠããã·ã§ã«ã¹ã¯ãªããã®ç§»æ€æ§ãé«ãã®ã¯éçã§ãããã¡ããã³ãã³ãã ãã§ã¯ãªãã·ã§ã«èªäœãç§»æ€æ§ãé«ãïŒã©ã® OS ã«ã§ãç§»æ€ãããŠããŠåãïŒã·ã§ã«ãäŸãã° bash ãªã©ã䜿ãå¿ èŠããããŸãã
ãå³å¯ãª POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ãã®å®çŸ©
ãå³å¯ãª POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ããšã¯ OS ã€ã³ã¿ãŒãã§ãŒã¹ãšã㊠POSIX ã§èŠå®ããããã®ã ãã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®ããšã§ããOS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã§ãªããã®ïŒ= ã¢ããªã±ãŒã·ã§ã³ïŒã®å©çšã«é¢ããŠã¯ç¹ã«å¶éã¯æžããŠãããŸããã
ãæ¡åŒµæ©èœãå©çšãã POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ãã®å®çŸ©
ãæ¡åŒµæ©èœãå©çšãã POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ããšã¯ POSIX ã§èŠå®ããã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã䜿ããããã« OS ã®æ¡åŒµæ©èœãå©çšããã¢ããªã±ãŒã·ã§ã³ã®ããšã§ããOS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã§ãªããã®ïŒ= ã¢ããªã±ãŒã·ã§ã³ïŒã®å©çšã«é¢ããŠã¯ç¹ã«å¶éã¯æžããŠãããŸããã
OS ã®æ¡åŒµæ©èœã¯ä»¥äžã®ãã®ãæå³ããŠããŸãããOSãã®æ¡åŒµæ©èœãªã®ã§ã¢ããªã±ãŒã·ã§ã³ã®é åã¯å«ãŸããŠããªãããšã«æ³šæããŠãã ãããæ¡åŒµæ©èœã®å®çŸ©ã¯ 2.1.1 Requirements ã«æžãããŠããŸãã
- 远å ã®é¢æ°
- 远å ã®ããããã¡ã€ã«
- æšæºããããã¡ã€ã«ã®è¿œå ã®ã·ã³ãã«
- 远å ã®ãŠãŒãã£ãªãã£ïŒã³ãã³ãïŒ
- æšæºãŠãŒãã£ãªãã£ã®è¿œå ã®ãªãã·ã§ã³
- 远å ã®ç°å¢å€æ°
- 远å ã®ãã¡ã€ã«ã¿ã€ã
- æºæ ããŠããªããã¡ã€ã«ã·ã¹ãã ïŒå€§æåãšå°æåãåºå¥ããªããã¡ã€ã«ã·ã¹ãã ããããã¯ãŒã¯ãã¡ã€ã«ã·ã¹ãã çïŒ
- åçã«äœããããã¡ã€ã«ã·ã¹ãã (
/procç) - 远å ã®ç¹æ®ãã¡ã€ã« (
/dev/stdin,/dev/stdout,/dev/stderr)
ãããã®ãªã¹ãã®äžã«æžããŠãã but are not limited to ãšããèšèãæå³ããéããæ¡åŒµæ©èœã¯ããã ãã«éå®ãããŸãããã€ãŸããªãã§ããããŸãããã®å®çŸ©ããæ¡åŒµæ©èœã䜿ã£ããšããŠã POSIX æºæ ã®å®çŸ©ãæºãããšããããšã¯ã£ãããšç€ºãããŠããŸãã
POSIX ã®ææãšã¯äœã ã£ããïŒ
ãããã POSIX ã®ç®çãšã¯äœã ã£ãã§ããããïŒããã§ããç§»æ€æ§ãé«ãã¢ããªã±ãŒã·ã§ã³ã®éçºãæ¯æŽããã®ãç®çã§ãããã㊠POSIX ã®ææã«ãã£ãŠå€ãã®ã©ãã§ãåãã¢ããªã±ãŒã·ã§ã³ãèªçããŸããã
ããŠããããã®ã¢ããªã±ãŒã·ã§ã³ã䜿ã£ãã POSIX æºæ ã§ã¯ãªããš POSIX èªèº«ãèšã£ãŠããšãããããããªè©±ã ãšæããŸãããïŒ
ãPOSIX ã§èŠå®ãããŠãããã®ã ãã䜿ã£ãŠã¢ããªã±ãŒã·ã§ã³ãéçºããããšããééããªã®ã¯ãå·éã«èããã°ãããããšã ãšæããŸããPOSIX ã®ææã§çãŸããå€ãã®ã¢ããªã±ãŒã·ã§ã³ã POSIX ã䜿ããªãšèšã£ãŠãããšãããããªãã®ããã® POSIX ãªãã ïŒãšãªãã§ããããã€ãŸãããã¯è¬ãããŒè¬åž«ãåæã«äœã£ãåãããŒãšããããšã§ãã
è«ççã«èããŠã¿ãã
POSIX æºæ ãšããã®ããC èšèªãã·ã§ã«ã¹ã¯ãªããã䜿ããPOSIX API ã POSIX ã³ãã³ãã ãã䜿ãããšãã§ã¯ãªãããšã¯ãè«ççã«èããŠãåãçµè«ã«ãã©ãçãã¯ãã§ããäŸãã° POSIX ã§æšæºåãããŠããªã which ã³ãã³ãã®è©±ã§èããŠã¿ãŸãããã
-
whichã³ãã³ã㯠POSIX ã§æšæºåãããŠããŸããã -
whichã³ãã³ããšåçã®æ©èœã®my_whichã³ãã³ãã POSIX ã«æºæ ã㊠C èšèªã§èªåã§äœããŸãã - ãããäœã£ã
my_whichã³ãã³ã㯠POSIX ã§æšæºåãããŠããªãã³ãã³ããªã®ã§äœ¿ã£ãŠã¯ãããªãããšã«ãªããŸãã
POSIX ã³ãã³ã以å€ã䜿ã£ãŠã¯ãããªããšããçå±ã ãšãèªåã§äœã£ãã³ãã³ãã§ãã䜿ããªããšããããšã«ãªã£ãŠããŸããŸããæããã«ããããã§ãããïŒ
ããã§ãèªåã§äœã£ããã®ã§ããã° OKããšããäŸå€èŠåãæãã€ããããããŸãããããããéçºã¡ã³ããŒãäœã£ãã³ãã³ãã¯ã©ããªãã®ããšããçåãçãŸããã¯ãã§ãã
- èªåã§äœã£ããã®ã§ããã° OK
- éçºããŒã ã®ã¡ã³ããŒãäœã£ããã®ã¯ïŒ
- éçºããŒã 以å€ã®ã¡ã³ããŒãäœã£ããã®ã¯ïŒ
- 瀟å€ã®äººãäœã£ãå Žåã¯ïŒ
ããç§ãæ¬ç©ã® which ã³ãã³ããäœã£ããªãŒãã³ãœãŒã¹ããã°ã©ãã ã£ããšããŸãããããããªãèªåã§äœã£ããã®ã䜿ãã®ã¯ OK ã§ãããïŒã§ã¯ç§ã®éçºããŒã ã¡ã³ããŒã¯ç§ãéçºãã which ã³ãã³ãã䜿ã£ãŠããã®ã§ããããïŒ ãã¡ãªå Žåãããããèªåã§ which ã³ãã³ããäœããªããã°ãããªããšããããšã«ãªããŸããæããã«ç¡é§ãªäœæ¥ã§ããwhich ã³ãã³ãçšåºŠãªããŸã ç°¡åã§ãã JSON ãè§£æããããã«ãåèªã§ jq ã³ãã³ãçžåœã®ãã®äœããªããŠéŠ¬é¹¿ããŠããŸããç§ãéçºãã which ã³ãã³ãã¯ç§ã®ããŒã ã¡ã³ããŒä»¥å€ã䜿ãããšäŸ¿å©ã§ãããã瀟å€ã®äººã ã£ãŠäœ¿ããã°äŸ¿å©ã§ãããïŒãããã³ãã³ããåå©çšãããšããããšã§ãã
ãã¡ãããã®è©±ã¯ which ã³ãã³ãã ãã§ã¯ãªããã¹ãŠã®ã³ãã³ãã«åœãŠã¯ãŸããŸããäŸãã°åç»ãé³å£°ã倿ãã ffmpeg ãšããã³ãã³ãããããŸããããã®ãããªé£æåºŠãé«ãéçºã«æéãããããããªãã®ããããåèªã§äœããªããŠãŸãç¡çãªããã§çŸå®çãªè©±ãšããŠã€ã³ã¹ããŒã«ããŠäœ¿ããããããŸãããããã§ãªããã°ãèªåã§ ffmpeg ãäžããäœããªãããç§ã«ã¯åç»å€æã¯ã§ããŸããããšèšããããããŸãããä»ã®äººãã©ã€ãã©ãªãã³ãã³ãã䜿ã£ãŠæ¥œã
éçºããŠãããã®ããèªåã§ ffmpeg ãäœããªãããç¡çãšèšãã®ã§ããã°ãããžã§ã¯ãããå€ãããã§ãããã
ã©ã€ãã©ãªãã³ãã³ãã®éçºã¯ãšãŠã倧å€ã§æéãããããã®ã§ãããã£ãæ°åè¡çšåºŠã§åºæ¥ããããªãã®ã°ããã§ã¯ãããŸããã倧ããªãã®ã§ã¯æ°åè¡ãæ°äžè¡ä»¥äžã«ããªãéçºã«æéãããããã®ã§ãããããä»ã®äººãäœã£ããã®ã䜿ãã®ãæ®éã§ãããããŠèªåã§äœãã®ã§ã¯ãªãä»äººãäœã£ããã®ã䜿ããšããã ãã§ãã¢ããªã±ãŒã·ã§ã³ã POSIX æºæ ã§ãªããªããšãããã¯ããããªè©±ã§ãããœãããŠã§ã¢ã®äžèº«ãåããªã®ã«éçºãã人ãéããšããã ãã§ POSIX æºæ ãã©ãããšãããœãããŠã§ã¢ã®æ§è³ªãå€ãããªããŠããããŸããã
OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ããæšæºåãããŠããã°ç§»æ€æ§ã¯å®çŸã§ãã
POSIX ãæšæºåããã®ã¯ãOS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã ããã§ããå¥ã® OS ã§ç°ãªã£ãŠããæã¯ OS éšåãããªãã¯ããªã®ã§ãOS ã®ã€ã³ã¿ãŒãã§ãŒã¹ããåãã§ããã°ãã¢ããªã±ãŒã·ã§ã³ã¯ã©ãã§ãåãã¯ãã§ãã
POSIX ã®æšæºåã®å¯Ÿè±¡ã¯ãããŸã§ OS ã®ã€ã³ã¿ãŒãã§ãŒã¹éšåãªã®ã§ããã以å€ïŒäŸãã°ä»ã®èšèªãããŒã¿ããŒã¹çïŒã¯ POSIX ã®æšæºåã®å¯Ÿè±¡å€ãšãªã£ãŠããŸãããããã£ãŠãããã POSIX ã§æšæºåãããŠããªãã®ã¯åœããåã®ããšã§ããå¥ã«ç§»æ€æ§ãäœãã£ããããPOSIX ã«èªããããªãã£ãããšããããã話ã§ã¯æããŸãããããããç§»æ€æ§ãäœããšããåé¡ã解決ããã®ã POSIX ã®ä»äºã ã£ãã¯ãã§ãã
POSIX æºæ ãšã¯ãPOSIX ãå®ããèŠä»¶ã«åŸããããš
POSIX æºæ ãšã¯ POSIX ãå®ããèŠä»¶ã«åŸãããšã ãã§ããPOSIX ãå®ããŠããªãéšåã«é¢ããŠã¯äœ¿çšãçŠæ¢ããŠã¯ããªãã®ã§ããããã©ã䜿ãããèªç±ã§ãããèŠä»¶ã«åŸããã¯ãèŠä»¶ã«ãªããã®ã¯äœ¿ããªããšããæå³ã«ã¯ãªããŸããã
POSIX 㯠OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãæšæºåããŠããŸãããGUI ã®ãã㪠OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãšèšãããããªãã®ã§ã POSIX ã§æšæºåãããŠããªããã®ããããŸããããã¯æŽå²çãªäºæ ã§ POSIX ç宿ã«ããã¹ãŠã® OS ã§åãããã«åããã®ããªãã£ãããã§ããã ãããšãã£ãŠ POSIX ã¯ãããã䜿ããªãšã¯èšã£ãŠããŸããã
POSIX ãå®ããèŠä»¶ãšã¯ãå®è£ å®çŸ©ããšãæªèŠå®ãã«å¯Ÿå¿ããããš
ïŒOS å®è£ è åãã®èŠä»¶ã¯çç¥ãããšããŠïŒã¢ããªã±ãŒã·ã§ã³ãå€ãã®ç°å¢ã§åãããã«ããã«ã¯ãã¢ããªã±ãŒã·ã§ã³éçºè ã¯äžäœäœãããã°ããã§ããããïŒãã®ã¢ããªã±ãŒã·ã§ã³éçºè ãããããã°ãããªãããšããPOSIX ãå®ããèŠä»¶ãã§ããç¹ã«éèŠãªãã®ã以äžã«ç޹ä»ããŸãã
- å®è£ å®çŸ© (implementation-defined) ãŸãã¯æªèŠå® (unspecified) ã¯å®è£ ããšã«åäœãç°ãªãã®ã§ãå®éã®å®è£ ã®åäœã®ãã¹ãŠã«å¯Ÿå¿ããããš
- æªå®çŸ© (undefined) ãšãªã£ãŠãããã®ã¯äœ¿çšããŠã¯ãããŸãã
- 廿¢ (obsolescent) ãšããããã®ã¯äœ¿çšããŠã¯ãããŸãã
ç¹ã«éèŠãªã®ã 1 ã§ããPOSIX ã§ã¯å®è£ å®çŸ©ãæªèŠå®ãšãªã£ãŠããéšåããããŸããããã¯å®éã®å®è£ ïŒLinux ã macOSïŒãã£ãŠåäœãç°ãªã£ãŠãããã®ã§ããããã POSIX ã«å®éã®å®è£ ã®åäœã¯æžããŠãããŸããããã㯠POSIX ã ããåç §ããŠãã©ãã§ãåãã¢ããªã±ãŒã·ã§ã³ãéçºããããšã¯äžå¯èœã§ãããšããããšãæå³ããŸããã€ãŸã POSIX ãåç §ããŠãå®è£ å®çŸ©ãŸãã¯æªèŠå®ãšãªã£ãŠããéšåã確èªã ãå®éã®å®è£ ã®åäœã«å¯Ÿå¿ããªããã°ãããŸããã ãšããããšã POSIX ã¯ã¢ããªã±ãŒã·ã§ã³éçºè ããããªããã°ãããªãèŠä»¶ãšããŠå®ããŠããŸãã
æªèŠå®ã䜿çšçŠæ¢ãšãªã£ãŠãªãããšãéèŠã§ããäŸãã°ã·ã§ã«ã® local ã³ãã³ãïŒbash äŸåãbash 以å€ã§ã䜿ããŸããïŒãå®è¡ããçµæã¯æªèŠå®ãšãªã£ãŠããŸãïŒCommand Search and Execution åç
§ïŒãæªèŠå®ã¯æªå®çŸ©ã廿¢ã®ããã«äœ¿çšçŠæ¢ã«ã¯ãªã£ãŠããŸãããã€ãŸã local ã³ãã³ã㯠POSIX ã§äœ¿çšãèªãããŠããæ¡åŒµæ©èœã§ãããã ãããã䜿ã£ãå Žåã«åäœã«å¯Ÿå¿ããã°ããã ãã§ãã察å¿ãšããã®ã¯ local ã³ãã³ãããã¹ãŠã®ã·ã§ã«ã§ããŒã«ã«å€æ°ãå®çŸ©ããããã®æ©èœãšããŠäœ¿ããšããæå³ã§ã¯ãªãïŒãããã POSIX ã«ã¯ããŒã«ã«å€æ°ãå®çŸ©ããããã®ãã®ãšã¯å®çŸ©ãããŠããªãïŒäŸãã°ããã®ã·ã§ã«ã§ã¯å¯Ÿå¿ããŠããŸãããã®ãããªãšã©ãŒã¡ãã»ãŒãžãåºããŠçµäºããã ãã§ãååã§ãããã ãã¢ããªã±ãŒã·ã§ã³ã®ããã¥ã¡ã³ãã« local ã³ãã³ãã䜿ã£ãŠãããã察å¿ããŠããã·ã§ã«ã§ããåããªããšæèšããå¿
èŠã¯ãããŸããlocal ã³ãã³ãã䜿ãã·ã§ã«ã¹ã¯ãªãã㯠POSIX ã«æºæ ããŠãªãã®ã§ã¯ãªããæ¡åŒµæ©èœãå©çšãã POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ã ãªã®ã§ãã
ãå®è£ å®çŸ©ããšãæªå®çŸ©ããšãæªèŠå®ãã®éã
å®è£ å®çŸ© (implementatdion-defined)
å®è£ è ã仿§ã決ããªããã°ãããªããšãããŠãããã®ã§ããæªèŠå®ãšã®éãã¯å®è£ è ã«å®éã®åäœãææžåããããšã矩åã¥ããŠããæã§ããå®è£ è ã仿§ã決ããªããšãããªãã®ã¯ããã®æ©èœãã¢ããªã±ãŒã·ã§ã³éçºè ã䜿ããããã«ããããã§ããåŸã£ãŠå®è£ å®çŸ©ãšãªã£ãŠããæ©èœã¯ã¢ããªã±ãŒã·ã§ã³ãã䜿çšããŠæ§ããŸããã
æªå®çŸ© (undefined)
äžæ£ãªäœ¿ãæ¹ãããæã®çµæã説æããæã®çšèªã§ããããããééã£ãäœ¿ãæ¹ã§ããããã®ãããªäœ¿ãæ¹ãããŠã¯ãããªããããçµæãèŠå®ãããŠããªããŠãäžéœåã¯ãããŸãããæªå®çŸ©ãšãããŠããæ©èœã¯ã¢ããªã±ãŒã·ã§ã³ãã䜿çšããŠã¯ãããŸããã
æªèŠå® (unspecified)
æ£ããäœ¿ãæ¹ãããæã®çµæã説æããæã®çšèªã§ããäœ¿ãæ¹èªäœã¯æ£ããããæªèŠå®ãšãããŠããæ©èœã䜿ã£ãŠãè¯ãã®ã§ãããã®çµæã¯ POSIX ã§ã¯æ±ºããããŠããŸãããæ£ç¢ºã«ã¯å®éã®å®è£ ããã©ãã©ã§çµ±äžãããŠããªãã£ãã POSIX ã§èŠå®ããããšãåºæ¥ãªãã£ããšèšãã¹ããã®ã§ãã
å®è£
å®çŸ©ãšäŒŒãŠããŸããããã¯äž»ã«æ¡åŒµæ©èœã®å®è£
ãå¯èœã«ããæã«äœ¿ãããçšèªã§ãæ¡åŒµæ©èœãå®è£
ããªããªãã°å®éã®åäœãææžåããå¿
èŠããªããšããç¹ãç°ãªããŸããäŸãã°ã·ã§ã«ã®é
åã®æ§æïŒäŸ ary=(1 2 3)ïŒã¯ãé
åã«å¯Ÿå¿ããŠããªãã·ã§ã«ã§ã¯ãã®ä»æ§ãææžåããããšã¯äžå¯èœã§ãã察å¿ããŠãªãæªç¥ã®æ§æã«å¯ŸããŠã©ãããå®çŸ©ãã§ãããšããã®ã§ããããïŒãšãã話ã§ãã
POSIX æºæ ãšã¯ãã¹ãŠã®ç°å¢ã§åãããšã§ã¯ãªã
local ã³ãã³ãã䜿ã£ãã·ã§ã«ã¹ã¯ãªããã¯çŽç²ãª POSIX ã·ã§ã«ã§ã¯åäœããŸãããããããã㯠POSIX æºæ ã®è©±ãšã¯å¥ã®è©±ã§ãã
ãŸã倧ããªäºã€ã® POSIX æºæ ã®åºæºããããŸããã
- å³å¯ãª POSIX æºæ ã¢ããªã±ãŒã·ã§ã³
- æ¡åŒµæ©èœãå©çšãã POSIX æºæ ã¢ããªã±ãŒã·ã§ã³
1 ã«é¢ããŠã¯æ¡åŒµæ©èœã䜿ããªãã®ã§ããããã»ãŒãã¹ãŠã®ç°å¢ã§åãããšãç®æãããã®ã§ãïŒããã§ãæªç¥ã®ç°å¢ã«å¯Ÿå¿ããã®ã¯äžå¯èœã§ãïŒãããã 2 ã«é¢ããŠã¯æ¡åŒµæ©èœã䜿ã£ã POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ãæ¡åŒµæ©èœããªãç°å¢ã§åããªãã®ã¯èªæã§ãã
ããªãã¡ POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ã«ããã¹ãŠã® POSIX æºæ ã®ç°å¢ã§åããªããã°ãããªãããšããèŠä»¶ã¯æããŸãããPOSIX ã¯ã¢ããªã±ãŒã·ã§ã³ã®ç§»æ€æ§ãé«ãããããã®æšæºèŠæ Œã§ãããå®ç§ãªç§»æ€æ§ãå®çŸããªããã°ãããªããšããèŠä»¶ã¯æããŸããããå®ç§ãªç§»æ€æ§ãä¿èšŒããŠãããããã§ãæããŸãããç§»æ€æ§ãé«ãããã ãã§ãã
åäœã«åææ¡ä»¶ããã POSIX æºæ ã®ã¢ããªã±ãŒã·ã§ã³ããã£ãã£ãŠããã®ã§ããlocal ã³ãã³ãã䜿ã£ãã·ã§ã«ã¹ã¯ãªããã¯ãæ¡åŒµæ©èœã«å¯Ÿå¿ãã POSIX æºæ ã·ã§ã«ãåããç°å¢ãšããæ¡ä»¶ãæºããã°åããŸãã
POSIX æºæ ããŠããã¹ãŠã®ç°å¢ã§åãããã§ã¯ãªã
POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ãæºãããªããã°ãããªãèŠä»¶ã®äžã€ã«ãæªèŠå® (unspecified) ã«ãªã£ãŠããéšåã«å¯ŸããŠå®éã®åäœã«å¯Ÿå¿ããªããã°ãããªããšããèŠä»¶ããããŸãã
å
·äœçãªäŸã§ãããš echo -n ã® -n ã®æå³ã¯æªèŠå®ã§ããéèŠãªã®ã¯æªèŠå®ãšããããšã¯ -n ã«å¯ŸããŠã©ã®ãããªæå³ãããããŠããããšããããšã§ããã»ãšãã©ã®ã·ã§ã«ã§ã¯æ¹è¡ããªããšããããæå³ã -n ãšããæååã§ãã POSIX ã®å®çŸ©äžã¯ã©ã®ãããªå®è£
ãããŠãè¯ããšãããŠããŸããããã¯æ¡åŒµæ§ãæãããããã«ãããŠããããŠããŸãã
ãããªããš -n ãå®éã«ã©ãããæå³ã§ãããã¯ãå®éã®ã·ã§ã«ã OS ã調ã¹ãŠã¿ãªããã°ç¥ãããšã¯äžå¯èœãšããããšã§ãããã POSIX ã«æºæ ããŠäœã£ãã¢ããªã±ãŒã·ã§ã³ãä»ã®ç°å¢ã§ãã®ãŸãŸåãããšããŠããããã¯ããŸããŸåãããšããã ãã§ããéè¯ãäºææ§ãããå®è£
ã ã£ãã«éããŸãããããŸããŸåããäŸããã£ããšããŠããPOSIX æºæ ããŠéçºããã°ãã¹ãŠã®ç°å¢ã§åããã ããšãã仮説ã蚌æããããšã«ã¯ãªããŸããã
POSIX æºæ ããŠã¢ããªã±ãŒã·ã§ã³ãæžãããšããŠãããã¹ãŠã®ç°å¢ã§åãä¿èšŒã¯ãããŸãããããåãä¿èšŒãããããã«ã¯å®éã®ç°å¢ã§ãã¹ããããªããã°ãããªããšãããšã§ããã©ãã§ãåããœãããŠã§ã¢ã䞻匵ãããªãã°ããããŠãã¹ãã³ãŒãã䜿ã£ããã¹ãã®èªååãè¡ãããšã¯å¿ èŠã§ãã第äžè ããã¹ãã§ããªããã®ãæç€ºããŠããã¹ãŠã®ç°å¢ã§åããã ãšäž»åŒµããæã§ãä¿¡çšã§ããªãã§ãããïŒ
éã«ãPOSIX ã«æºæ ããŠããªãã¢ããªã±ãŒã·ã§ã³ããšã¯ãªããªã®ãïŒ
æ¡åŒµæ©èœã䜿ã£ãŠã POSIX æºæ ã ãšããã®ãªãããã¹ãŠã POSIX æºæ ãšãªããªããïŒãããªã®ããããããã®èª¬ã¯ééã£ãŠãããšèãã人ãžè§£èª¬ãããšããPOSIX ã«æºæ ããŠããªãã¢ããªã±ãŒã·ã§ã³ããšã¯ POSIX ãå®çŸ©ããèŠä»¶ã«åããŠããã¢ããªã±ãŒã·ã§ã³ã®ããšã§ãã
äŸãã° date ã³ãã³ãã¯çŸåšã®æ¥ä»ãæšæºåºåã«åºåããã³ãã³ãã§ãããWindows ã® date ã³ãã³ãã®ããã«æ°ããæ¥ä»ãèšå®ããã³ãã³ãïŒãªãã·ã§ã³ç¡ãã§å®è¡ããå ŽåïŒãšããŠå®è£
ãããããã㯠POSIX æºæ ããŠãªãããšã«ãªããŸããããããã㯠OS å®è£
è
åŽã®è©±ã§ãã
POSIX ã«æºæ ãã OS å®è£ äžã§ãPOSIX ã«æºæ ããŠããªãã¢ããªã±ãŒã·ã§ã³ã¯åºæ¬çã«åããŸãããã ããåäœããã¢ããªã±ãŒã·ã§ã³ã¯ POSIX æºæ ãšèšããã®ã¯ããæå³äºå®ã§ãããããããã§ã POSIX ã«æºæ ããŠããªã¢ããªã±ãŒã·ã§ã³ã¯ãããŸããäŸãã° POSIX ã®ã¢ããªã±ãŒã·ã§ã³ãæºããã¹ãèŠä»¶ãšããŠæªå®çŸ©ã廿¢ãšãã£ãæ©èœã¯äœ¿ã£ãŠã¯ãªããªããšãããŠããã®ã§ããããã䜿ãã¢ããªã±ãŒã·ã§ã³ã¯ POSIX æºæ ã§ã¯ãªããšèšããŸãã
ããäžã€ã® POSIX æºæ ã®ã¢ããªã±ãŒã·ã§ã³ã«èŠæ±ãããŠããéèŠãªèŠä»¶ã¯ãå®è£ äŸåãããæªèŠå®ãã®åäœã«å¯Ÿå¿ããããšã§ãããããã¯å®è£ ããšã«åäœããã©ãã©ã§ãããããã£ããã®ãäŸãã° Linux (GNU) ãªã©ç¹å®ã®å®è£ ã«ãã察å¿ããŠããªãå Žå㯠POSIX æºæ ã§ã¯ãªããšããããšã«ãªããŸããæªèŠå®ã®æ©èœã䜿ããšããããšã¯æ¡åŒµæ©èœã䜿ããšããããšã§ããæ¡åŒµæ©èœã䜿ãããšã¯ POSIX ã§çŠæ¢ãããŠããŸããããå®è£ äŸåã®æ©èœãæ¡åŒµæ©èœã䜿ã以äžããã®å®è£ ã®åäœã«å¯Ÿå¿ããªããã°ã©ãã§ãåããªããªã£ãŠããŸãïŒPOSIX æºæ ã§ã¯ãªãïŒãšããããšã§ãã
ãŸã GNU çã® df ã³ãã³ãã¯ä»¥äžã®ããã« ãããã¯æ° ã 1 KB åäœã§è¡šç€ºããŸããå®ã¯ãã®åäœã¯ POSIX ã«æºæ ããŠããŸãããPOSIX æºæ ã®åäœã¯ 512 B åäœã§ãã
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 15869788 0 15869788 0% /dev
tmpfs 3179864 3296 3176568 1% /run
:
POSIX ã«æºæ ããŠããªãåäœã®ã¿ã«å¯Ÿå¿ããŠããã¢ããªã±ãŒã·ã§ã³ã¯ POSIX æºæ ã§ã¯ãªããšèšããã§ãããã
ããã GNU çã® df ã¯ç°å¢å€æ° POSIXLY_CORRECT ãå®çŸ©ãããš POSIX æºæ ã®åäœã«å€æŽããããšãåºæ¥ãŸãããã®ããã«ããã©ã«ãç°å¢ã§ã¯ POSIX ã«æºæ ããŠããªããŠããèšå®ã§ POSIX æºæ ã®åäœã«ãªãã®ã§ããã°ïŒPOSIX æºæ ç°å¢ã§ã¯ïŒPOSIX ã®èŠä»¶ãæºãããšãããŸããã¢ããªã±ãŒã·ã§ã³åŽã 1 KB åäœãš 512 B åäœã®äž¡æ¹ã«å¯Ÿå¿ããŠããã° POSIX æºæ ãšèšããŸãã
èŠçŽãããšãPOSIX ã«æºæ ããŠãªãã¢ããªã±ãŒã·ã§ã³ããšããã®ã¯ POSIX ã®èŠå®ããŠããå 容ãšççŸããŠããã¢ããªã±ãŒã·ã§ã³ã®ããšã§ããPOSIX ã§èŠå®ãããŠãªããã®ïŒæ¡åŒµæ©èœïŒã«é¢ããŠã¯ã©ãã ã䜿ã£ãŠãæ§ããŸããããã£ããèšãã°ãã©ããªæ©èœã䜿ãããã©ãã§ãåãããã«ããã POSIX æºæ ã§ãã
POSIX 㯠OS éã®å®å šãªäºææ§ã®å®çŸãç®æãããã®ã§ã¯ãªã
POSIX ã«ã¯ãå®è£ å®çŸ©ãããæªèŠå®ãã®éšåãå€ãååšããŸããããã¯ãããŸã§éçºãããã¢ããªã±ãŒã·ã§ã³ãä¿®æ£ããããšãªãåããããïŒåŸæ¹äºææ§ãå®çŸããããïŒã«å¿ èŠãªããšã§ãã
å ã Unix 㯠AT&T ãéçºãããªãªãžãã«ã® Unix ãããããã® OS ãã³ããŒãæ¹è¯ãããã®ã§ãããããã€ã³ã¿ãŒãã§ãŒã¹ã¯éåžžã«äŒŒãŠããŸããïŒäžã®å·Šã®å³ïŒããããåèªãã©ãã©ã«æ¹è¯ãå ããŠãããããæããã€ã«ã€ããŠã€ã³ã¿ãã§ãŒã¹ã«çްããéããçãŸããŠããŸããã
ç°ãªã OS éã§ã®ã¢ããªã±ãŒã·ã§ã³ã®ç§»æ€æ§ã«åé¡ãã§ãããã«ãªã£ããããOS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãæšæºåããå¿ èŠæ§ãçãŸããŸããããããå®çŸããã®ã POSIX ã§ããæ³šæ Unix ã®ä»æ§ãå ã« POSIX ãäœãããŠããŸããPOSIX ã®ä»æ§ãå ã« Unix ãäœãããããã§ã¯ãªãã®ã§åéãããªãããã«ããŠãã ããã
ããã POSIX ã«ãã£ãŠ OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãå®å šã«åããã®ãžãšçµ±äžããŠããŸããšããããŸã§éçºãããŠããã¢ããªã±ãŒã·ã§ã³ãåããªããªã£ãŠããŸããŸãïŒäžã®å³ã®å³ïŒãã¢ããªã±ãŒã·ã§ã³ã®ç§»æ€æ§ãé«ãããã®ãç®çã®ããã«ããããŸã§ã®ã¢ããªã±ãŒã·ã§ã³ãåããªããªã£ãŠããŸãããã§ã¯æ¬æ«è»¢åã§ãã
ããã§ POSIX ãåã£ãã¢ãããŒãã§ã¯ OS ã«ãã£ãŠåäœãç°ãªãéšåããå®è£ å®çŸ©ãããæªèŠå®ããšããåœ¢ã§æšæºåããããšã§ãã©ã®ããã«å®è£ ããŠã POSIX æºæ OS ã®æ¡ä»¶ãæºãããšããŸããïŒäžã®å·Šã®å³ïŒã
ããã«ããããããŸã§ã® POSIX ã«æºæ ããŠããªãã¢ããªã±ãŒã·ã§ã³ã¯æ°ãã POSIX ã«æºæ ããåŸç¶ OS ã§ãã®ãŸãŸåãããšã«ãªããåŸæ¹äºææ§ãå®çŸãããŸãããã㊠POSIX ã«æºæ ããã¢ããªã±ãŒã·ã§ã³ã¯ãOS ã«ãã£ãŠåäœãç°ãªãéšåã«å¯Ÿå¿ãããšããèŠä»¶ãæºããããšã§ POSIX ã«æºæ ãã OS ã§ã®ç§»æ€æ§ãå®çŸããããšãåºæ¥ãŸãïŒäžã®å³ã®å³ïŒã
ãPOSIX æºæ ããšããã®ã¯OS å®è£ åŽã ãã§ã¯ãªãã¢ããªã±ãŒã·ã§ã³éçºåŽãèŠä»¶ãæºãããŠåããŠæå³ããããã®ã§ãã
POSIX 㯠Java ã®ãWrite once run anywhereããšã¯æ§è³ªãå šãç°ãªã
POSIX 㯠ã¢ããªã±ãŒã·ã§ã³ã®ç§»æ€æ§ãé«ããããã®æšæºèŠæ Œã§ãããOS éã§ã®å®å šãªäºææ§ãå®çŸãããã®ã§ã¯æããŸããã
Java ã«ã¯ãWrite once run anywhereããäžåºŠããã°ã©ã ãæžãã°ãã©ãã§ãå®è¡ã§ãããšããã¹ããŒã¬ã³ãæããŸããããããå®å šã«å®çŸãããŠããªãã®ã¯ããç¥ãããäºå®ã§ãããããã§ãåäžã®ãœãŒã¹ã³ãŒãã§ã©ãã§ãå®è¡ã§ããããšãç®æãããã®ã§ããOS éã®äºææ§åé¡ã Java ã解決ããŠãããããããã°ã©ã㯠OS ã®éããæèããå¿ èŠããããŸããã
ããã POSIX ã¯ããã§ã¯ãããŸãããå ã OS éã«ã¯éãããããšããåæãªã®ã§ OS éã®äºææ§åé¡ãæèããã«ã©ãã§ãåããã®ã§ã¯ãªããããã°ã©ãã OS éã§ã®äºææ§åé¡ãæèããŠèªåã§è§£æ±ºããããšã§ãã¯ãããŠã©ãã§ãåãããã«ãªãã®ã§ãã
ãŸããã©ãã§ãåããšèšã£ãŠãæªç¥ã® OS ã§ãå®è£ å®çŸ©ãããæªèŠå®ããã©ã®ããã«å®è£ ãããŠããããç¥ãããšã¯åºæ¥ãªããããPOSIX ã«æºæ ããŠæžããæã§æªç¥ã® OS ã§åããã©ããã¯ããããŸãããå®éã®ç°å¢ã§åäœãã¹ãããŠã¿ãªããã°ãããããåäœãã¹ãããæ¹æ³ããªããã°åãããšã蚌æããããšã¯åºæ¥ãŸããã
POSIX ã«ãã£ãŠå®çŸãããã¢ããªã±ãŒã·ã§ã³ã®ç§»æ€æ§ãšããã®ã¯ãOS ã POSIX ã«æºæ ããŠãããããäœãèããã«ã©ãã§ãåãã®ã§ã¯ãªããOS ãš ã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ã POSIX ã«æºæ ãããããšã§å®çŸãããã®ã§ããæã ã¢ããªã±ãŒã·ã§ã³éçºè ã«ãç§»æ€æ§åé¡ã«å¯Ÿå¿ãããšããèŠä»¶ã課ããããŠãããšããããšãå¿ããŠã¯ãããŸãããPOSIX ã«æºæ ããŠãœãããŠã§ã¢ãéçºãããšããã®ã¯é¢åãããäœæ¥ãªã®ã§ãã
ã©ã€ãã©ãªã»ã³ãã³ãã䜿ãããšã§ç§»æ€æ§åé¡ãšæ©èœæ§åé¡ã解決ã§ãã
POSIX ã§èŠå®ããã API ãã³ãã³ããçŽæ¥äœ¿ã£ãŠã¢ããªã±ãŒã·ã§ã³ãéçºãããšããããšã¯ãèªåã§ç§»æ€æ§åé¡ã解決ããé¢åãããäœæ¥ã§ããå®éã®ç°å¢ã§ãã¹ãããããšãèãããšããã¯ãšãŠã倧å€ã ãšããã®ã¯èšããŸã§ããªãã§ãããã
C èšèªã§éçºããããœãããŠã§ã¢ã®å Žå OS ã®ã·ã¹ãã ã³ãŒã«ãçŽæ¥åŒã³åºãããšã¯ããŸããªã æšæº C ã©ã€ãã©ãªãŸãã¯ãµãŒãããŒãã£ã®ã©ã€ãã©ãªçµç±ã§åŒã³åºãã®ãäžè¬çã§ãããã·ã§ã«ã¹ã¯ãªããã®å Žå OS ã«æšæºã§ã€ã³ã¹ããŒã«ãããŠããã³ãã³ãã䜿ãããšãå€ãã§ããPOSIX ã OS ã®äºææ§ãå®å šã«è§£æ±ºãããã®ã§ã¯ãªãä»¥äž OS ã®ã³ãã³ããçŽæ¥äœ¿ãã·ã§ã«ã¹ã¯ãªããã OS äŸåãæ¿ããã®ã¯åœç¶ã®çµæã§ãããšèšããŸãã
ããã§äžè¬ã«çšããããŠããææ®µããç§»æ€æ§åé¡ã«å¯Ÿå¿ãããä»ã®èšèªã䜿ãããã©ã€ãã©ãªã䜿ãããã³ãã³ãã䜿ãããšèšã£ãææ®µã§ããJava ã®èãæ¹ããããšåãã§ãã
ãããã®ææ®µã¯ POSIX ã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ãšããŠã®å¿ èŠæå°éããå®çŸ©ããªãã®ãšã¯ç°ãªããOS åºæã®æ¡åŒµæ©èœãå«ã㊠POSIX ã®ç¯å²ãããåºãç¯å²ã察象ãšããŠããŸãã察å¿ç¯å²ã倧ããç°ããšããç¹ã§ POSIX ã§ã¯è§£æ±ºäžå¯èœãªåé¡ãæ±ã£ãŠãã POSIX ã®ç®çãšã¯å šãéããã®ã§ããPOSIX ã§èŠå®ããããã®ã ãã䜿ããšããèãã¯ãä»ã®èšèªã䜿ãããã©ã€ãã©ãªã䜿ãããã³ãã³ãã䜿ããã®ä»£æ¿ã«ã¯ãªããŸãããäžèšã§ãããªãã° POSIX ã ãã§é 匵ãã®ã¯å€§å€ããããšããããšã§ãã
ãã¡ãããä»äººãäœã£ããã®ã䜿ã代ããã«èªåã§èšèªãäœã£ããã©ã€ãã©ãªãäœã£ããã³ãã³ããäœã£ããããŠãæ§ããŸãããããã§ã«ååšããŠãããœãããŠã§ã¢ãšåãããšããããªããœãããŠã§ã¢ãäœã£ãŠãè»èŒªã®åçºæã§ãããªããä»äººãäœãããèªåãäœãããæ¬è³ªçã«ã¯äœãå€ãããŸãããç¬èªæè¡çå矀ã«ãªããªãããã«æ°ãã€ããŠãã ããã䜿ãåŽã®ç«å Žã«ãªãã°åãããšããããœãããŠã§ã¢ãè€æ°ããã°ããå®çžŸãå€ãæ¹ãéžã¶ã®ã¯åœããåã§ãããã®ãããªãã®ãèªäœããæã§èªå以å€èª°ã䜿ããŸããã
POSIXã³ãã³ãã¯ã©ã®ç°å¢ã§ãã€ã³ã¹ããŒã«ãããŠããã³ãã³ãã§ã¯ãªã
ããããå€ãã®äººãæ¬åœã«æ¬²ãããã®ã¯ãPOSIX æºæ ãã§ã¯ãªããOS ã®åºæ¬æ§æïŒæå°æ§æãŸãã¯æšæºæ§æïŒã§åãããšãã§ã¯ãªãã§ããããïŒãŠãŒã¶ãŒã« OS ã®ã»ããã¢ããäœæ¥ãããå¿ èŠããªãããœãããŠã§ã¢ãåããããšãåºæ¥ãã®ã§ããã°ããã¯äŸ¿å©ã§ãããã
ãããããã¯ãœãããŠã§ã¢ã䜿ãäžã§ã®å©äŸ¿æ§ã®è©±ã§ãã£ãŠ POSIX æºæ ã®è©±ãšã¯å šãé¢ä¿ãããŸããããŸã OS ã®æå°æ§æã§äœ¿ããã³ãã³ã㯠POSIX ã§èŠå®ãããã³ãã³ãã®ãããé¥ãã«å°ãªãã§ããPOSIXæºæ ã® OS ã§ãã£ãŠãæå°æ§æã®ã€ã³ã¹ããŒã«ã§ POSIX ã§èŠå®ãããŠããã³ãã³ãããã¹ãŠäœ¿ããããã§ã¯æããŸãããPOSIX ã«ã¯ãPOSIX ã³ãã³ãã¯å¿ ãã€ã³ã¹ããŒã«ãããŠããªããã°ãªããªãããšããèŠå®ã¯ãããŸããã
以äžã®ã³ãã³ã㯠POSIX ã§èŠå®ãããŠããæ¯èŒçãã䜿ãããã³ãã³ãã§ãããOS ã®æå°æ§æã§ã¯äœ¿ããªãå Žåãããã³ãã³ãã§ãã
at bc c99 cal compress crontab csplit file getconf iconv join
make man more patch pax ps strings tput uncompress vi
POSIX ã§èŠå®ãããŠããã³ãã³ãã§ãã£ãŠãæå°æ§æã«å«ãŸãããšã¯éããªãã®ã§ãPOSIX ã³ãã³ãã ãã䜿ã£ãã·ã§ã«ã¹ã¯ãªããã§ãã£ãŠãã€ã³ã¹ããŒã«çŽåŸã®ç°å¢ããåããšã¯éããŸãããC èšèªã§éçºããããœãããŠã§ã¢ã§ããã°ããããåããšã¯æããŸãããäŸå€ããªããšã¯èšãåããªããšæããŸãã
ãŸã OS ã®åºæ¬æ§æã§åããªããã°ãããªããœãããŠã§ã¢ãå¿ èŠã«ãªãã®ã¯ãç°å¢ã®åæèšå®ã¹ã¯ãªãããããã±ãŒãžãèªç±ã«ã€ã³ã¹ããŒã«ã§ããªãã·ã¹ãã ã§åããã¹ã¯ãªããããããªãã®ã§ããã³ãã³ããã€ã³ã¹ããŒã«ãããŠããªããªãã€ã³ã¹ããŒã«ããã°ããã ãã§ãããã®ããã«ããã±ãŒãžç®¡çã·ã¹ãã ãããããã§ã€ã³ã¹ããŒã«äœæ¥ã®æéãªã©ç¡ãã«çãããã®ã§ãããããŠã©ã¡ãã«ããã³ãã³ããã€ã³ã¹ããŒã«ããã®ã§ããã° POSIX ã³ãã³ãã ãã«éå®ããå¿ èŠã¯ãããŸãããå€ãã®ç°å¢ã«ç§»æ€æžã¿ã®ãPOSIX æºæ ãã¢ããªã±ãŒã·ã§ã³ã¯ãããããããŸãããããã£ã POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ïŒPOSIX æºæ ã³ãã³ãïŒã䜿ãã°ãããããèªåã§äœãå¿ èŠããªããªããŸããçŸä»£ã®ã·ã¹ãã éçºã¯ãããã£ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ã䜿ãããšãéèŠãªéµã§ãããªãŒãã³ãœãŒã¹ã®æ®åã«ããæã®ããã«é«é¡ãªãœãããŠã§ã¢ãè³Œå ¥ããå¿ èŠããªããªã£ãŠãããä»ãŸã§äœ¿ã£ãŠãããœãããŠã§ã¢ãæ¥ã«äœ¿ããªããªãããšããªãã®ã§ãä»ã®äººãéçºããã¢ããªã±ãŒã·ã§ã³ãå©çšããéã®æžå¿µç¹ã¯ããªãå°ãããªã£ãŠããŸãã
ç¹ã«ãŠã§ããµãŒããŒã curl ã wget ã³ãã³ããã€ã³ã¹ããŒã«ããªããã°äœ¿ããªãã·ã§ã«ã¹ã¯ãªããã®å Žåãã©ã¡ãã«ãããOS ã®åºæ¬æ§æã ãã§åãããæºããããšã¯åºæ¥ãŸãããäœãããã®ããã±ãŒãžãã€ã³ã¹ããŒã«ããªããã°åããªãã·ã§ã«ã¹ã¯ãªããã§ããã° OS ã®æå°æ§æã§åãããã«ããããšã«æå³ã¯ãããŸãããOS ã®åºæ¬æ§æã§åãããšãæ°ã«ããã®ã¯ãéãããç¹å®ã®ãœãããŠã§ã¢ã«ã¯æå³ããããšæããŸãããPOSIX ã³ãã³ãã§ãã£ãŠã OS ã®æå°æ§æã§åããšã¯éããªã以äžãPOSIX ãšã¯ãŸã£ããé¢ä¿ãªã話ãªã®ã§ãã
POSIX ã®å®çŸ©ãèªåã®ç®ã§ç¢ºãããŠã¿ããïŒ
ããŠããã®èšäºã§è§£èª¬ããããšã POSIX ã«ã©ãã«æžããŠããã®ããèŠãŠãããšããŸããããããããèªãããšã§ãã®èšäºã®å 容ãç§ã®ç¬èªè§£éã§ã¯ãªãããšããããã¯ãã§ãããã®èšäºã®å 容ã«çåãæã£ãå Žåã¯ããããåç §ããŠãã ããã
ãã®èšäºã®å 容ã¯äž»ã«ä»¥äžã® 2 ã€ã®ããŒãžåã³ããããã® RationaleïŒçè«çæ ¹æ ïŒã§å®çŸ©ãããŠããŸãã
åºæ¬
POSIX æºæ ãš XSI æºæ ã®éã
POSIX æºæ ãš UNIX èªå®ã¯å³å¯ã«ã¯ç°ãªã£ãŠãã XSI ãšã¯ UNIX èªèšŒã®ããã®ãªãã·ã§ã³ã®è¿œå 仿§ã§ãã
UNIX èªå®ã®èŠä»¶ãšã㊠POSIX æºæ ã§ããå¿ èŠããããããUNIX èªå®ãåããŠããå Žå㯠POSIX æºæ ãšèšããŸãããPOSIX æºæ ã ãããšãã£ãŠ UNIX ãšããŠã®èŠä»¶ãæºãããŠããããã§ã¯æããŸãããPOSIX + XSIïŒ+ αïŒãæºãããŠåã㊠UNIX ã®èªå®ãåŸãããèŠä»¶ãæºãããŸãã
-
POSIX⢠Certification RegisterïŒPOSIX èªå®ïŒ
- èŠä»¶ã¯ POSIX æºæ ã®ã¿
-
UNIX® Certified ProductsïŒUNIX èªå®ïŒ
- èŠä»¶ã¯ POSIX + XSI + α
POSIX ãš XSI ã®éãã®äžã€ã« echo ã³ãã³ãããããŸããLinux ãªã©ã® echo 㯠-n ãªãã·ã§ã³ã¯ãäžè¬çã«ãæ¹è¡ãããªãããšããæå³ã®ãªãã·ã§ã³ã§ãã POSIX ã§ã¯ -n ã®åäœã¯ãæªèŠå® (unspecified)ãã§ããããæ¹è¡ããŠãæ¹è¡ããªããŠããã以å€ã®åäœã§ã POSIX æºæ ã§ããäžæ¹ XSI ã®ä»æ§ã§ã¯ -n ãšããæååãšããŠæ±ããšèŠå®ãããŠãããã UNIX ã®èªèšŒãååŸããŠãã macOS ã® /bin/sh ã§ã¯ XSI ã®èŠæ±éã echo -n 㯠-n ãšããæååãåºåããŸãã
# Linux ç
# å€ãã®ã·ã§ã«ã§ã¯æ¹è¡ããªããšããæå³ã ã
# æ£ç¢ºãªå®çŸ©ã¯æªèŠå®ãªã®ã§ã©ã®ãããªåäœã§ã POSIX æºæ
$ echo -n "12" && echo -n "34"
1234
# macOS ã® /bin/sh
# UNIX èªèšŒã®ããã« XSI ã«æºæ ããŠããããã®ãŸãŸæååãšããŠåºå
$ echo -n "12" && echo -n "34"
-n 12
-n 34
çšèªã®å®çŸ©
çšèªã¯ 1.5 Terminology ã§å®çŸ©ãããŠããŸãã
- å®è£ å®çŸ© implementatdion-defined
- æªå®çŸ© undefined
- æªèŠå® unspecified
- ã¬ã¬ã·ãŒ legacy
can, may, shall, should ãšèšã£ã仿§ã§ããèŠãããçšèªã®å®çŸ©ãããã§è¡ãããŠããŸãã
OS ãã³ããŒåãã® POSIX æºæ ã®èŠä»¶
2.1 Implementation Conformance
ãã㯠OS ãå®è£ ããåŽã«ãšã£ãŠã®èŠä»¶ã§ãã
Rationale ã«ã¯ãå³å¯ã« æºæ ãã OSã®å®è£ ïŒstrictly conforming implementationïŒããšããå®çŸ©ã¯ãªããšæžãããŠããŸãããã㯠POSIX ã«èŠå®ããããã®ã ããå®è£ ãã OS ã«ã¯ã·ã¹ãã ç®¡çæ©èœããªããã OS ãšããŠäœ¿ãç©ã«ãªããªãããã§ããPOSIX ã«æºæ ããå šãŠã® OS ã¯ãæ¡åŒµæ©èœããå®è£ ããŠããŸãã
èŠä»¶
OS ã®å®è£ è ãæºãããªããã°ãããªãèŠä»¶ãæžãããŠããŸãã
Non-standard extensions, when used, may change the behavior of utilities, functions, or facilities defined by POSIX.1-2017. The conformance document shall define an environment in which an application can be run with the behavior specified by POSIX.1-2017. In no case shall such an environment require modification of a Strictly Conforming POSIX Application.
å°ãè§£éãé£ããã§ãããç§ã®çè§£ã§ã¯ OS ãå®è£
ããéã«POSIX ã«æºæ ããŠããªãäºæç°å¢ãå®è£
ããŠãããã POSIX ã«æºæ ããŠãããšäž»åŒµããã®ã§ããã°ãPOSIX ã«å®å
šã«æºæ ããç°å¢ãçšæããå³å¯ã«æºæ ãã POSIX ã¢ããªã±ãŒã·ã§ã³ãããã®ãŸãŸåãããã«ãããšããããšãèšã£ãŠããã®ã ãšæããŸããããã¯ç¹ã«åçš UNIX ã§éèŠãªè©±ã ãšæããŸããäŸãã°æŽå²ç㪠UnixïŒSystem V ç³»ïŒã® tr ã³ãã³ãã¯æåã®ç¯å²ãæå®ããå Žå [0-9] ã®ããã«æ¬åŒ§ãå¿
èŠãªã®ã§ãã POSIX ã«æºæ ã§ã¯ 0-9 ãæ£ããæå®æ¹æ³ã§ããåçš UNIX ã§ã¯äºææ§ç¶æã®ããã« System V ç³»ã®åäœãããã©ã«ããšããŠããããšãå€ãããã§ãããããã ãš POSIX ã«æºæ ããŠããªãããšã«ãªã£ãŠããŸããŸãããããèšå®ãè¡ããªã©ã®æ¹æ³ã§ POSIX æºæ ã®ç°å¢ãå©çšå¯èœã§ããã° POSIX æºæ ã® OS ãšèªãããšãã話ãããŠããã®ã ãšç§ã¯è§£éããŠããŸããå®é Solaris ã§ã¯ããã©ã«ãã§ã¯ POSIX ã«æºæ ããŠããªãäºæç°å¢ã§ãããç°å¢å€æ° PATH ãé©åã«èšå®ããããšã§ POSIX æºæ ã®ç°å¢ã«å€æŽããããšãã§ããŸãã
ããã¥ã¡ã³ã
The conformance document may specify the behavior of the implementation for those features where POSIX.1-2017 states that implementations may vary or where features are identified as undefined or unspecified.
POSIX ã«ã¯ä»æ§ãæªå®çŸ©ãŸãã¯æªèŠå®ãšãªã£ãŠããé ç®ããããŸããããã®é ç®ã«é¢ããŠã¯ OS ã®å®è£ è ããã®åäœãæå®ããŠãè¯ããšããããšã§ããã€ãŸã POSIX ã§ã¯åäœã決ãŸã£ãŠããªããŠããå®éã®å®è£ ã§ã¯æ±ºãŸã£ãŠããããšããããšããããšã§ãã
POSIX æºæ ã® OS
POSIX æºæ ã® OS ã®ããã®çްããèŠä»¶ãæžãããŠããŸãã
XSI æºæ ã® OS
æºæ ã®åºæºã POSIX æºæ ãã XSI æºæ ã«å€ãã£ãã ãã§ãã
ã¢ããªã±ãŒã·ã§ã³éçºè åãã® POSIX æºæ ã®èŠä»¶
ã¢ããªã±ãŒã·ã§ã³éçºè åãã® POSIX æºæ ã®èŠä»¶ã§ãã
å³å¯ãª POSIX æºæ ã®ã¢ããªã±ãŒã·ã§ã³
2.2.1 Strictly Conforming POSIX Application
ãã®èšäºã§è§£èª¬ãããå³å¯ãª POSIX æºæ ã®ã¢ããªã±ãŒã·ã§ã³ãã®èŠä»¶ã§ãã
POSIX æºæ ã®ã¢ããªã±ãŒã·ã§ã³
2.2.2 Conforming POSIX Application
ããã«ä»¥äžã®äºã€ã®ã«ããŽãªããããŸãããå®ãèšããšãã®å®çŸ©ã®æå³ã¯ããããã£ãŠããŸãããéèŠãªããšãªã®ãããããŸããããæ¬èšäºã§è§£èª¬ãããããšãšã¯çŽæ¥é¢ä¿ãªããšæãããã®ã§æ·±è¿œãã¯ããŠããŸããã
- ISO/IEC Conforming POSIX Application
- <National Body> Conforming POSIX Application
æ¡åŒµæ©èœãå©çšãã POSIX æºæ ã®ã¢ããªã±ãŒã·ã§ã³
2.2.3 Conforming POSIX Application Using Extensions
ãã®èšäºã§è§£èª¬ãããæ¡åŒµæ©èœãå©çšãã POSIX æºæ ã®ã¢ããªã±ãŒã·ã§ã³ãã®èŠä»¶ã§ãã
Such an application shall fully document its requirements for these extended facilities, in addition to the documentation required of a Conforming POSIX Application.
æ¡åŒµæ©èœãå©çšããã¢ããªã±ãŒã·ã§ã³ã¯ãæ¡åŒµæ©èœã«å¯ŸããèŠä»¶ãææžåããªããã°ãããªããšæžãããŠããŸãã
å³å¯ãª XSI æºæ ã®ã¢ããªã±ãŒã·ã§ã³
2.2.4 Strictly Conforming XSI Application
èŠä»¶ã®åºæºã POSIX æºæ ãã XSI æºæ ã«å€ãã£ãã ãã§ãã
XSI æºæ ã®ã¢ããªã±ãŒã·ã§ã³
2.2.5 Conforming XSI Application Using Extensions
èŠä»¶ã®åºæºã POSIX æºæ ãã XSI æºæ ã«å€ãã£ãã ãã§ãã
ãŸãšã
ãã®èšäºã§ã¯ä»¥äžã®ããšãæããã«ããŸããã
- ãå³å¯ãª POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ã㯠OS ã®æ¡åŒµæ©èœã¯äœ¿ããªããã¢ããªã±ãŒã·ã§ã³ã«åé¡ããããã®ã¯èªç±ã«äœ¿ãã
- ãæ¡åŒµæ©èœãå©çšãã POSIX æºæ ã¢ããªã±ãŒã·ã§ã³ãã¯äžèšã«å ã㊠OS ã®æ¡åŒµæ©èœã䜿ã£ãŠã POSIX æºæ ã§ãã
- POSIX ã§èŠå®ãããŠããªã OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ããæ¡åŒµæ©èœãã§ãã
- C èšèªãšã·ã§ã«ã¹ã¯ãªãã以å€ã®èšèªã䜿ã£ãŠããå éšã§ POSIX API ããåŒã³åºããŠããªãã®ã§ããã° POSIX æºæ ã§ãã
- OS ã®æå°æ§æãåºæ¬æ§æã§åããããšãš POSIX ã¯é¢ä¿ãªã
POSIX ã§èŠå®ãããŠãããã®ã¯ OS ã®ã€ã³ã¿ãŒãã§ãŒã¹ã ãã§ããããœãããŠã§ã¢éçºã«ãããŠããå ãã®ç¯å²ãã察象ãšãªã£ãŠããŸããããã POSIX ã§èŠå®ãããŠãããã®ãã䜿ã£ãŠã¯ãããªãã®ã§ããã°ãå€ãã®ãœãããŠã§ã¢ã¯ POSIX ã«æºæ ã§ããªãããšã«ãªã£ãŠããŸããŸããããã¯ç§»æ€æ§ãé«ãã¢ããªã±ãŒã·ã§ã³ãäœããããã«ããã¯ãã® POSIX ã®æ¹éãšççŸããŠããŸãã
å€ãã®èšèªãå€ãã®ã©ã€ãã©ãªãå€ãã®ã³ãã³ããå€ãã® POSIX æºæ OS ã§åããŠããŸããå®éã«ã©ãã§ãåããŠãããœãããŠã§ã¢ã§ããã°ããã㯠POSIX ã«æºæ ããŠãããšèšã£ãŠééããªãã§ããããPOSIX æºæ ãšã¯ãPOSIX ã§èŠå®ãããŠãããã®ã ãã䜿ããããšã§ã¯ãããŸããã










