ИзданиС Π½Π° Rust 1.81. ΠŸΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΠΈΡ ΠΏΡ€ΠΈ интСграцията Π½Π° Rust Π² ядрото Π½Π° Linux

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π΅ Ρ€Π΅Π»ΠΈΠ·ΡŠΡ‚ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Rust 1.81, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Mozilla, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Π½ ΠΏΠΎΠ΄ покровитСлството Π½Π° нСзависимата нСкомСрсиална организация Rust Foundation. Π•Π·ΠΈΠΊΡŠΡ‚ Π΅ фокусиран Π²ΡŠΡ€Ρ…Ρƒ бСзопасната Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ прСдоставя срСдства Π·Π° постиганС Π½Π° висок ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΡŠΠΌ Π² ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅, ΠΊΠ°Ρ‚ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π΅ изисква ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ ΠΈ runtime (runtime Π΅ свСдСно Π΄ΠΎ основна инициализация ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°).

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² Rust освобоТдават Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π°Π²Π°Ρ‚ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‰ΠΈ ΠΎΡ‚ нискоуровнСвата Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ освободСна ΠΏΠ°ΠΌΠ΅Ρ‚, Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ извън Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ Π΄Ρ€. Π—Π° разпространСниС Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, осигуряванС Π½Π° компилация ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° зависимости, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Ρ€Π°Π·Π²ΠΈΠ²Π° пакСтния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Cargo. Π—Π° хостванС Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΅ прСдоставСн Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ crates.io.

БСзопасната Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² Rust сС осигурява ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° компилация Ρ‡Ρ€Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ, прослСдяванС Π½Π° собствСността Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅, ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ‚ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ (области Π½Π° видимост) ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° правилността Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Rust ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π° срСдства Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΏΡ€Π΅ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Ρ†Π΅Π»ΠΈ числа, изисква Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π° инициализация Π½Π° стойноститС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ, подобрява ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΏΡ€ΠΈΠ»Π°Π³Π° концСпцията Π·Π° нСизмСняСмост (immutable) Π½Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° силна статична типизация, Π·Π° Π΄Π° сС ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚ логичСскитС Π³Ρ€Π΅ΡˆΠΊΠΈ.

Основни нововъвСдСния:

  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ Ρ‚ΠΈΠΏΠ°ΠΆΡŠΡ‚ core::error::Error, опрСдСлящ описанията Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅. Π’Π°Π·ΠΈ промяна позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π΄ΠΈΠ½Π΅Π½ Ρ‚ΠΈΠΏΠ°ΠΆ Error Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, нСзависимо ΠΎΡ‚ срСдата, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ със стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ β€ž#![no_std]β€œ.
  • Π‘Ρ‚Π°Π±ΠΈΠ»Π½ΠΈΡ‚Π΅ ΠΈ нСстабилнитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° сортиранС Π² стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° са ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½ΠΎΠ²ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ, дСмонстриращи ΠΏΠΎ-висока скорост Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ ΠΏΠΎ-ΠΊΡ€Π°Ρ‚ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° компилация. Π’ рСализацията Π½Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° сортиранС Π΅ осигурСно опрСдСлянС Π½Π° Π½Π΅ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Ρ‚ΠΈΠΏΠ°ΠΆΠΈ Ord ΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ° (panic) Π² Ρ‚Π°ΠΊΠΈΠ²Π° случаи, вмСсто случайно сгрупирани Π΄Π°Π½Π½ΠΈ.
  • Π’ linter-Π° Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π½ΠΎΠ²ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° β€žexpectβ€œ (β€ž#[expect(lint)]β€œ), позволяващо Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π² ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° ΠΈ Π΄Π° ΠΈΠ·Π²Π΅Π΄Π΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π°ΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π΅ Π΅ изпълнСна (ΠΏΠΎΡ€Π°Π΄ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ° Π² рСализацията ΠΈΠ»ΠΈ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π°). НапримСр, ΠΏΡ€ΠΈ прСмСстванС Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π° към ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° undocumented_unsafe_blocks Ρ‡Ρ€Π΅Π· Clippy, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ β€ž#[expect(clippy::undocumented_unsafe_blocks)]β€œ, Π·Π° Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΡ‚Π΅, Ρ‡Π΅ Π² процСса Π½Π° ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° всички unsafe-Π±Π»ΠΎΠΊΠΎΠ²Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ. Π’ Clippy ΡΡŠΡ‰ΠΎ са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ clippy::allow_attributes ΠΈ clippy::allow_attributes_without_reason, улСсняващи замяната Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΡ‚Π΅ β€ž#[allow]β€œ с β€ž#[expect(lint)]β€œ.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Π»Π΅Π½ запис Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° замяната Π½Π° Π½ΠΈΠ²Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° (lint), прСдоставяйки Π½Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ информация Π·Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° добавянС Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, ΠΈΠ·Π²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π°. НапримСр: #![deny(clippy::float_arithmetic, reason = β€žno hardware float supportβ€œ)]
  • Π’ катСгорията стабилни Π΅ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½Π° Π½ΠΎΠ²Π° порция API, ΠΊΠ°Ρ‚ΠΎ са стабилизирани ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΈΠΏΠ°ΠΆΠΈΡ‚Π΅:
    • core::error
    • hint::assert_unchecked
    • fs::exists
    • AtomicBool::fetch_not
    • Duration::abs_diff
    • IoSlice::advance
    • IoSlice::advance_slices
    • IoSliceMut::advance
    • IoSliceMut::advance_slices
    • PanicHookInfo
    • PanicInfo::message
    • PanicMessage

    ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ Β«constΒ», опрСдСлящ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΊΠ°ΠΊΡŠΠ²Ρ‚ΠΎ ΠΈ Π΄Π° Π΅ контСкст вмСсто константи, Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ във Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅:

    • char::from_u32_unchecked (функция)
    • char::from_u32_unchecked (ΠΌΠ΅Ρ‚ΠΎΠ΄)
    • CStr::count_bytes
    • CStr::from_ptr

    Π’ΠΈΠΏΡŠΡ‚ std::panic::PanicInfo Π΅ ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ Π½Π° std::panic::PanicHookInfo (ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ остава, Π½ΠΎ ΠΎΡ‚ слСдващата вСрсия ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅). Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° core::panic::PanicInfo Ρ‰Π΅ останС Π½Π΅ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½, Π½ΠΎ Ρ‰Π΅ сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Ρ‚ΠΈΠΏ. РаздСлянСто Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, спСцифични Π·Π° контСкста snd ΠΈ no_std.

  • Π—Π°Π²ΡŠΡ€ΡˆΠ΅Π½ Π΅ ΠΏΡ€Π΅Ρ…ΠΎΠ΄ΡŠΡ‚ към ABI C-unwind (β€˜extern Β«C-unwindΒ»β€˜), ΠΊΠΎΠΉΡ‚ΠΎ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ ABI Π±Π΅Π· суфикс Β«-unwindΒ» (β€˜extern Β«CΒ»β€˜) с Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Π·Π°ΠΏΠ°Π·Π²Π° бСзопасното ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (safe), Π°ΠΊΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° Β«Ρ€Π°Π·ΠΌΠΎΡ‚Π°Π²Π°Π½Π΅Β» (unwinding), ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°Π½ ΠΏΡ€ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ спиранС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΈΠ»ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² стил C++, прСсича Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ‚Π° Π½Π° ABI (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, възникнало Π² ΠΊΠΎΠ΄ Π½Π° Π΅Π΄ΠΈΠ½ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, засяга стСка, ΡΠ²ΡŠΡ€Π·Π°Π½ с ΠΊΠΎΠ΄ Π½Π° Π΄Ρ€ΡƒΠ³ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅). ΠžΡ‚ вСрсия Rust 1.81 ΠΏΡ€ΠΈ β€˜extern Β«CΒ»β€˜ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΎ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ спиранС ΠΏΡ€ΠΈ Π½Π΅ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Π½Π°Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠΎΡ‚Π°Π²Π°Π½Π΅.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ Ρ‚Ρ€Π΅Ρ‚ΠΈ Π½ΠΈΠ²ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈΡ‚Π΅ i686-unknown-redox, xtensa-esp32-none-elf, xtensa-esp32s2-none-elf, xtensa-esp32s3-none-elf, xtensa-esp32-espidf, xtensa-esp32s2-espidf, xtensa-esp32s3-espidf. Π’Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ ΠΏΡ€Π΅Π΄Π²ΠΈΠΆΠ΄Π° основна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°, Π½ΠΎ Π±Π΅Π· Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ тСстванС, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈ сборки ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π°.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ Π²Ρ‚ΠΎΡ€ΠΈ Π½ΠΈΠ²ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Ρ†Π΅Π»Π΅Π²ΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ loongarch64-unknown-linux-musl ΠΈ arm64ec-pc-windows-msvc. Π’Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° осигурява гаранция Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅.
  • Π—Π° Linux-систСмитС Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° LoongArch Π΅ прСдоставСн пълСн инструмСнтарий ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊ.
  • УстранСна Π΅ уязвимост (CVE-2024-43402) Π² std::process::Command, проявяваща сС само Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Windows ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Ρ‰Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Π΅Ρ‡Π΅ ΠΏΠΎΠΏΡ€Π°Π²Π΅Π½Π° уязвимост BatBadBut, ΡΠ²ΡŠΡ€Π·Π°Π½Π° с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° спСциални символи ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° повиквания Command::arg ΠΈ Command::args, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π·Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° процСса, Π±Π΅Π· Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ΠΈ ΠΎΡ‚ командния ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€. ΠŸΡ€ΠΈ стартиранС Π½Π° bat- ΠΈ cmd-скриптовС Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° сС ΡΡ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΡˆΠ΅ процСс cmd.exe, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° собствСна Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π° раздСлянС Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅. Π—Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΊΠ°Ρ‚Π° Π΅ основана Π½Π° Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Windows ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° Π²ΠΎΠ΄Π΅Ρ‰ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΠΏΡŠΡ‚ΠΈΡ‰Π°Ρ‚Π°, Ρ‚.Π΅. Ρ„Π°ΠΉΠ» с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Β«.bat. .Β» сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΊΠ°Ρ‚ΠΎ Β«.batΒ».

ОсвСн Ρ‚ΠΎΠ²Π°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈΠΌ напусканСто Π½Π° УСдсон АлмСйда Π€ΠΈΠ»ΠΆΠΎ (Wedson Almeida Filho) ΠΎΡ‚ поста Π½Π° ΠΏΡ€ΠΈΠ΄Ρ€ΡƒΠΆΠ°Π²Π°Ρ‰ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Rust for Linux, ΠΊΠΎΠΉΡ‚ΠΎ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° с внСдряванСто Π½Π° срСдства Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊ Rust Π² ядрото Π½Π° Linux. Π‘Π»Π΅Π΄ напусканСто Π½Π° УСдсон, Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° останаха ΠΎΡ‰Π΅ Π΄Π²Π°ΠΌΠ° ΠΏΡ€ΠΈΠ΄Ρ€ΡƒΠΆΠΈΡ‚Π΅Π»ΠΈ β€” МигСл ΠžΡ…Π΅Π΄Π° (Miguel Ojeda), Π°Π²Ρ‚ΠΎΡ€ ΠΈ основСн Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Rust-for-Linux, ΠΈ АлСкс Π“Π΅ΠΉΠ½ΠΎΡ€ (Alex Gaynor), бивш Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° организацията Python Software Foundation, ΠΊΠΎΠΉΡ‚ΠΎ сС Π΅ насочил към популяризиранСто Π½Π° Rust. Напусналият ΠΏΡ€ΠΈΠ΄Ρ€ΡƒΠΆΠΈΡ‚Π΅Π», ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΠΈ към ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€Π΅Π΄ΠΈ 4 Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π΅ слуТитСл Π½Π° компанията Microsoft ΠΈ Π°Π²Ρ‚ΠΎΡ€ Π½Π° СкспСримСнталСн Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ с рСализация Π½Π° Π€Π‘ EXT2, написан Π½Π° Π΅Π·ΠΈΠΊ Rust. Π’ послСдно Π²Ρ€Π΅ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° АлмСйда бСшС насочСна към ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° срСдства Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми Π½Π° Π΅Π·ΠΈΠΊ Rust. Π’Π°Π·ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° АлмСйда Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ» 17 ΠΊΠΎΠΌΠΈΡ‚Π° Π² рСпозитория Rust-for-Linux (Π·Π° сравнСниС, МигСл ΠžΡ…Π΅Π΄Π° Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» 53 ΠΊΠΎΠΌΠΈΡ‚Π°).

ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π° напусканСто сС спомСнава нСдостиг Π½Π° сили ΠΈ Π΅Π½Ρ‚ΡƒΡΠΈΠ°Π·ΡŠΠΌ, ΠΊΠΎΠΈΡ‚ΠΎ някога са Π±ΠΈΠ»ΠΈ Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π·Π° Ρ€Π΅Π°Π³ΠΈΡ€Π°Π½Π΅ Π½Π° някои нСсСриозни Ρ‚Π΅ΠΌΠΈ (nontechnical nonsense). Π‘ΠΏΠΎΡ€Π΅Π΄ АлмСйда, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ са ΠΏΡ€ΠΈΠ½ΡƒΠ΄Π΅Π½ΠΈ Π΄Π° Π²Π»Π°Π³Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ усилия Π² споровС ΠΏΠΎ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ Π²ΡŠΠΏΡ€ΠΎΡΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‚Π±Π»ΡŠΡΠΊΠ²Π°Ρ‚ ΠΏΠΎ-Π²Π°ΠΆΠ½Π°Ρ‚Π° Π³Π»ΠΎΠ±Π°Π»Π½Π° Ρ†Π΅Π». АлмСйда ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° вярва, Ρ‡Π΅ Π±ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ Π½Π° ядрата Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π·ΠΈΡ†ΠΈ, осигуряващи бСзопасна Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΈ Π°ΠΊΠΎ общността ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Linux Π½Π΅ осъзнаС Ρ‚ΠΎΠ²Π°, Linux Ρ‰Π΅ бъдС изтласкан ΠΎΡ‚ някоС Π΄Ρ€ΡƒΠ³ΠΎ ядро, ΠΊΠ°ΠΊΡ‚ΠΎ някога сС случи с Unix.

ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠ½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Rust-for-Linux сС ΡΠ±Π»ΡŠΡΠΊΠ²Π°Ρ‚ с нСобходимостта Π΄Π° прСодоляват ΡΡŠΠΏΡ€ΠΎΡ‚ΠΈΠ²Π° ΠΎΡ‚ страна Π½Π° ΡƒΡ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΈ стари Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° ядрото, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ Π²ΠΈΠΆΠ΄Π°Ρ‚ нСобходимост ΠΎΡ‚ ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ² Π΅Π·ΠΈΠΊ. Π’ писмото си Π·Π° оставка АлмСйда Π΄Π°Π²Π° Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ обсуТданСто, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΡΡŠΡΡ‚ΠΎΡ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΊΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° АлмСйда ΠΈ ΠšΠ΅Π½Ρ‚ ΠžΠ²Π΅Ρ€ΡΡ‚Ρ€ΠΈΡ‚Π° (Kent Overstreet) Π½Π° конфСрСнцията β€žLinux Storage, Filesystem, Memory-Management, and BPF Summitβ€œ, която бСшС посвСтСна Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Rust Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми. ΠŸΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° Rust бСшС ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒΠ²Π°Π½ΠΎ ΠΎΡ‚ Π’Π΅Π΄ Π¦ΠΎ (Ted Ts’o), Π°Π²Ρ‚ΠΎΡ€Π° Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ систСми ext2/ext3/ext4, ΠΊΠΎΠΉΡ‚ΠΎ сравни ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π°Ρ‚Π° Rust-for-Linux с ΠΎΠΏΠΈΡ‚ Π΄Π° сС Π½Π°ΠΊΠ°Ρ€Π°Ρ‚ всички Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ рСлигията Rust.

Π’ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° АлмСйда Π΄Π° създадС ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° Π½Π°Π΄ интСрфСйситС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ систСми, написани Π½Π° Π΅Π·ΠΈΠΊΠ° Π‘ΠΈ, Π·Π° Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΊΠΎΠ΄Π° Π½Π° Π΅Π·ΠΈΠΊΠ° Rust, Π’Π΅Π΄ Π¦ΠΎ посочи, Ρ‡Π΅ Ρ‚Π°ΠΊΠ°Π²Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ всяка промяна Π² Π‘ΠΈ интСрфСйситС ΠΈ ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‰Π΅ изисква ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π° Π·Π° Rust, Π° Ρ‚ΠΎΠΉ Π½Π΅ иска Π΄Π° ΠΏΠΎΠ΅ΠΌΠ° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° отговорност Π·Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π΅ Π½Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‰ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΠΊΠΎΠ΄Π° Π½Π° Rust ΠΈ слСдСнСто Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Rust ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π°. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Π‘ΠΈ постоянно сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΈ Π°ΠΊΠΎ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° промяна Π½Π°Ρ€ΡƒΡˆΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π° Π·Π° Rust, Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΈ Π½Π° всички ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с нСя Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми.

Π’Π΅Π΄ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° смята, Ρ‡Π΅ Π² ΠΎΠ±ΠΎΠ·Ρ€ΠΈΠΌΠΎ Π±ΡŠΠ΄Π΅Ρ‰Π΅ ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π° Π·Π° Rust Ρ‰Π΅ останС второстСпСнна ΠΈ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² Π±ΠΈΠ½Π΄ΠΈΠ½Π³Π° Ρ‰Π΅ бъдС досадСн ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ само Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Rust-for-Linux, Π° Π½Π΅ Π·Π° общността Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ систСми Π² ядрото. Π£ΠΊΠ°Π·Π²Π° сС, Ρ‡Π΅ Π½Π΅ всички Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚ Π΄Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Ρ‚ Rust ΠΈ слСдоватСлно, слСд внасянСто Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, влияСщи Π½Π° другия ΠΊΠΎΠ΄, Ρ‚Π΅ Ρ‰Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ само зависимия ΠΊΠΎΠ΄ Π½Π° Π‘ΠΈ, Π½ΠΎ Π½Π΅ ΠΈ Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‚ Rust ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈΡ‚Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½Π΅ знаят Rust. К дискусията сС ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΠΈ ΠΈ ДТСймс Π‘ΠΎΡ‚ΡŠΠΌΠ»ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ наблюдава ΠΏΠΎΠ΄ систСмата SCSI, ΠΊΠΎΠΉΡ‚ΠΎ заяви, Ρ‡Π΅ ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ сСмантика сС ΠΊΠΎΠ΄ΠΈΡ€Π° Π² ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈΡ‚Π΅, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-лСсно стават Ρ‚Π΅ уязвими ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° синхронизацията.

ΠœΠ΅ΠΆΠ΄ΡƒΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, компанията Google, която ΠΌΠΈΠ½Π°Π»Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° прСнаписа Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€Π° pvmfm Π½Π° Π΅Π·ΠΈΠΊΠ° Rust, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини, стартиращи Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Android, сподСлиха ΠΎΠΏΠΈΡ‚ Π·Π° постСпСнното Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° Rust Π² ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€ΠΈ, написани ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π½Π° C ΠΈΠ»ΠΈ C++. Показано Π΅ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС повиши сигурността Π½Π° Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€ΠΈΡ‚Π΅, ΠΊΠ°Ρ‚ΠΎ сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ ΠΏΠΎ функционалност замСстващи ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° Rust. ΠžΡΠ½ΠΎΠ²Π½ΠΎΡ‚ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ внСдряванСто Π½Π° Rust трябва Π΄Π° бъдС насочСно към ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ Π·Π° Π½ΠΎΠ² ΠΊΠΎΠ΄ ΠΈ ΠΊΠΎΠ΄, ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° бСзопасността (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° външни Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½ΠΈ ΠΎΡ‚ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ). Π—Π° интСграция Π½Π° ΠΊΠΎΠ΄ Π½Π° Rust ΠΈ C сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ прослойки (shim), ΠΊΠΎΠΈΡ‚ΠΎ трансформират извиквания ΠΌΠ΅ΠΆΠ΄Ρƒ API Π½Π° Rust ΠΈ C (C API сС Скспортира Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΊΠΎΠ΄ Π½Π° Rust ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ), ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΡΡ‚ΡŠΠΏΠΊΠ° ΠΏΠΎ ΡΡ‚ΡŠΠΏΠΊΠ° прСзаписванС Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° API Π½Π° Rust.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster