ื”ืฆืขื” ืœื“ื™ื•ืŸ ื‘ืกื•ื’ื™ื™ืช ื”ื•ืกืคืช ื›ืœื™ ืคื™ืชื•ื— Rust ืœืงืจื ืœ ื”ืœื™ื ื•ืงืก

ื ื™ืง ื“ื–ื ื™ื™ืจ (ื ื™ืง ื“ืกื•ืœื ื™ืจืก), ืฉืขื•ื‘ื“ ื‘-Google ื›ื“ื™ ืœืกืคืง ืชืžื™ื›ื” ื‘ื ื™ื™ืช ืœื™ื‘ืช ืœื™ื ื•ืงืก ื‘ืืžืฆืขื•ืช ืžื”ื“ืจ Clang ื•ื’ื ืžึธื ึธื” ืชืงืŸ ื‘ืื’ื™ื ื‘ืžื”ื“ืจ Rust, ืžื•ืฆืข ืœืงื™ื™ื ื‘ื›ื ืก ื•ืขื™ื“ืช ื”ืื™ื ืกื˜ืœื˜ื•ืจื™ื ืฉืœ ืœื™ื ื•ืงืก 2020 ืžืคื’ืฉ ื›ื“ื™ ืœื“ื•ืŸ ื‘ืืคืฉืจื•ืช ืœืคืชื— ืจื›ื™ื‘ื™ ืœื™ื‘ื” ื‘- Rust. ื ื™ืง ืžืืจื’ืŸ ืžื™ืงืจื•-ื•ืขื™ื“ื” ื”ืžื•ืงื“ืฉืช ืœ-LLVM, ื•ืžืืžื™ืŸ ืฉื™ื”ื™ื” ื ื—ืžื“ ืœื“ื•ืŸ ื‘ื”ื™ื‘ื˜ื™ื ื”ื˜ื›ื ื™ื™ื ืฉืœ ื”ืฉื™ืœื•ื‘ ื”ืืคืฉืจื™ ืฉืœ ืชืžื™ื›ืช Rust ื‘ืงืจื ืœ (ื”ื•ื ื›ื‘ืจ ื”ื›ื™ืŸ ืื‘ ื˜ื™ืคื•ืก ืขื•ื‘ื“ ืขื‘ื•ืจ KBuild) ื•ืœื”ื‘ื™ืŸ ื”ืื ืชืžื™ื›ื” ื›ื–ื• ืฆืจื™ื›ื” ื™ื•ืกื™ืคื• ื‘ื›ืœืœ ื•ืื™ื–ื” ื”ื’ื‘ืœื•ืช ืขืœ ื”ืฉื™ืžื•ืฉ ื‘-Rust ื™ืฉ ืœืงื‘ืœ.

ื”ื‘ื” ื ื–ื›ื™ืจ ืฉื‘ื“ื™ื•ืŸ ืฉื ืขืจืš ืœืื—ืจื•ื ื” ื‘ื•ื•ืขื™ื“ืช ื”ืงื•ื“ ื”ืคืชื•ื— ื•ื›ื ืก Linux Embedded, Linus Torvalds ืœื ืฉืœืœ ื”ื•ืคืขืช ื›ืจื™ื›ื•ืช ืœืคื™ืชื•ื— ืชืช-ืžืขืจื›ื•ืช ืœืœื ืœื™ื‘ื” (ืœื“ื•ื’ืžื”, ื“ืจื™ื™ื‘ืจื™ื) ื‘ืฉืคื•ืช ื›ืžื• Rust. ื”ื™ื›ื•ืœืช ืœืคืชื— ื“ืจื™ื™ื‘ืจื™ื ื‘-Rust ืชืืคืฉืจ ืœื ื• ืœื™ืฆื•ืจ ื“ืจื™ื™ื‘ืจื™ื ื‘ื˜ื•ื—ื™ื ื•ื˜ื•ื‘ื™ื ื™ื•ืชืจ ื‘ืžื™ื ื™ืžื•ื ืžืืžืฅ, ืœืœื ื‘ืขื™ื•ืช ื›ืžื• ื’ื™ืฉื” ืœื–ื™ื›ืจื•ืŸ ืœืื—ืจ ืฉื—ืจื•ืจ, ื”ืคื ื™ื•ืช ืžืฆื‘ื™ืขื™ื ืืคืกื™ื•ืช ื•ื—ืจื™ื’ื•ืช ืžืื’ืจ. ื™ืฉ ื›ื‘ืจ ื›ืžื” ืคืจื•ื™ืงื˜ื™ื ืฉืœ ืฆื“ ืฉืœื™ืฉื™ ืœื™ื™ืฉื•ื ืชื›ื•ื ื” ื–ื•:

  • ืžืคืชื—ื™ื ืฉืœ ื—ื‘ืจืช "ื“ื’ ื‘ื—ื‘ื™ืช" ืžื•ึผื›ึธืŸ ืขืจื›ืช ื›ืœื™ื ืœื›ืชื™ื‘ืช ืžื•ื“ื•ืœื™ื ื”ื ื™ืชื ื™ื ืœื˜ืขื™ื ื” ืขื‘ื•ืจ ืœื™ื‘ืช ืœื™ื ื•ืงืก ื‘ืฉืคืช Rust, ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืกื˜ ืฉืœ ืฉื›ื‘ื•ืช ืžื•ืคืฉื˜ื•ืช ืขืœ ืคื ื™ ื”ืžืžืฉืงื™ื ื•ืžื‘ื ื™ ื”ืงืจื ืœ ื›ื“ื™ ืœื”ื’ื‘ื™ืจ ืืช ื”ืื‘ื˜ื—ื”. ืฉื›ื‘ื•ืช ื ื•ืฆืจื•ืช ืื•ื˜ื•ืžื˜ื™ืช ืขืœ ืกืžืš ืงื‘ืฆื™ ื›ื•ืชืจื•ืช ื”ืœื™ื‘ื” ื”ืงื™ื™ืžื™ื ื‘ืืžืฆืขื•ืช ื›ืœื™ ื”ืฉื™ืจื•ืช bindgen. ืงืœื ื’ ืžืฉืžืฉ ืœื‘ื ื™ื™ืช ืฉื›ื‘ื•ืช. ื‘ื ื•ืกืฃ ืœืฉื›ื‘ื•ืช ื”ื‘ื™ื ื™ื™ื, ื”ืžื•ื“ื•ืœื™ื ื”ืžื•ืจื›ื‘ื™ื ืžืฉืชืžืฉื™ื ื‘ื—ื‘ื™ืœืช staticlib.
  • ื—ื•ืงืจื™ื ืžื”ืื•ื ื™ื‘ืจืกื™ื˜ื” ื”ืกื™ื ื™ืช ืฉืœ ื”ื•ื ื’ ืงื•ื ื’ ืœึฐืคึทืชึตื—ึท ืคืจื•ื™ืงื˜ ืœืคื™ืชื•ื— ืžื ื”ืœื™ ื”ืชืงื ื™ื ืœืžืขืจื›ื•ืช ืžืฉื•ื‘ืฆื•ืช ื•ื”ืชืงื ื™ Internet of Things ื‘-Rust, ื”ืžืฉืชืžืฉ ื’ื ื‘-bindgen ืœื™ืฆื™ืจืช ืฉื›ื‘ื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ืงื‘ืฆื™ ื›ื•ืชืจื•ืช ืœื™ื‘ื”. ื”ืžืกื’ืจืช ืžืืคืฉืจืช ืœืฉืคืจ ืืช ืื‘ื˜ื—ืช ื”ื“ืจื™ื™ื‘ืจื™ื ืžื‘ืœื™ ืœื‘ืฆืข ืฉื™ื ื•ื™ื™ื ื‘ืงืจื ืœ - ื‘ืžืงื•ื ืœื™ืฆื•ืจ ืจืžื•ืช ื‘ื™ื“ื•ื“ ื ื•ืกืคื•ืช ืœืžื ื”ืœื™ ื”ืชืงื ื™ื ื‘ืงืจื ืœ, ืžื•ืฆืข ืœื—ืกื•ื ื‘ืขื™ื•ืช ื‘ืฉืœื‘ ื”ื”ื™ื“ื•ืจ, ื‘ืืžืฆืขื•ืช ืฉืคืช Rust ื”ืžืื•ื‘ื˜ื—ืช ื™ื•ืชืจ. ื”ื”ื ื—ื” ื”ื™ื ืฉื’ื™ืฉื” ื›ื–ื• ืขืฉื•ื™ื” ืœื”ื™ื•ืช ืžื‘ื•ืงืฉืช ืขืœ ื™ื“ื™ ื™ืฆืจื ื™ ืฆื™ื•ื“ ื”ืžืคืชื—ื™ื ื“ืจื™ื™ื‘ืจื™ื ืงื ื™ื™ื ื™ื™ื ื‘ื—ื™ืคื–ื•ืŸ ืžื‘ืœื™ ืœื‘ืฆืข ื‘ื™ืงื•ืจืช ืจืื•ื™ื”.
  • ืžืคืชื—ื™ ืžืกื’ืจืช C2Rust ืœืฉื™ื“ื•ืจ ืงื•ื“ C ืœ-Rust, ืœึฐื‘ึทืœื•ึนืช ื ื™ืกื•ื™ื™ื ืขืœ ื”ืžืจืช ืžื•ื“ื•ืœื™ ืœื™ื‘ื” ืขื ืขืจื™ื›ื•ืช ื™ื“ื ื™ื•ืช ืžื™ื ื™ืžืœื™ื•ืช. ืื—ืช ื”ื‘ืขื™ื•ืช ืฉืฆื•ื™ื ื• ื”ื™ื ื”ืฉื™ืžื•ืฉ ื‘ื—ืœืงื™ื ืจื‘ื™ื ื‘ืงืจื ืœ ืฉืœ ืงื•ื“ ื”ืžืฉืชืžืฉ ื‘ื”ืจื—ื‘ื•ืช GCC ืฉืขื“ื™ื™ืŸ ืื™ื ืŸ ื ืชืžื›ื•ืช ื‘-C2Rust. ื›ื“ื™ ืœืคืชื•ืจ ื‘ืขื™ื” ื–ื•, C2Rust ืžืชื›ื ื ืช ืœื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘ืชื›ื•ื ื•ืช GCC inline, cold, alias, used and section, ื›ืžื• ื’ื ืœื”ืจื—ื™ื‘ ืืช ื”ื™ื›ื•ืœื•ืช ืฉืœ ื”-inline assembler ื•ืœืคืชื•ืจ ื‘ืขื™ื•ืช ืขื ืžื‘ื ื™ื ืฉื”ื ื’ื ืžื™ื•ืฉืจื™ื ื•ื’ื ืืจื•ื–ื™ื (ืœื“ื•ื’ืžื”, xregs_state) . ื‘ืขื™ื•ืช ืžืฉืžืขื•ืชื™ื•ืช ื”ื“ื•ืจืฉื•ืช ืขื‘ื•ื“ื” ื™ื“ื ื™ืช ื›ื•ืœืœื•ืช ืืช ื—ื•ืกืจ ื”ื™ื›ื•ืœืช ืœืชืจื’ื ืคืงื•ื“ื•ืช ืžืืงืจื• C ืœื ื˜ืจื™ื•ื•ื™ืืœื™ื•ืช ืœืคืงื•ื“ื•ืช ืžืืงืจื• Rust ื•ื”ืฆื•ืจืš ืœื”ื’ื“ื™ืจ ืžื—ื“ืฉ ื˜ื™ืคื•ืกื™ื, ืฉื›ืŸ C2Rust ืžืชืจื’ื ืกื•ื’ื™ C ืœื”ื’ื“ืจื•ืช ื‘ื—ื‘ื™ืœืช libc, ืืš ืœื ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื—ื‘ื™ืœื” ื–ื• ื‘ืžื•ื“ื•ืœื™ ืœื™ื‘ื”.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”