ãã®èšäºã¯ãå€ä»£ã®Unixãä»ã§ãéåžžã«æããŠãã人ãã¡ã察象ã«ããŠããŸããããã§ã«Linuxã«ç§»è¡ããå¿
èŠãããããšããã§ã«çè§£ããŠããŸã...
ãã®è©±ã¯ãç§ãã¡ã®å°æ¬ãããŠãã顧客ã10æ³ã®æ©åšãæäœãããªã¹ã¯ãæžãããã©ã€ã»ã³ã¹ãç¯çŽããUnixããLinuxã«åãæ¿ãããšåæã«ããã®ãœãããŠã§ã¢ãšãââãŒããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ãä»®æ³åããããšã決ãããšããäºå®ããå§ãŸããŸããã 顧客ãSolarisãUnixã奜ãŸãªãã£ãã®ã§ã¯ãªããçŸåšã®SPARCã¢ãŒããã¯ãã£ãšãç²éãªãSolarisãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«å¯æ¥ã«çµã³ä»ãããããµãŒããŒã¢ããªã±ãŒã·ã§ã³ãä»®æ³åããèœåã ããã顧客ã«ãšã£ãŠéåžžã«é
åçã§ããã å¥ã®ãã€ã³ãã¯ãç¹å¥ãªã«ãŒããæé ãªäŸ¡æ Œã®ãä»®æ³åããœãªã¥ãŒã·ã§ã³ã§PCIã€ã³ã¿ãŒãã§ãŒã¹ã«çœ®ãæããåé¡ã§ããã ç§ãã¡ã¯ãã®ãããªè峿·±ãä»äºãããããšã«ããŸããã
ãœãŒã¹ãèŠãåã«ãç§ãã¡ã¯äœãæ±ã£ãŠããã®ãããããããªãã£ãã åŸã§ãã¿ã¹ã¯ãããããç¥ãããã«ãªã£ããšããUNIXããŒã¢ã³ã次ã®ããã§ããããšãããããŸããã
- Solarisã«ãŒãã«ã®ã·ã¹ãã ã³ãŒã«ã«ãææããããŸãããå€éšWeb APIã䜿çšããŠæè»ã«ã«ã¹ã¿ãã€ãºå¯èœãªãã«ãã¹ã¬ããWebãµãŒããŒïŒ ããŒã¢ã³ ïŒ
- PCIã¹ãããã®C-shnoy APIå°çšã«ãŒãã«é¢é£ä»ããããã³ãŒã
- Unix-PGPãžã®IPCåŒã³åºã
- 倿°ã®ç¹æ®ãªUnixã©ã€ãã©ãªã«é¢é£ä»ããããã³ãŒã
ãããŠããã®ã³ãŒããšããŒããŠã§ã¢ãšãœãããŠã§ã¢ã®ãœãªã¥ãŒã·ã§ã³ããä»®æ³åãããŠãLinuxäžã§åäœããããã«ããå¿
èŠããããŸããã
ãããã¯ããã®éžè±ä»ãç§ã¯ãã®ãããžã§ã¯ãã®ç§»æ€ãéåžžã«å±éºã§ããããšãçè§£ããŠããŸã...
ãé¡ã«ãããã¿ã¹ã¯ã¯è§£æ±ºã§ããªããããã¿ã¹ã¯ãåå²ããããšã«ããŸããã
ãŸããæªéã®ã³ãŒãã¯ãšã³ãã£ã¢ã³-ãã¥ãŒãã©ã«ã§ããããšã倿ããŸããã
ãã®ã³ãŒããç§»æ€ããæè¯ã®æ¹æ³ãèŠã€ããéçšã§
ãLinuxäžã®ã¢ããªã±ãŒã·ã§ã³ã§ããSolarisã®ç§»æ€ã«é¢ããIBMã®æè¡ã¬ã€ããæ€èš
ããŸãã ã
ç§ãæåã«ç¥ãããã£ãã®ã¯ã
Solarisã«ãŒãã«åŒã³åºããæ¯èŒçPOSIXäºæã®Linuxã«
ç§»æ€ããã®ãã©ãã»ã©é¢åããšããããš
ã§ããã Solarisã¯ãPOSIXèªå®OSã§ãããã³ã¢ã«éåžžã«ç¹æ®ãªã¹ã¬ããæ©èœããããŸãã åœç¶ãLinuxã«ãŒãã«ã«ã¯é¡äŒŒç©ããªããã®ããããŸãã
- thr_suspendïŒïŒ;
- thr_continueïŒïŒ;
ããŒã¢ã³ã®æ©èœã¯ããããã ãã§ãªããä»ã®Solarisã«ãŒãã«é¢æ°thr_keycreateïŒïŒãthr_selfïŒïŒãthr_getspecificïŒïŒãªã©ã«ãäŸåããŠããŸããã IBMã®ããã¥ã¢ã«ã«ã¯ãLinuxã«ç§»æ€ããéã«ãã®ãããªã³ãŒããæžãçŽãå¿
èŠããããšæç€ºçã«èšèŒãããŠããŸãã ãããŠããã¯ãã¯ã©ã¹ãæã€æ°åè¡ã®ãã«ãã¹ã¬ããäœã¬ãã«Cã³ãŒããåæããæžãæããå¿
èŠãããããšãæå³ããŠããŸããã ä»ã«æ¹æ³ã¯ãããŸãããïŒ ãããŠãç§ãã¡ã¯åœŒãèŠã€ããããã«æããŸããïŒ Linuxã§Solarisã®ã³ãŒããã
çŸç¶ã®ãŸãŸ ãç§»æ€ããããã®ãæŸèæããæ¢ããŠãå€ãCompaq
Solarisäºæã¹ã¬ããã©ã€ãã©ãªïŒScTLïŒãããžã§ã¯ãã«åºäŒããŸãã ã ã»ããç§»æ€ãããããŒã¢ã³ãšLinuxã«ãŒãã«ã®éã«ãããã¬ã€ã€ãŒãããããŸãïŒ ããããããã«ã¯ãããŸããã§ãã...
åœåã¯é»è»ã«ä¹ã£ãŠããCompaq瀟ãTru64 UNIXã®ãããžã§ã¯ããæ§æ³ãããã®ãããžã§ã¯ããLinux Intel x86ããã³ä»ã®ãã©ãããã©ãŒã ã«ç§»æ€ãããããæåã¯ãã®ãããžã§ã¯ããçµã¿ç«ãŠãããããŸããã§ããã ScTLãœãŒã¹ã³ãŒããä¿®æ£ããåŸã詊è¡é¯èª€ãç¹°ãè¿ããŠãAMD64äžã®æ°ããLinuxã«ãŒãã«ã«å¿
èŠãªã©ã€ãã©ãªãåéããããšãã§ããŸããã LinuxããŒã¢ã³ã¯ãSolarisåºæã®æ©èœãèªèããåäœããããã«èŠããããŸããããããã ãã§ããã ScTLã®æäœäžã«ãScTLã³ãŒãèªäœã§ã©ã³ã¿ã€ã äŸå€ãçºçããããŒã¢ã³ããã¯ã©ãã·ã¥ãããŸããã 13æ³ã®ããã¬ãã·ã¥ãã¹ãã®ãã®ã³ãŒããçè§£ããæéã¯ãããŸããã§ãããç§ãã¡ã¯ä»£æ¿æ¡ãæ¢ãå§ããŸããã éžæã¯æããã§ãC ++ 11ããã³STLãšã®æå€§ã®äºææ§ãå¿
èŠã ã£ããããã¹ã¬ããã®POSIXæšæºãçŽæ¥æ··ä¹±ãããããšãªããstd :: threadã«çãŸãããšã«ããŸããã ããŒã¢ã³ã¯WebãµãŒããŒã§ãã£ããããäœã¬ãã«ã®ãœã±ããããBoost :: Asioã«åãæ¿ããããšãéåžžã«æãŸãããã®ã§ããã ãœãªã¥ãŒã·ã§ã³ãæ¯èŒããŠãæ¯èŒçåçŽã§ãã
ãGitHubã®ãµãŒãããŒãã£ãããžã§ã¯ãïŒMITã©ã€ã»ã³ã¹ïŒ
ãããžã§ã¯ãã§ã®äœ¿çšã«ãã§ã«é©ããŠãããã®ã䜿çšããããšã«ããŸããã ã¢ããªã±ãŒã·ã§ã³ã¯ã©ã¹ã§ã¯ãstd :: asyncãšããã¡ããã©ã ããC ++ 11ããã®éåææ§ã確ä¿ããã®ã«åœ¹ç«ã¡ãŸããã ãã®ãããWebãµãŒããŒã亀æããåå¥ã®ãã¹ãã«åæ ŒããŸããã
次ã®åé¡ã¯
ãPCIã€ã³ã¿ãŒãã§ã€ã¹ãåããç¹æ®ãªæ¡åŒµã«ãŒãããä»®æ³åããã
æ¹æ³ã解決
ããããšã§ãã æ©èœçã«åæ§ã®æ©åšãåžå Žã§å
¥æã§ããŸããããUSBã€ã³ã¿ãŒãã§ã€ã¹ãåããŠããŸããã
ããŒããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ã§ããããŸãã ã客æ§ã䜿çšãããã€ããŒãã€ã¶ãŒã«ãããUSBæ©åšãä»®æ³ã·ã¹ãã ã«æ¥ç¶ã§ããããã«ãªã£ããããUSBã€ã³ã¿ãŒãã§ã€ã¹ãåããããŒããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ãä»®æ³ç°å¢ã«æ¥ç¶ãããã¢ããªã±ãŒã·ã§ã³ã§Linuxã§å©çšã§ããããã«ãªããŸããã ããã«ã¯ãã¹ãŠãPCIã«ãŒãã«é¢é£ä»ããããã³ãŒãã®å€§å¹
ãªåŠçãUSBæ©åšã®æäœããã³ãã®åŸã®ãã¹ãã®ããã®æ°ããã³ãŒãã®äœæãå¿
èŠã§ããã

3çªç®ã®åé¡ã¯
PGPã§ããã ãã®ç¡æã®ã¢ããã°GnuPGã¯ãSolarisã®ããã«Linuxã§å¿
èŠãªã·ããªãªã«åŸã£ãŠåäœããããšãæãŸãªãã£ããããIPCãgpgmeã©ã€ãã©ãªåŒã³åºãã«æžãæããå¿
èŠããããŸããããã®çµæãä¿¡é Œæ§ãåäžããããŒã¢ã³ã¯ãã€ãã£ãCåŒã³åºãã§æ£åžžã«åäœããç·æ¥äºæ
ã§ãšã©ãŒãæ£ããåŠçãå§ããŸããã
4çªç®ã®åé¡ã¯æ®ããŸãã-Unixã©ã€ãã©ãªãžã®äŸåã ããããåã®ã¿ã¹ã¯ã解決ããåŸããããã®ã©ã€ãã©ãªã¯ããã»ã©å€§ããªåé¡ã§ã¯ãªãããã§ããã Solarisããã±ãŒãžã䜿çšããŠLinuxããã±ãŒãžãããã³ã°ããŒãã«ïŒã¢ããã°ïŒãäœæããå¿
èŠãªã©ã€ãã©ãªãå«ãããã±ãŒãžãšããã®ç®çãšããŒã¢ã³ã®äœ¿ç𿹿³ãææ¡ããŸããã ãã®çµæãå¿
èŠãªç¡æã®ã¢ããã°ããã¹ãŠèŠã€ãããã¢ã»ã³ããªãšãã¹ãã«ãããUnixã©ã€ã¯ãªLinux OSãã³ãŒãããŒã¹ã®ç§»æ€ã容æã«ããããšã瀺ãããŸããã
çµè«ãšããŠãç§ã䜿çšãããã«ãã·ã¹ãã ãšã¿ãŒã²ããLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³ãšãã2ã€ã®ãã€ã³ãã«ã€ããŠã話ããããšæããŸãã ãªãªãžãã«ã®Solarisçšã³ãŒãã§ã¯ãMakefileãååŸããŸããã 20幎åã«ã¯è¯ã解決çã§ããããã¢ã»ã³ããªã«æè»æ§ãå¿
èŠã§ããã
CMakeã¯æ¢ããŠãããã®ãæäŸããŸããïŒBoostã§ã®äœæ¥ã®æ§æãã©ã€ãã©ãªã®ç°ãªãããŒãžã§ã³ãšã®ãªã³ã¯
ãg ++ã§ã®ABIã®å€æŽãèæ
®ããŸãã
CMakeã䜿çšãããšããããã°ããã³ãªãªãŒã¹ã¢ã»ã³ããªçšã®ãã¡ã€ã«ãç°¡åã«çæã§ããŸãã ã¿ãŒã²ãããã£ã¹ããªãã¥ãŒã·ã§ã³ã®ç¶æ³ã¯ãã客æ§ãRed Hat Enterprise Linuxã䜿çšãããã®ã«ããšã³ã¿ãŒãã©ã€ãºã§ã¯Ubuntuã䜿çšãããŠããããšã§ãã å®è¡å¯èœãã¡ã€ã«ã®ãµã€ãºã¯ããã¶ã倧ãããªããŸãããããã®ã±ãŒã¹ã¯ãæå°éã®äŸåé¢ä¿ïŒ.Netããã³Javaã®æå¥œå®¶ã«ããã«ã¡ã¯ïŒã§ãªãªãŒã¹ã¢ã»ã³ããªã®éçã³ã³ãã€ã«ã§çµäºããŸããã
ãã®çµæãSolarisããŒã¢ã³ãLinuxã«ç§»æ€ããŸããããåæã«Solaris UNIXã§ãã«ãŒãåããããã»ãšãã©ãã¹ãŠã®ã·ã¹ãã ã³ãŒããç Žæ£ããPCIã«ãŒããæ©èœçã«åæ§ã®USBããã€ã¹ã«ãä»®æ³åãããããã®æ°ããã³ãŒããäœæããã³ãŒãå
ã®ç¹å®ã®å Žæãããä¿¡é Œæ§ã®é«ããã®ã«ããŸããã éèŠãªããšã«ãæ°ããLinuxããŒã¢ã³ã¯ãSolarisããã³ããŒãããæ§æãã¡ã€ã«ãèªã¿åããWebãµãŒãã¹ãšããŠã®APIã®ä»æ§ãšã®100ïŒ
ã®äºææ§ãç¶æããªããããã®äœæ¥ãæ£ããæ§æããŸãã
C ++ 11æšæºïŒããã³
C ++ 17ã¢ãããŒã ïŒãBoostãCMakeãããã³ææ°ã®ãã€ããŒãã€ã¶ãŒã®ãããã§ãæåã¯äžå¯èœãšæãããæè¡çãªã¿ã¹ã¯ããéåžžã«å®çŸå¯èœã§é
åçãªãã®ã«ãªããŸããã