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

Miguel Ojeda, ืžื—ื‘ืจ ืคืจื•ื™ืงื˜ Rust-for-Linux, ื”ืฆื™ืข ืฉื—ืจื•ืจ ืฉืœ ืจื›ื™ื‘ื™ v5 ืœืคื™ืชื•ื— ืžื ื”ืœื™ ื”ืชืงื ื™ื ื‘ืฉืคืช Rust ืœืฉืงื•ืœ ืขืœ ื™ื“ื™ ืžืคืชื—ื™ ืœื™ื‘ืช ืœื™ื ื•ืงืก. ื–ื•ื”ื™ ื”ืžื”ื“ื•ืจื” ื”ืฉื™ืฉื™ืช ืฉืœ ื”ืชื™ืงื•ื ื™ื, ื‘ื”ืชื—ืฉื‘ ื‘ื’ืจืกื” ื”ืจืืฉื•ื ื”, ืฉืคื•ืจืกืžื” ืœืœื ืžืกืคืจ ื’ืจืกื”. ืชืžื™ื›ืช ื—ืœื•ื“ื” ื ื—ืฉื‘ืช ื ืกื™ื•ื ื™ืช, ืืš ื”ื™ื ื›ื‘ืจ ื›ืœื•ืœื” ื‘ืขื ืฃ ื”-linux-next ื•ืžืคื•ืชื—ืช ืžืกืคื™ืง ื›ื“ื™ ืœื”ืชื—ื™ืœ ื‘ืขื‘ื•ื“ื” ืขืœ ื™ืฆื™ืจืช ืฉื›ื‘ื•ืช ื”ืคืฉื˜ื” ืขืœ ื’ื‘ื™ ืชืช-ืžืขืจื›ื•ืช ืœื™ื‘ื”, ื›ืžื• ื’ื ื›ืชื™ื‘ืช ืžื ื”ืœื™ ื”ืชืงื ื™ื ื•ืžื•ื“ื•ืœื™ื. ื”ืคื™ืชื•ื— ืžืžื•ืžืŸ ืขืœ ื™ื“ื™ ื’ื•ื’ืœ ื•-ISRG (Internet Security Research Group), ื”ืžื™ื™ืกื“ืช ืืช ืคืจื•ื™ืงื˜ Let's Encrypt ื•ืžืงื“ืžืช HTTPS ื•ืคื™ืชื•ื— ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืœืฉื™ืคื•ืจ ืื‘ื˜ื—ืช ื”ืื™ื ื˜ืจื ื˜.

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

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

ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืฉืœ ื”ืชื™ืงื•ื ื™ื ืžืžืฉื™ื›ื” ืœื‘ื˜ืœ ืืช ื”ื”ืขืจื•ืช ืฉื”ื•ืขืœื• ื‘ืžื”ืœืš ื”ื“ื™ื•ืŸ ืขืœ ื”ืžื”ื“ื•ืจื” ื”ืจืืฉื•ื ื”, ื”ืฉื ื™ื™ื”, ื”ืฉืœื™ืฉื™ืช, ื”ืจื‘ื™ืขื™ืช ื•ื”ื—ืžื™ืฉื™ืช ืฉืœ ื”ืชื™ืงื•ื ื™ื. ื‘ื’ืจืกื” ื”ื—ื“ืฉื”:

  • ืขืจื›ืช ื”ื›ืœื™ื ืขื•ื“ื›ื ื” ืœืฉื—ืจื•ืจ Rust 1.59.0. ื’ืจืกื” ืฉืœ ืกืคืจื™ื™ืช alloc ืžืกื•ื ื›ืจื ืช ื’ื ืขื ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืฉืœ Rust, ื•ืžื‘ื˜ืœืช ืืช ื”ื™ืฆื™ืจื” ื”ืืคืฉืจื™ืช ืฉืœ ืžืฆื‘ "ืคืื ื™ืงื”" ื›ืืฉืจ ืžืชืจื—ืฉื•ืช ืฉื’ื™ืื•ืช, ื›ื’ื•ืŸ ื—ืกืจ ื–ื™ื›ืจื•ืŸ. ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืชื•ืกืคื•ืช ืืกืžื‘ืœืจ ("ืคื™ืฆ'ืจ(ื’ืœื•ื‘ืœ_asm)") ื”ืชื™ื™ืฆื‘ื”.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ืœื™ืฆื™ืจืช ืชื•ื›ื ื™ื•ืช ืžืืจื— ื‘-Rust ื”ืžืฉืžืฉื•ืช ื‘ืžื”ืœืš ื”ื™ื“ื•ืจ ืœื™ื‘ื”.
  • ื‘ืžืงื•ื ืœืกืคืง ืงื‘ืฆื™ ืžืคืจื˜ ืคืœื˜ืคื•ืจืžืช ื™ืขื“ ืฉื ื•ืฆืจื• ืžืจืืฉ, ื”ื ื ื•ืฆืจื™ื ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ืขืœ ืกืžืš ืชืฆื•ืจืช ื”ืœื™ื‘ื”.
  • ื ื•ืกืฃ ืคืจืžื˜ืจ ืœื™ื‘ืช HAVE_RUST ื›ื“ื™ ืœืืคืฉืจ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื”ืชื•ืžื›ื•ืช ื‘- Rust.
  • ื”ืคืฉื˜ื•ืช ืžื•ืฆืขื•ืช ืœืฉื™ืžื•ืฉ ื‘ืงื•ื“ Rust ืขื‘ื•ืจ ืžื—ื•ืœืœ ืžืกืคืจื™ื ืคืกืื•ื“ื•-ืืงืจืื™ื™ื ืฉืœ ื—ื•ืžืจื”.
  • ืื™ืคืฉืจ ืฉื™ืžื•ืฉ ื‘ืงื•ื“ื™ ืฉื’ื™ืื” ืœืœื ื”ืงื™ื“ื•ืžืช "Error::" (ืœื“ื•ื’ืžื”, "return Err(EINVAL)") ื›ื“ื™ ืœื”ืขืจื™ืš ืืช ื”ื˜ื™ืคื•ืœ ื‘ืงื•ื“ื™ ืฉื’ื™ืื” ื‘-C.
  • ื ื•ืกืฃ ืกื•ื’ "CSstring" ืขื‘ื•ืจ ืžื—ืจื•ื–ื•ืช C ืžื•ืชืืžื•ืช ืื™ืฉื™ืช. ืกื•ื’ื™ ื”ืคื•ืจืžื˜ ื•ื”ืžืื’ืจ ืฉื•ืœื‘ื•.
  • ื ื•ืกืคื• ืกื•ื’ื™ Bool ื•- LockInfo.
  • ื”ื™ื™ืฉื•ื ืฉืœ ืžื ืขื•ืœื™ ืกืคื™ืŸ ืคื•ืฉื˜.

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

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