ИзлизанС Π½Π° Rust 1.88. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма Munal ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° rsched Π½Π° Rust.

ΠžΠ±Π½Π°Ρ€ΠΎΠ΄Π²Π°Π½Π° Π΅ вСрсия 1.88 Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Rust, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΎΡ‚ Mozilla, Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΏΠΎΠ΄ ΠΎΠΏΠ΅ΠΊΠ°Ρ‚Π° Π½Π° нСзависимата нСправитСлствСна организация Rust Foundation. Π•Π·ΠΈΠΊΡŠΡ‚ Π΅ насочСн към бСзопасна Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ прСдоставя срСдства Π·Π° постиганС Π½Π° висок ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΡŠΠΌ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ, Π±Π΅Π· Π΄Π° изисква ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° сборник Π½Π° ΠΎΡ‚ΠΏΠ°Π΄ΡŠΡ†ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ runtime (runtime сС свСТда Π΄ΠΎ основна инициализация ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°).

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

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

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

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° няколко ΠΈΠ·Ρ€Π°Π·Π° β€žletβ€œ Π² Π±Π»ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ β€žifβ€œ ΠΈ β€žwhileβ€œ, ΠΊΠ°Ρ‚ΠΎ Π·Π° тяхното ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ β€ž&&β€œ (логичСско И). Π˜Π·Ρ€Π°Π·ΠΈΡ‚Π΅ β€žletβ€œ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚ с Π±ΡƒΠ»Π΅Π²ΠΈ условни ΠΈΠ·Ρ€Π°Π·ΠΈ. ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅, обявСни Π² let-ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² послСдващи условни ΠΈΠ·Ρ€Π°Π·ΠΈ, Π° ΡΡŠΡ‰ΠΎ ΠΈ Π² Π±Π»ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ β€žifβ€œ ΠΈ β€žwhileβ€œ. if let Channel::Stable(v) = release_info() && let Semver { major, minor, .. } = v && major == 1 && minor == 88 {
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° писанС Π½Π° β€žΠ³ΠΎΠ»ΠΈβ€œ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° β€ž#[unsafe(naked)]β€œ ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ СдинствСно ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° β€žnaked_asm!β€œ. ΠŸΡ€ΠΈ създадСни ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ΡΡŠΡΡ‚Π²Π° Π΅ΠΏΠΈΠ»ΠΎΠ³ ΠΈ ΠΏΡ€ΠΎΠ»ΠΎΠ³, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ компилятора, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° напълно Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° асСмблСрния ΠΊΠΎΠ΄, ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ΅Π½ към функцията (β€žΠ³ΠΎΠ»Π°Ρ‚Π°β€œ функция ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° само асСмблСрни инструкции, посочСни ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π° спСциални ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΈ Π²Ρ€ΡŠΡ‰Π°Π½ΠΈ стойности, добавяни ΠΎΡ‚ компилятора). β€žΠ“ΠΎΠ»ΠΈΡ‚Π΅β€œ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сС считат Π·Π° ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π½Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π² Π±Π»ΠΎΠΊΠ° β€žglobal_asm!β€œ. #[unsafe(naked)] pub unsafe extern β€žsysv64β€œ fn wrapping_add(a: u64, b: u64) -> u64 { core::arch::naked_asm!( β€žadd rax, rdi, rsiβ€œ, β€žretβ€œ ); }
  • Π’ Π΅Π·ΠΈΠΊΠ° ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΡ‚Π΅ Π·Π° условна компилация β€žcfgβ€œ ΠΈ β€žcfg_attrβ€œ (ΠΊΠΎΠΈΡ‚ΠΎ позволяват Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° части ΠΎΡ‚ ΠΊΠΎΠ΄Π° Π² зависимост ΠΎΡ‚ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ условия), Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π±ΡƒΠ»Π΅Π²ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΈ β€žtrueβ€œ ΠΈ β€žfalseβ€œ, ΠΊΠΎΠΈΡ‚ΠΎ отговарят Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ ΠΈΠ»ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ са ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ. Π’Π΅Π·ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΈ ΡΡŠΡ‰ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² макроса β€žcfg!β€œ ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ β€ž[target]β€œ Π² манифСститС ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° Cargo. Π˜Π·Ρ€Π°Π·ΠΈΡ‚Π΅ cfg(true) ΠΈ cfg(false) ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ вмСсто cfg(all()) ΠΈ cfg(any()) Π·Π° ΠΏΠΎ-ясно изразяванС Π½Π° намСрСнията си.
  • Π’ пакСтния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Cargo Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΡ‚ΠΎ стартиранС Π½Π° сборщика Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ Π·Π° почистванС Π½Π° кСша Π² Π΄ΠΎΠΌΠ°ΡˆΠ½Π°Ρ‚Π° дирСктория Π½Π° потрСбитСля. Π‘ΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½ΠΈΡ‚Π΅ ΠΏΠΎ-Ρ€Π°Π½ΠΎ Π² кСша ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ с ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ΠΈ зависимости Π½Π΅ сС почистват, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ постоянно нарастванС Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° дисково пространство. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Ρ‰Π΅ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ΠΈΡ‚Π΅ извън crate Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, към ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ Π΅ ΠΈΠΌΠ°Π»ΠΎ обращСния ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 3 мСсСца, ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ инсталиранитС crate Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, към ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ Π΅ ΠΈΠΌΠ°Π»ΠΎ обращСния ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ мСсСц. ΠŸΠΎΡ‡ΠΈΡΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° кСша Π½Π΅ стартира ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Β«β€”offlineΒ» ΠΈΠ»ΠΈ Β«β€”frozenΒ» Π² crage.
  • Π’ катСгорията стабилни Π΅ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½Π° Π½ΠΎΠ²Π° порция API, ΠΊΠ°Ρ‚ΠΎ са стабилизирани ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΈΠΏΠ°ΠΆΠΈΡ‚Π΅:
    • Cell::update
    • impl Default for *const T
    • impl Default for *mut T
    • mod ffi::c_str
    • HashMap::extract_if
    • HashSet::extract_if
    • hint::select_unpredictable
    • proc_macro::Span::line
    • proc_macro::Span::column
    • proc_macro::Span::start
    • proc_macro::Span::end
    • proc_macro::Span::file
    • proc_macro::Span::local_file
    • ::as_chunks
    • ::as_rchunks
    • ::as_chunks_unchecked
    • ::as_chunks_mut
    • ::as_rchunks_mut
    • ::as_chunks_unchecked_mut
  • ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ Β«constΒ» Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅:
    • NonNull::replace
    • ::replace
    • std::ptr::swap_nonoverlapping
    • Cell::replace
    • Cell::get
    • Cell::get_mut
    • Cell::from_mut
    • Cell::as_slice_of_cells
  • ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ Π΅ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ слой Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ†Π΅Π»Π΅Π²Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° i686-pc-windows-gnu.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ с Rust ΡΡŠΠ±ΠΈΡ‚ΠΈΡ:

  • ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Munal OS Ρ€Π°Π·Π²ΠΈΠ²Π° СкспСримСнтална ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма, написана Π½Π° Rust ΠΈ основана Π½Π° концСпцията unikernel. Π’ Munal OS Π½Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π° вытСсняваща многозадачност, ΠΌΠ°ΠΏΠΈΠ½Π³ Π½Π° страници ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΎ адрСсно пространство (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС ΠΏΠΎΠ΄Ρ€Π΅Π΄Π±Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΎΡ‚ UEFI). Π―Π΄Ρ€ΠΎΡ‚ΠΎ ΠΈ прилоТСнията сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π² Π΅Π΄Π½ΠΎ адрСсно пространство с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π» Π·Π° сигурност Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° изолацията Π½Π° WASM (Π²ΠΊΠ»ΡŽΡ‡Π²Π° сС Π΄Π²ΠΈΠΆΠΊΠ° wasmi Π·Π° стартиранС Π½Π° прилоТСния ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ° Π½Π° Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ WebAssembly).

    ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Π΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π° с Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ интСрфСйс ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‡Ρ€Π΅Π· ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΈ мишка. Π—Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ прилоТСния сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° собствСн Ρ‚ΡƒΠ»ΠΊΠΈΡ‚ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΈ. Π—Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚ сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ TCP стСк ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎ устройство. Π‘Ρ€Π΅Π΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π·Π° Munal OS, са: ΡƒΠ΅Π± Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ с основна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° HTML ΠΈ HTTPS, тСкстов Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π·Π° изпълнСниС Π½Π° ΠΊΠΎΠ΄ Π½Π° Python. ΠšΠΎΠ΄ΡŠΡ‚ Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΏΠΎΠ΄ лицСнцията MIT.

    ИзлизанС Π½Π° Rust 1.88. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма Munal ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° rsched Π½Π° Rust.
  • Π‘ΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ядрото Asterinas 0.15.2, написано Π½Π° Rust, прСдоставящо ABI, ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎ с ядрото Π½Π° Linux. Π―Π΄Ρ€ΠΎΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ x86-64 ΠΈ RISC-V ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° 206 ΠΎΡ‚ 368 систСмни извиквания Π½Π° Linux. Π’ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ядрото участват 45 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, основно ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ китайски унивСрситСти. Π―Π΄Ρ€ΠΎΡ‚ΠΎ Π΅ построСно с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° β€žframekernelβ€œ, Π² която ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° ядрото са Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² ΠΎΠ±Ρ‰ΠΎ адрСсно пространство, Π° бСзопасността сС постига Π½Π° Π½ΠΈΠ²ΠΎ логичСско Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ бСзопасСн ΠΊΠΎΠ΄ ΠΈ ΠΊΠΎΠ΄, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π΅ възмоТно Π΄Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с бСзопасността. Всички систСмни извиквания, Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ Π½Π° Π½ΠΈΠ²ΠΎ OS Services ΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ unsafe Π±Π»ΠΎΠΊΠΎΠ²Π΅. ΠšΠΎΠ΄ΡŠΡ‚ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· MPL 2.0.
  • Π—Π° ядрото Π½Π° Linux Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° rsched, позволяваща Π΄Π° сС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° статистиката Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΠ° Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ‚Π°, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° позволява Π΄Π° сС оцСняват Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π½Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΠ°, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с прСдоставянСто Π½Π° рСсурси Π½Π° процСситС, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π΄Π° сС прослСдяват Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‰ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π΅ закъснСния. Π—Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ядрото сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° подсистСма BPF, Π° работСщият Π² пространството Π½Π° потрСбитСля инструмСнтариум Π΅ написан Π½Π° Rust. Автор Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° Π΅ ΠšΡ€ΠΈΡ МСйсън (Chris Mason), ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π»ΡΡ‚ ΠΈ главният Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма Btrfs.
  • ΠšΠΎΠΌΠΏΠ°Π½ΠΈΡΡ‚Π° Collabora ΡΡŠΠΎΠ±Ρ‰ΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° инструмСнтариума Coccinelle Π·Π° Π΅Π·ΠΈΠΊΠ° Rust. Coccinelle ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° автоматизация Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° Π΅Π·ΠΈΠΊΠ° C Π² ядрото Π½Π° Linux. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½ΠΈΡΡ‚Π° сС Π·Π°Π΄Π°Π²Π°Ρ‚ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°, наподобяващи абстрактни ΠΏΠ°Ρ‡ΠΎΠ²Π΅, Π½Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ място Π² ΠΊΠΎΠ΄Π°.
  • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° GNOME прСдставиха Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° изобраТСния glycin, написана Π½Π° Π΅Π·ΠΈΠΊΠ° Rust ΠΈ осигуряваща Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° изобраТСния с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° sandbox изолация. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС ΠΎΡ‚Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Ρ‡Ρ€Π΅Π· gdk::Textures ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡΡ‚ сС ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° glycin Π² GTK4, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° внСдряванС Π½Π° glycin Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° GdkPixbuf, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π² GNOME Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° изобраТСния. Glycin Π²Π΅Ρ‡Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΡ€ΠΎΠ³Π»Π΅Π΄Π°Ρ‡Π° Π½Π° изобраТСния Loupe, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π½ Π² GNOME ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π±Π΅ΠΊΠ΅Π½Π΄ΡŠΡ‚ Π·Π° GdkPixbuf Π΄Π°Π²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° glycin Π² GNOME Shell, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€ΠΈ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ прилоТСния Π½Π° GNOME, Π±Π΅Π· Π΄Π° сС правят ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² тях.

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

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