KolibriOSãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éèŠãªéšåïŒã«ãŒãã«ãšã»ãšãã©ã®ãã©ã€ããŒãšããã°ã©ã ïŒã¯ã¢ã»ã³ããªèšèªã§èšè¿°ãããŠããŸãã ãã ããé«æ°Žæºèšèªã®ããã°ã©ã ãå©çšã§ããŸãã ä»æ¥ã¯ãã®ãã¡ã®äžã€ã«ã€ããŠã話ããŸãã
Shellã³ãã³ãã©ã€ã³ããã°ã©ã ãäœæããåã«ãHummingbirdsçšã®ããã°ã©ã ãäœæããçµéšããããŸããã åºæ¬çã«ããããã¯ã²ãŒã
ã§ãã-Piton ã
Donkey ãZX Spectrumãšãã¥ã¬ãŒã¿ãŒã®ããŒããç§ã¯
e80ãšåœåã
ãŸãã ãã³ã³ãœãŒã«ã¿ã°ã®ããŒããš
Elizaã®ä»®æ³å¯Ÿè©±è
ã®ããŒãã§ãã ã§ããéã楜ãã¿ãŸããã

ããã¡ãã«å ããŠããã£ãšåœ¹ã«ç«ã€ãã®ãæžãè©Šã¿ããããŸããã ãã®ãããããšãã°ã
cObjãŠãŒãã£ãªãã£ïŒã.objããåç
§ïŒã䜿çšãããšããã€ãããã¯ã©ã€ãã©ãªã«ãã£ãŠãšã¯ã¹ããŒãããããªã¹ãã衚瀺ã§ããŸãã ã°ããŒãã«å€æ°EXPORTSãŸãã¯_EXPORTSé¢æ°ãå«ãCOFFãã¡ã€ã«ã å®éãããã¯æãåãæšãŠãããDependency Walkerã§ãã cObjããã°ã©ã ã¯ã¢ã»ã³ãã©ãŒã§äœæãããŠãããkpackã³ã³ãã¬ããµãŒã§å§çž®ãããå®è¡å¯èœãã¡ã€ã«ã®ãµã€ãºã¯256ãã€ãã§ãã ãããã£ãŠãç§ã«ãšã£ãŠã¯ãã®ããã°ã©ã ã¯Hummingbird OSã®æŠå¿µã«å®å
šã«é©åããŠããããã«æããŸãã

ãªãç§ã¯åŸã§è°è«ããééã£ãããã°ã©ã ã«æ®µèœå
šäœãæ§ããã®ã§ããïŒ 2ã€ã®çç±ããããŸãã æåïŒcObj-ã³ã³ãœãŒã«ïŒconsole.objïŒãæäœããããã®ã©ã€ãã©ãªã調æ»ããããã®çŽ æŽãããããŒã«ã§ããããšãå€æããŸããã KolibriOSã®å€ãã®ãã®ãšåæ§ã«ãã©ã€ãã©ãªã¯ååã«ææžåãããŠããããããã°ãããè¿œå ããŒã«ã§ãã 2çªç®ã®çç±ã¯ãç§ã¯æ ãè
ã§ãããã¢ã»ã³ããªèšèªã¯ç¹å®ã®çµæãéæããã®ã§ã¯ãªããã³ã³ãã¥ãŒã¿ãŒã²ãŒã ã«æéãè²»ããã®ãšåãããã楜ããããšã§ãã äž»èŠãªäœæ¥å Žæã®ãããžã§ã¯ãã«é¢é£ããã³ãŒãã®äœã¬ãã«ã®æé©åã¯èæ
®ãããŸããã ãã¡ãããcObjãšElizaã®ããŒããé€ããèšäºã«ãªã¹ããããŠãããã¹ãŠã®ããã°ã©ã ã¯ãå倧ã§åŒ·åãªCã§æžãããŠããŸãã
ããã¡ãã®ããã¡ãïŒããŸããŸããããããŠä»ç§ã¯ããããæžããŠããŸãïŒïŒãããããç§ã¯ããã°ã©ã éçºè
ã ãã§ãªãæçšãªäœããæžãããã£ãã§ãã ãŸããé«åºŠãªã³ãã³ãã©ã€ã³ããªãã£ããããå®è£
ããããšã«ããŸããã
ãããã³ã°ããŒãOSã«ã¯ã³ãã³ãã©ã€ã³ããªãã£ãã®ã§ããïŒïŒã ã¯ããã³ãã³ãã©ã€ã³ãååšããŸããã ã¢ã»ã³ããªèšèªã§æžãããããã°ã©ã ã¯CMDãšåŒã°ããååãšããŠã客芳çã«è©±ãã°ãéåžžã«æ©èœçã§ããã

ãã ãã䞻芳çã«ã¯ãå€ãã®æ¬ ç¹ãèŠãããŸããïŒå°ããªå°å·ãªã©ããŠã£ã³ããŠãã¹ã¯ããŒã«ã§ããªããªã©ïŒã ãã®ããããã¹ã¯ãªãããšã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠã³ãã³ãã©ã€ã³ãäœæããŸãããšããç®æšãèšå®ãããŸããã

2008幎7æ 圌ã¯Hummingbird OSã®ãã©ãŒã©ã ã§ãããã¯
ãéåžžã«æ©èœçãªã·ã§ã«ããéããŸããã æåã®ã¡ãã»ãŒãžã¯ããconsole.objã䜿çšããŠCã§æ©èœã·ã§ã«ãäœæããããšã«ããŸãããããšããã¡ãã»ãŒãžã§çµäºããŸããããã³ãã³ããšãã©ã¡ãŒã¿ãŒãåé¢ããæ©èœãäœæãããã«ãã³ãã³ãïŒãããŸã§ãã©ã¡ãŒã¿ãŒãªãïŒãverãexitãå®è£
ããŸãããã
æåã®ã¡ãã»ãŒãžã«æ·»ä»ãããshell.zipãã¡ã€ã«ïŒçŸåš180å以äžããŠã³ããŒããããŠããŸãïŒã«ã¯ããµã€ãº1.3ãããã€ãã®ãã®æè¡ã®ãã€ããªãå«ãŸããŠããŸããã
ç¿æ¥ãè¿œå ã³ãã³ãexitãlsãpwdãpsãkillãhelpïŒæåŸã®ã³ãã³ã-ãã©ã¡ãŒã¿ãŒããããã©ã¡ãŒã¿ãŒãªãïŒãè¿œå ããããŒãžã§ã³ãæçš¿ããŸããã
åœåãæŽæ°ã¯éåžžã«é »ç¹ã«è¡ãããŠããŸãããããã®åŸã¯æŽæ°ãå°ãªããªããŸããã ããã¯ãç§ãèªåã®éçºã«èå³ã倱ã£ããšããããšã§ã¯ãããŸããã ãã ã楜ãã¿ã®ããã«ãããã°ã©ãã³ã°ããããã®æéãæ®ã£ãŠããããã§ã¯ãªããšããã ãã§ãã
Shellããã°ã©ã ã®ããŒãžã§ã³å±¥æŽã¯0.01ããå§ãŸããŸãã ã¯ããæ£ç¢ºã«0.01ã§ãã ããŒãžã§ã³0.1ã§ã¯ãããã°ã©ã ãå®è¡ããããšãå¯èœã«ãªããŸããïŒãã®ãããªæ©äŒã¯ããã«ã¯å®çŸããªããšèª°ãèããã§ããããïŒïŒã ããŒãžã§ã³0.3以éãã·ã§ã«ã¯ç¬èªã®åœ¢åŒã®ã¹ã¯ãªãããå®è¡ã§ããŸããã ãŸãããã®ããŒãžã§ã³ã§ã¯ããšã€ãªã¢ã¹ã䜿çšããäœæ¥ãå«ãããŒã ã®å±¥æŽããããŸããã
ããŒãžã§ã³0.4.2以éãHummingbird OSã³ãã¥ããã£ã®ä»ã®ã¡ã³ããŒããããžã§ã¯ãã®éçºã«åå ããŸããã ãã®ããããã€ã€ã¢ã³ãïŒHummingbirdsã®å€ãã®ããã°ã©ã ã®äœæè
ããã³console.objã©ã€ãã©ãªã®éçºè
ïŒã¯ããŠã£ã³ããŠãéãããšãã«ããã°ã©ã ã®æ£ããçµäºãå®è£
ããé床é¢æ°ãæé©åããŸãããPteroxã¯ããã€ãã®äŸ¿å©ãªã³ãã³ããè¿œå ãã
Leencyã¯ã¹ã¯ãªããã®çžå¯Ÿãã¹ããµããŒãããŸããã ããã«ã
CleverMouseã«å©ã
ããªãã£ãã®ã¯é©ãããšã§ã¯ãããŸããã
2009幎1ææ«ã®Hummingbird OS 0.7.5.0ã®ãªãªãŒã¹ã«ãããã·ã§ã«ã¯å€ãCMDã³ãã³ãã©ã€ã³ã眮ãæããŸããã
ãã®ãã»ãŒéåžžã«æ©èœçãªã·ã§ã«ãã®å¯èœæ§ã¯äœã§ããïŒ
çŸåšãŸã§ã®ããã°ã©ã ã®çŸåšã®ããŒãžã§ã³ã¯0.7.4ã§ãã ã¯ãã1.0ã«ã¯çšé ãã®ã§ãããŸãæåŸ
ããªãã§ãã ããã ãã ãã25åã®ã³ãã³ããå®è£
ãããŠããŸãïŒaboutãaliasãcdãclearãcpãdateãechoãexitãfreeãhelpãhistoryãkillãlsãmkdirãmoreãpsãpwdãrebootãrmãrmdirãshutdownãã¹ãªãŒããã¿ãããã¢ããã¿ã€ã ãverïŒãã¹ã¯ãªãããšã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ãã³ãã³ãå±¥æŽãã³ãã³ããšã€ãªã¢ã¹ã®ã·ã¹ãã ãå¶åŸ¡æåãšESCã·ãŒã±ã³ã¹ã®åŠçã®ãµããŒãããããã·ã¹ãã å
šäœã®ã¯ãªããããŒãããµããŒãããããã®æåã®ã¹ããããåãããŸããã ããã°ã©ã ã¯ããã·ã¢èªãŸãã¯è±èªã®ã¡ãã»ãŒãžã§ã³ã³ãã€ã«ã§ããŸãã

ãå
éšãã§ã¯ãã·ã§ã«ã«
ã¯çŽ80ãããã€ãã®CãœãŒã¹ã³ãŒãã®ã¿ãããããã®ãã¡18ã¯libcã«äŒŒãã©ã€ãã©ãªã§ãããKolibriOS APIé¢æ°ãåããã©ã€ãã©ãªã§ãã ç¬èªã®libcïŒããã«ãHummingbird OSã«ã¯å°ãªããšã2ã€ã®å®è£
ããããŸãïŒã䜿çšãããšãããã°ã©ã ã®æ§ç¯ãç°¡åã«ãªããåºåãã¡ã€ã«ã®ãµã€ãºããããã«å°ãããªããŸããã ã¡ãªã¿ã«ãã·ã§ã«ã®ãã€ã€ã¢ã³ãããŒãžã§ã³ã¯MSVCçšã«èšèšãããŠããŸãããMinGWã³ã³ãã€ã©ã¯ã·ã§ã«ã®ãã«ãã«å¿
èŠã§ãã ç§ã¯ããã°ã©ã ã®ãœãŒã¹ã³ãŒããå¯èœãªéãééçã«ããããšããŸããã åå¿è
ããã°ã©ãã§ãç解ã§ããïŒããããŸãã«åœŒãã«ã³ã¡ã³ããã»ãšãã©ãªãçç±ã§ãïŒã³ãŒãã¯ç解ã§ããïŒç§ã¯åè«ãèšã£ãŠããŸãïŒ ã·ã§ã«ã®ãœãŒã¹ã³ãŒãã¯ã¢ãžã¥ãŒã«ã«åå²ãããåå
éšã³ãã³ãã¯åå¥ã®ãã¡ã€ã«ã«é
眮ãããŸããçè«çã«ã¯ãå¿
èŠãªã»ã¯ã·ã§ã³ã®æ€çŽ¢ãç°¡åã«ãªããŸãã
ããã°ã©ã ã®èœåãããç§ãã¡ã¯ä»äºã®ååã«ç®ãåããŸãã ã€ã³ã¿ã©ã¯ãã£ãã¢ãŒãã§ã¯ããã¹ãŠãæ確ã§ããïŒã³ãã³ããå
¥åãããçããååŸãããªã©ãéå±ãããŸã§ïŒãšæãããå Žåãã·ã§ã«çšã®ã¹ã¯ãªããããã³ã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ã®äœæã«ã¯åŸ®åŠãªéãããããŸãã
ã¹ã¯ãªããã«ã¯ã察話çã«åäœããã³ãã³ããå«ããããšãã§ããŸãã ããã«ãèµ·åæã«ã·ã§ã«ã¯èšå®ãã£ã¬ã¯ããªïŒéåžžã¯/ sys / settings /ïŒãæ€çŽ¢ãããããèµ·åããããã£ã¬ã¯ããªã§ã.shellããã¡ã€ã«ïŒåŒçšç¬ŠãªãïŒãæ€çŽ¢ããèŠã€ãã£ãå Žåã¯å®è¡ããŸãã éåžžã¯ãaboutã³ãã³ããšããã«ããå
¥åããããã®ææ¡ãå«ãŸããŠããŸãã ãã ãããã¡ãããç¬èªã®ã³ãã³ãã·ãŒã±ã³ã¹ãèšè¿°ã§ããŸãã

ã¹ã¯ãªããã§ã¯ããã³ãèšå·ïŒïŒïŒã§å§ãŸãã³ã¡ã³ãã䜿çšã§ããŸãã
ã¹ã¯ãªããã®æåã®è¡ïŒäžã®ã¹ã¯ãªãŒã³ã·ã§ãããåç
§ïŒã¯ã#SHSãã§ãªããã°ãªããŸããã ããã¯ãSHellScriptããæå³ããShellã¯ã¹ã¯ãªãããå®è¡ã§ãããã©ããã決å®ããŸãã
ã·ã§ã«ã®ã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ã¯ãã³ã³ãœãŒã«ãŠã£ã³ããŠãåæåããå¿
èŠãããªãéåžžã®Hummingbird OSã¢ããªã±ãŒã·ã§ã³ã§ãã 確ãã«ããã®ãããªã¢ããªã±ãŒã·ã§ã³ã®éçºè
ã¯ãã·ã§ã«ãšã®ã€ã³ã¿ãŒãã§ã€ã¹ã®æ£ããåæåã«æ³šæããå¿
èŠããããŸãã
ã·ã§ã«ã¢ããªã±ãŒã·ã§ã³ãšã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³éã®æ
å ±äº€æã¯ãæå®ãããé åãä»ããŠå®è¡ãããŸãã ã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ãèµ·åããåŸããŸããpid-SHELLãšããååã®ååä»ããšãªã¢ãäœæããå¿
èŠããããŸããããã§ãpidã¯å€§æåã®ãŒããå«ãŸãªãããã»ã¹ã®èå¥åã§ããäŸïŒ6ã42ãŸãã¯204ããšãªã¢ã®æåã®ãã€ãã¯ã³ãã³ãã§ãïŒæ倧255ã³ãã³ããååã«ïŒã次ã«ããŒã¿ãååŸããŸãïŒãã ããããŒã¿ããªãå ŽåããããŸãïŒã
å®è£
ãããã³ãã³ãã®ãªã¹ãïŒ
- SC_OK 0äœãããªã
- SC_EXIT 1åºå
- SC_PUTC 2ãã£ã¹ãã¬ã€ãã£ã©ã¯ã¿ãŒ
- SC_PUTS 3衚瀺ã¹ããªã³ã°
- SC_GETC 4ã¯ããŒããŒãããæåãèªã¿åããŸã
- SC_GETS 5ããŒããŒãããè¡ãèªã¿åããŸã
- SC_CLS 6ã¯ãªã¢ã¹ã¯ãªãŒã³
ã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ã¯ãHummingbird OSçšã®ã³ãŒããçæã§ããã³ã³ãã€ã©ãŒã®ããã°ã©ãã³ã°èšèªã§äœæã§ããŸãã Shellãã£ã¬ã¯ããªã®KolibriOS OS SVNãµãŒããŒã§ã¯ãã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ã®2ã€ã®äŸãèŠãããšãã§ããŸã-Cãšã¢ã»ã³ããªèšèªïŒãããŠæåŸã®äŸãæåã®ãã®ãããã£ãšåŸã§çŸããããšã¯æ³šç®ã«å€ããŸãïŒã
éçºè
ãç¥ã£ãŠããã¹ãããã€ãã®æ©èœïŒ
- ã·ã§ã«èªäœã®ã³ã³ãœãŒã«ããã°ã©ã ã¯ãããã»ããµæéã®åççãªäœ¿çšã«æ³šæããå¿
èŠããããŸãã
- Shellã®ã³ã³ãœãŒã«ããã°ã©ã ã¯ãæå®ãããé åèªäœãéããããšã«æ³šæããå¿
èŠããããŸãã
ã€ãŸã ååãšããŠãããã€ãã®ç°¡åãªã«ãŒã«ãšãç¹ã«äŸã®ãœãŒã¹ã³ãŒãïŒCã§2ãããã€ããã¢ã»ã³ãã©ãŒã§3ãããã€ãïŒã解æããåŸã®æ®ãã¯æããã§ãã äŸã®ã¡ã€ã³é¢æ°ãªã©ãè€éã§ããïŒ
void kol_main() { char string[256]; sc_init(); sc_cls(); sc_puts("This is a test console application for Shell\n\r"); sc_puts("Type a string (255 symbols max): "); sc_gets(string); sc_puts("You typed:\n\r"); sc_puts(string); sc_puts("Press any key: "); string[0] = sc_getc(); sc_puts("\n\rYou pressed: "); sc_putc(string[0]); sc_exit(); }
ã€ã³ã¿ãŒãã§ã€ã¹ã®ã·ã³ãã«ãã«ãããããããKolibriOSã«ã¯ã·ã§ã«çšã®åäžã®ã³ã³ãœãŒã«ããã°ã©ã ã¯ãŸã ãããŸããïŒ ãã ããã¹ã¯ãªãããããŸãäžè¬çã§ã¯ãããŸããããäŸç¶ãšããŠäœ¿çšãããŠããŸãã
äžè¬çã«ãShellããã°ã©ã ã«ã€ããŠã¯ããªãé·ãé話ãããšãã§ããŸãã ç¹ã«ãã®ãããªãéçºã«ã€ããŠã çµå±ã®ãšãããä»æ¥ã®ããšã¯å€ãã®äººã«ã¯åããŠããŸããã ãŠãŒã¶ãŒã¯ãã©ã®ããŒã ãæå®ããã«ãæ°ããããŒã ã®å®è£
ãèŠæ±ããŸãã ã¯ããã·ã§ã«ã¯BusyBoxããé ãã§ãã ãã ããShellã¯éUNIXç³»ã®ã·ã¹ãã ã察象ãšããŠãããæšæºã®libcã¯äœ¿çšãããŠããªããããåæ°ããé¢æ°ã®å®è£
ã¯äžçš®ã®å®éšã§ããããšã¯æããã§ãã ãããŠããã®ãããªå®éšã¯ãã£ãšãããããããŸãã ãããã£ãŠãããŒãžã§ã³1.0ã§ã¯ãShellããéåžžã«æ©èœçãªã·ã§ã«ããšå®å
šã«åŒã¹ãããšãé¡ã£ãŠããŸãã