ãã®è©±ã¯ãç§ãã¡ã®å°æ¬ãããŠãã顧客ã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ãããã³ææ°ã®ãã€ããŒãã€ã¶ãŒã®ãããã§ãæåã¯äžå¯èœãšæãããæè¡çãªã¿ã¹ã¯ããéåžžã«å®çŸå¯èœã§é åçãªãã®ã«ãªããŸããã