Rust-for-Linux ãããžã§ã¯ãã®èè ã§ãã Miguel Ojeda ã¯ãLinux ã«ãŒãã«éçºè ãæ€èšã§ããããã«ãRust èšèªã§ããã€ã¹ ãã©ã€ããŒãéçºããããã® XNUMX çªç®ã®ã³ã³ããŒãã³ã ãªãã·ã§ã³ãææ¡ããŸããã Rust ã®ãµããŒãã¯å®éšçã§ãããšèããããŠããŸãããlinux-next ãã©ã³ãã«å«ããããšããã§ã«åæãããŠããŸãã ãã®éçºã«ã¯ãGoogle ãšãLet's Encrypt ãããžã§ã¯ãã®åµèšè ã§ãããHTTPS ãšã€ã³ã¿ãŒããã ã»ãã¥ãªãã£ãåäžãããæè¡ã®éçºãæšé²ãã ISRG (Internet Security Research Group) ãè³éæäŸããŠããŸãã
ææ¡ãããŠããå€æŽã«ããããã©ã€ããŒãšã«ãŒãã« ã¢ãžã¥ãŒã«ãéçºããããã®ç¬¬ XNUMX èšèªãšã㊠Rust ã䜿çšã§ããããã«ãªããšããããšãæãåºããŠãã ããã Rust ãµããŒãã¯ãããã©ã«ãã§ã¯æå¹ã«ãªã£ãŠããªããªãã·ã§ã³ãšããŠæäŸãããŠãããã«ãŒãã«ã®å¿ é ãã«ãäŸåé¢ä¿ãšã㊠Rust ãå«ãŸããããšã¯ãããŸããã ãã©ã€ããŒéçºã« Rust ã䜿çšãããšã解æŸåŸã®ã¡ã¢ãª ã¢ã¯ã»ã¹ãnull ãã€ã³ã¿ãŒã®éåç §ããããã¡ ãªãŒããŒã©ã³ãªã©ã®åé¡ããªããæå°éã®åŽåã§ããå®å šã§åªãããã©ã€ããŒãäœæã§ããŸãã
Rustã®ã¡ã¢ãªå®å šæ§ã¯ãåç §ãã§ãã¯ããªããžã§ã¯ãã®æææš©ãšãªããžã§ã¯ãã®æå¹æéïŒã¹ã³ãŒãïŒã®è¿œè·¡ãããã³ã³ãŒãå®è¡äžã®ã¡ã¢ãªã¢ã¯ã»ã¹ã®æ£ç¢ºæ§ã®è©äŸ¡ãéããŠãã³ã³ãã€ã«æã«æäŸãããŸãã Rust ã¯æŽæ°ãªãŒããŒãããŒã«å¯Ÿããä¿è·ãæäŸãã䜿çšåã«å€æ°å€ã®åæåãå¿ é ã«ããæšæºã©ã€ãã©ãªã§ãšã©ãŒãããé©åã«åŠçããããã©ã«ãã§äžå€åç §ãšå€æ°ã®æŠå¿µãé©çšããè«çãšã©ãŒãæå°éã«æããããã®åŒ·åãªéçåä»ããæäŸããŸãã
æ°ããããŒãžã§ã³ã®ãããã§ã¯ããããã®æåãš XNUMX çªç®ã®ããŒãžã§ã³ã®è°è«äžã«äœæãããã³ã¡ã³ããåŒãç¶ãåé€ãããŠããŸãã æãé¡èãªå€å:
- Rust 1.57 ã®å®å®ãªãªãŒã¹ããªãã¡ã¬ã³ã¹ ã³ã³ãã€ã©ãšããŠäœ¿çšããããã«ç§»è¡ããRust 2021 èšèªã®å®å®çãžã®ãªã³ã¯ãæäŸãããŸããã以åã¯ãããã㯠Rust ã®ããŒã¿ ãã©ã³ãã«é¢é£ä»ããããŠãããããã€ãã®èšèªæ©èœã䜿çšããŠããŸãããã¯äžå®å®ãšããŠåé¡ãããŸããã Rust 2021 ä»æ§ãžã®ç§»è¡ã«ããããããå ã® const_fn_transmuteãconst_panicãconst_unreachable_uncheckedãcore_panicãtry_reserve ãªã©ã®äžå®å®ãªæ©èœã®äœ¿çšãæé€ããäœæ¥ãéå§ã§ããããã«ãªããŸããã
- ãããã«å«ãŸãã Rust ã©ã€ãã©ãªã® alloc ããŒãžã§ã³ã®éçºã¯ç¶ç¶ãããŠãããã¡ã¢ãªäžè¶³ãªã©ã®ãšã©ãŒãçºçãããšãã«ã¡ã¢ãªå²ãåœãŠé¢æ°ãããããã¯ãç¶æ ãçæããå¯èœæ§ãåãé€ãããã«ä¿®æ£ãããŸããã æ°ããããŒãžã§ã³ã§ã¯ãã«ãŒãã« Rust ã³ãŒãã§äœ¿çšãããªãæ©èœãç¡å¹ã«ãããno_rcãããã³ãno_syncããªãã·ã§ã³ãå®è£ ãããã©ã€ãã©ãªãããã¢ãžã¥ãŒã«åãããŠããŸãã ã«ãŒãã«ã«å¿ èŠãªå€æŽãã¡ã€ã³ ã©ã€ãã©ãªã«è»¢éããããšãç®çãšããŠãäž»èŠãª alloc éçºè ãšã®äœæ¥ãç¶ããããŠããŸãã ã©ã€ãã©ãªãã«ãŒãã« ã¬ãã«ã§åäœããããã«å¿ èŠãªãno_fp_fmt_parseããªãã·ã§ã³ã¯ãRust ããŒã¹ ã©ã€ãã©ãª (ã³ã¢) ã«ç§»åãããŸããã
- CONFIG_WERROR ã¢ãŒãã§ã«ãŒãã«ããã«ããããšãã«çºçããå¯èœæ§ã®ããã³ã³ãã€ã©ãŒèŠåãåãé€ãããã«ãã³ãŒããã¯ãªãŒã³ã¢ãããããŸããã Rust ã§ã³ãŒãããã«ãããå Žåãè¿œå ã®ã³ã³ãã€ã©èšºæã¢ãŒããš Clippy ãªã³ã¿ãŒèŠåãæå¹ã«ãªããŸãã
- æœè±¡åã¯ãseqlock (ã·ãŒã±ã³ã¹ ããã¯)ãé»æºç®¡çã®ããã®ã³ãŒã«ããã¯åŒã³åºããI/O ã¡ã¢ãª (readX/writeX)ãå²ã蟌ã¿ããã³ã¹ã¬ãã ãã³ãã©ãŒãGPIOãããã€ã¹ããã©ã€ããŒãè³æ Œæ å ±ãžã®ã¢ã¯ã»ã¹ã®ããã® Rust ã³ãŒãã§ã®äœ¿çšãææ¡ãããŠããŸãã
- ãã©ã€ããŒéçºçšã®ããŒã«ãæ¡åŒµãããåé 眮å¯èœãªãã¥ãŒããã¯ã¹ãããã ã€ãã¬ãŒã¿ãŒãç°¡çŽ åããããã€ã³ã¿ãŒ ãã€ã³ãã£ã³ã°ãæ¹åãããé害蚺æãããŒã¿ ãã¹ã«äŸåããªãã€ã³ãã©ã¹ãã©ã¯ãã£ãå«ãŸããŠããŸãã
- åç §ã®ã«ãŠã³ãã«åãååã®ã«ãŒãã« API ã䜿çšãã refcount_t ããã¯ãšã³ãã«åºã¥ããç°¡ç¥åããã Ref ã¿ã€ãã䜿çšãããªã³ã¯ã®åäœãæ¹åãããŸããã æšæºã® alloc ã©ã€ãã©ãªã§æäŸãããŠãã Arc ããã³ Rc ã¿ã€ãã®ãµããŒãã¯åé€ãããã«ãŒãã« ã¬ãã«ã§å®è¡ãããã³ãŒãã§ã¯äœ¿çšã§ããŸãã (ãããã®ã¿ã€ããç¡å¹ã«ãããªãã·ã§ã³ãã©ã€ãã©ãªèªäœã«çšæãããŠããŸã)ã
- ãããã«ã¯ãRust ã§æžãçŽãããããŒãžã§ã³ã® PL061 GPIO ãã©ã€ããŒãå«ãŸããŠããŸãã ãã®ãã©ã€ããŒã®ç¹å¥ãªæ©èœã¯ããã®å®è£ ã C èšèªã®æ¢åã® GPIO ãã©ã€ããŒãã»ãŒ XNUMX è¡ãã€ç¹°ãè¿ãããšã§ãã Rust ã§ã®ãã©ã€ããŒã®äœæã«æ £ãããéçºè ã®ããã«ãC ã³ãŒãã Rust ã®ã©ã®æ§é ã«å€æãããããç解ã§ããè¡ããšã®æ¯èŒãçšæãããŠããŸãã
- ã¡ã€ã³ã® Rust ã³ãŒãããŒã¹ã¯ãlibgccjit ã©ã€ãã©ãªã䜿çšããŠäºå (AOT) ã³ã³ãã€ã«ãå®è£ ãã GCC çšã® Rustc ããã¯ãšã³ãã§ãããrustc_codegen_gcc ãæ¡çšããŠããŸãã ããã¯ãšã³ããé©åã«éçºãããšãGCC ã䜿çšããŠã«ãŒãã«ã«é¢ä¿ãã Rust ã³ãŒããåéã§ããããã«ãªããŸãã
- ARMãGoogleãMicrosoft ã«å ããŠãRed Hat ã Linux ã«ãŒãã«ã§ã® Rust èšèªã®äœ¿çšã«é¢å¿ã瀺ããŠããŸãã Google ã Rust for Linux ãããžã§ã¯ãã«çŽæ¥ãµããŒããæäŸããRust ã§ã® Binder ããã»ã¹ééä¿¡ã¡ã«ããºã ã®æ°ããå®è£ ãéçºããRust ã§ããŸããŸãªãã©ã€ããŒãäœãçŽãå¯èœæ§ãæ€èšããŠããããšãæãåºããŠãã ããã Microsoft ã¯ãRust ãžã® Hyper-V ãã©ã€ããŒã®å®è£ ãéå§ããŸããã ARM ã¯ãARM ããŒã¹ã®ã·ã¹ãã ã«å¯Ÿãã Rust ãµããŒãã®æ¹åã«åãçµãã§ããŸãã IBM ã¯ãPowerPC ã·ã¹ãã çšã® Rust ã®ã«ãŒãã« ãµããŒããå®è£ ããŸããã
åºæïŒ ãªãŒãã³ããã.ru