ื”ืžื”ื“ื•ืจื” ื”ืฉื ื™ื™ื” ืฉืœ ืชื™ืงื•ื ื™ื ืขื‘ื•ืจ ืœื™ื‘ืช ืœื™ื ื•ืงืก ืขื ืชืžื™ื›ื” ื‘ืฉืคืช Rust

ืžื™ื’ืœ ืื•ื’'ื“ื”, ืžื—ื‘ืจ ืคืจื•ื™ืงื˜ Rust-for-Linux, ื”ืฆื™ืข ื’ืจืกื” ืžืขื•ื“ื›ื ืช ืฉืœ ืจื›ื™ื‘ื™ื ืœืคื™ืชื•ื— ืžื ื”ืœื™ ื”ืชืงื ื™ื ื‘ืฉืคืช Rust ืœื‘ื—ื™ื ืช ืžืคืชื—ื™ ืœื™ื‘ืช ืœื™ื ื•ืงืก. ืชืžื™ื›ืช ื—ืœื•ื“ื” ื ื—ืฉื‘ืช ื ื™ืกื™ื•ื ื™ืช, ืืš ื›ื‘ืจ ืกื•ื›ืžื” ืœื”ื›ืœืœื” ื‘ืขื ืฃ ื”-linux-next. ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืžื‘ื˜ืœืช ืืช ื”ื”ืขืจื•ืช ืฉื”ื•ืขืœื• ื‘ืžื”ืœืš ื”ื“ื™ื•ืŸ ื‘ื’ืจืกื” ื”ืจืืฉื•ื ื” ืฉืœ ื”ืชื™ืงื•ื ื™ื. ืœื™ื ื•ืก ื˜ื•ืจื•ื•ืืœื“ืก ื›ื‘ืจ ื”ืฆื˜ืจืฃ ืœื“ื™ื•ืŸ ื•ื”ืฆื™ืข ืœืฉื ื•ืช ืืช ื”ื”ื™ื’ื™ื•ืŸ ืœืขื™ื‘ื•ื“ ื›ืžื” ืคืขื•ืœื•ืช ืกื™ื‘ื™ื•ืช.

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

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

ื”ืฉื™ื ื•ื™ื™ื ื”ื‘ื•ืœื˜ื™ื ื‘ื™ื•ืชืจ ื‘ื’ืจืกื” ื”ื—ื“ืฉื” ืฉืœ ื”ืชื™ืงื•ื ื™ื:

  • ืงื•ื“ ื”ืงืฆืืช ื”ื–ื™ื›ืจื•ืŸ ืžืฉื•ื—ืจืจ ืžื™ืฆื™ืจืช ืžืฆื‘ "ืคืื ื™ืงื”" ืคื•ื˜ื ืฆื™ืืœื™ ื›ืืฉืจ ืžืชืจื—ืฉื•ืช ืฉื’ื™ืื•ืช ื›ืžื• ืื–ืœ ื‘ื–ื™ื›ืจื•ืŸ. ื’ืจืกื” ืฉืœ ืกืคืจื™ื™ืช Rust alloc ื›ืœื•ืœื”, ืืฉืจ ืžืขื‘ื“ืช ืžื—ื“ืฉ ืืช ื”ืงื•ื“ ืœื˜ื™ืคื•ืœ ื‘ื›ืฉืœื™ื, ืืš ื”ืžื˜ืจื” ื”ืกื•ืคื™ืช ื”ื™ื ืœื”ืขื‘ื™ืจ ืืช ื›ืœ ื”ืชื›ื•ื ื•ืช ื”ื“ืจื•ืฉื•ืช ืœืœื™ื‘ื” ืœืžื”ื“ื•ืจื” ื”ืจืืฉื™ืช ืฉืœ alloc (ื”ืฉื™ื ื•ื™ื™ื ื›ื‘ืจ ื”ื•ื›ื ื• ื•ื”ื•ืขื‘ืจื• ืœืชืงืŸ ืกืคืจื™ื™ืช ื—ืœื•ื“ื”).
  • ื‘ืžืงื•ื ื‘ื ื™ื™ื” ืœื™ืœื™ืช, ื›ืขืช ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืžื”ื“ื•ืจื•ืช ื‘ื˜ื ื•ื‘ืžื”ื“ื•ืจื•ืช ื™ืฆื™ื‘ื•ืช ืฉืœ ืžื”ื“ืจ rustc ื›ื“ื™ ืœื”ื“ืจ ื’ืจืขื™ืŸ ืขื ืชืžื™ื›ื” ื‘- Rust. ื ื›ื•ืŸ ืœืขื›ืฉื™ื•, rustc 1.54-beta1 ืžืฉืžืฉ ื›ืงื•ืžืคื™ื™ืœืจ ื”ืคื ื™ื•ืช, ืืš ืœืื—ืจ ืฉื—ืจื•ืจื• ืฉืœ ื’ืจืกื” 1.54 ื‘ืกื•ืฃ ื”ื—ื•ื“ืฉ, ื”ื•ื ื™ื™ืชืžืš ื›ืžื”ื“ืจ ื”ืคื ื™ื•ืช.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื›ืชื™ื‘ืช ืžื‘ื—ื ื™ื ื‘ืืžืฆืขื•ืช ื”ืชื›ื•ื ื” ื”ืกื˜ื ื“ืจื˜ื™ืช "#[ืžื‘ื—ืŸ]" ืขื‘ื•ืจ Rust ื•ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืžื‘ื—ื ื™ื ืœืชื™ืขื•ื“ ืžื‘ื—ื ื™ื.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ARM32 ื•-RISCV ื‘ื ื•ืกืฃ ืœ-x86_64 ื•-ARM64 ืฉื ืชืžื›ื• ื‘ืขื‘ืจ.
  • ื™ื™ืฉื•ืžื™ื ืžืฉื•ืคืจื™ื ืฉืœ GCC Rust (GCC frontend ืขื‘ื•ืจ Rust) ื•-rustc_codegen_gcc (Rustc backend ืขื‘ื•ืจ GCC), ืฉืขื•ื‘ืจ ื›ืขืช ืืช ื›ืœ ื”ื‘ื“ื™ืงื•ืช ื”ื‘ืกื™ืกื™ื•ืช.
  • ืจืžื” ื—ื“ืฉื” ืฉืœ ื”ืคืฉื˜ื” ืžื•ืฆืขืช ืœืฉื™ืžื•ืฉ ื‘ืชื•ื›ื ื•ืช Rust ืฉืœ ืžื ื’ื ื•ื ื™ ืœื™ื‘ื” ื”ื›ืชื•ื‘ื™ื ื‘-C, ื›ื’ื•ืŸ ืขืฆื™ื ืื“ื•ืžื™ื-ืฉื—ื•ืจื™ื, ืื•ื‘ื™ื™ืงื˜ื™ื ืฉื ืกืคืจื• ื”ืคื ื™ื•ืช, ื™ืฆื™ืจืช ืžืชืืจ ืงื‘ืฆื™ื, ืžืฉื™ืžื•ืช, ืงื‘ืฆื™ื ื•ื•ืงื˜ื•ืจื™ I/O.
  • ืจื›ื™ื‘ื™ ืคื™ืชื•ื— ืžื ื”ืœื™ ื”ืชืงื ื™ื ืฉื™ืคืจื• ืชืžื™ื›ื” ื‘ืžื•ื“ื•ืœ file_operations, ืžืืงืจื• ืžื•ื“ื•ืœ!, ืจื™ืฉื•ื ืžืืงืจื• ื•ืžื ื”ืœื™ ื”ืชืงื ื™ื ืจืืฉื•ื ื™ื™ื (ื‘ื“ื™ืงื” ื•ื”ืกืจื”).
  • Binder ืชื•ืžืš ื›ืขืช ื‘ื”ืขื‘ืจืช ืžืชืืจื™ ืงื‘ืฆื™ื ื•ื‘ื•ื•ื™ LSM.
  • ืžื•ืฆืขืช ื“ื•ื’ืžื” ืคื•ื ืงืฆื™ื•ื ืœื™ืช ื™ื•ืชืจ ืœื“ืจื™ื™ื‘ืจ ืฉืœ Rust - bcm2835-rng ืขื‘ื•ืจ ืžื—ื•ืœืœ ื”ืžืกืคืจื™ื ื”ืืงืจืื™ื™ื ื”ื—ื•ืžืจื” ืฉืœ ืœื•ื—ื•ืช Raspberry Pi.

ื‘ื ื•ืกืฃ, ืžื•ื–ื›ืจื™ื ืคืจื•ื™ืงื˜ื™ื ืฉืœ ื—ื‘ืจื•ืช ืžืกื•ื™ืžื•ืช ื”ืงืฉื•ืจื•ืช ืœืฉื™ืžื•ืฉ ื‘- Rust ื‘ืงืจื ืœ:

  • ืžื™ืงืจื•ืกื•ืคื˜ ื”ื‘ื™ืขื” ืขื ื™ื™ืŸ ื‘ื”ืฉืชืชืคื•ืช ื‘ืขื‘ื•ื“ื” ืœืฉื™ืœื•ื‘ ืชืžื™ื›ืช Rust ื‘ืงืจื ืœ ื”ืœื™ื ื•ืงืก ื•ืžื•ื›ื ื” ืœืกืคืง ื”ื˜ืžืขื•ืช ืฉืœ ืžื ื”ืœื™ ื”ืชืงื ื™ื ืขื‘ื•ืจ Hyper-V on Rust ื‘ื—ื•ื“ืฉื™ื ื”ืงืจื•ื‘ื™ื.
  • ARM ืคื•ืขืœืช ืœืฉื™ืคื•ืจ ืชืžื™ื›ืช ื—ืœื•ื“ื” ืขื‘ื•ืจ ืžืขืจื›ื•ืช ืžื‘ื•ืกืกื•ืช ARM. ืคืจื•ื™ืงื˜ Rust ื›ื‘ืจ ื”ืฆื™ืข ืฉื™ื ื•ื™ื™ื ืฉื™ื”ืคื›ื• ืžืขืจื›ื•ืช ARM ืฉืœ 64 ืกื™ื‘ื™ื•ืช ืœืคืœื˜ืคื•ืจืžืช Tier 1.
  • ื’ื•ื’ืœ ืžืกืคืงืช ืชืžื™ื›ื” ื™ืฉื™ืจื•ืช ืœืคืจื•ื™ืงื˜ Rust for Linux, ืžืคืชื—ืช ื™ื™ืฉื•ื ื—ื“ืฉ ืฉืœ ืžื ื’ื ื•ืŸ ื”ืชืงืฉื•ืจืช ื”ื‘ื™ืŸ-ืชื”ืœื™ื›ื™ื ืฉืœ Binder ื‘-Rust, ื•ืฉื•ืงืœืช ืืช ื”ืืคืฉืจื•ืช ืœืขื‘ื“ ื“ืจื™ื™ื‘ืจื™ื ืฉื•ื ื™ื ื‘-Rust. ื‘ืืžืฆืขื•ืช ISRG (Internet Security Research Group), ื’ื•ื’ืœ ืกื™ืคืงื” ืžื™ืžื•ืŸ ืœืขื‘ื•ื“ื” ืœืฉื™ืœื•ื‘ ืชืžื™ื›ื” ื‘-Rust ื‘ืœื™ื‘ืช ื”ืœื™ื ื•ืงืก.
  • IBM ื”ื˜ืžื™ืขื” ืชืžื™ื›ืช ืœื™ื‘ื” ืขื‘ื•ืจ Rust for systems PowerPC.
  • ืžืขื‘ื“ืช LSE (ืžืขื‘ื“ืช ืžื—ืงืจ ืžืขืจื›ื•ืช) ืคื™ืชื—ื” ื“ืจื™ื™ื‘ืจ SPI ื‘-Rust.

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

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