Π’Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π·Π° ядрото Π½Π° Linux с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Rust

МигСл ΠžΡ…Π΅Π΄Π°, Π°Π²Ρ‚ΠΎΡ€ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Rust-for-Linux, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈ Ρ‚Ρ€Π΅Ρ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Π° опция Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ Π½Π° устройства Π½Π° Π΅Π·ΠΈΠΊΠ° Rust, която Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ядрото Π½Π° Linux Π΄Π° обмислят. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Rust сС счита Π·Π° СкспСримСнтална, Π½ΠΎ Π²Π΅Ρ‡Π΅ Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π° Π·Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π² linux-next ΠΊΠ»ΠΎΠ½Π°. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π΅ финансирана ΠΎΡ‚ Google ΠΈ ISRG (Internet Security Research Group), която Π΅ основатСл Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Let's Encrypt ΠΈ Π½Π°ΡΡŠΡ€Ρ‡Π°Π²Π° HTTPS ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° подобряванС Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ сигурността.

Π‘ΠΏΠΎΠΌΠ½Π΅Ρ‚Π΅ си, Ρ‡Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ правят възмоТно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Rust ΠΊΠ°Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΈ Π΅Π·ΠΈΠΊ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° ядрото. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Rust Π΅ прСдставСна ΠΊΠ°Ρ‚ΠΎ опция, която Π½Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ Π½Π΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Rust срСд Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ зависимости Π·Π° компилация Π·Π° ядрото. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Rust Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΠΎ-бСзопасни ΠΈ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ усилия, Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ област Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, слСд ΠΊΠ°Ρ‚ΠΎ Π΅ освободСна, Π΄Π΅Ρ€Π΅Ρ„Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€.

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

Новата вСрсия Π½Π° ΠΏΠ°Ρ‡ΠΎΠ²Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π° ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΎΠ±ΡΡŠΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° ΠΈ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° вСрсия Π½Π° ΠΏΠ°Ρ‡ΠΎΠ²Π΅Ρ‚Π΅. Най-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π‘Π΅ΡˆΠ΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ ΠΏΡ€Π΅Ρ…ΠΎΠ΄ към ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° стабилната вСрсия Π½Π° Rust 1.57 ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ ΠΈ бСшС прСдоставСна Π²Ρ€ΡŠΠ·ΠΊΠ° към стабилизираното ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust 2021. ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅ бяха ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Π±Π΅Ρ‚Π° ΠΊΠ»ΠΎΠ½Π° Π½Π° Rust ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…Π° някои Π΅Π·ΠΈΠΊΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ бяха класифицирани ΠΊΠ°Ρ‚ΠΎ нСстабилни. ΠŸΡ€Π΅Ρ…ΠΎΠ΄ΡŠΡ‚ към спСцификацията Rust 2021 Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° нСстабилни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΠ°Ρ‡ΠΎΠ²Π΅ ΠΊΠ°Ρ‚ΠΎ const_fn_transmute, const_panic, const_unavailable_unchecked ΠΈ core_panic ΠΈ try_reserve.
  • Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° вСрсията Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Rust, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² ΠΊΡ€ΡŠΠΏΠΊΠΈΡ‚Π΅, ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π°, Π·Π° Π΄Π° освободи Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΎΡ‚ възмоТно Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° β€žΠΏΠ°Π½ΠΈΠΊΠ°β€œ ΠΏΡ€ΠΈ възникванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠ°Ρ‚ΠΎ липса Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚. Новата вСрсия ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ β€žno_rcβ€œ ΠΈ β€žno_syncβ€œ, Π·Π° Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° функционалност, която Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΊΠΎΠ΄Π° Π½Π° Rust Π½Π° ядрото, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΏΠΎ-ΠΌΠΎΠ΄ΡƒΠ»Π½Π°. ΠŸΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с основнитС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° alloc, насочСни към ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ядрото, Π² основната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. ΠžΠΏΡ†ΠΈΡΡ‚Π° β€žno_fp_fmt_parseβ€œ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π½Π° Π½ΠΈΠ²ΠΎ ядро, Π΅ прСмСстСна Π² Π±Π°Π·ΠΎΠ²Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Rust (ядро).
  • ΠšΠΎΠ΄ΡŠΡ‚ Π΅ изчистСн, Π·Π° Π΄Π° сС ΠΎΡ‚ΡŠΡ€Π²Π΅ ΠΎΡ‚ възмоТни прСдупрСТдСния Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ядрото Π² Ρ€Π΅ΠΆΠΈΠΌ CONFIG_WERROR. ΠŸΡ€ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π² Rust са Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠΈ Π·Π° диагностика Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° ΠΈ Clippy linter прСдупрСТдСния.
  • АбстракциитС са ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΊΠΎΠ΄Π° Π½Π° Rust Π·Π° seqlocks (Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° послСдоватСлност), повиквания Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Ρ…Ρ€Π°Π½Π²Π°Π½Π΅Ρ‚ΠΎ, I/O ΠΏΠ°ΠΌΠ΅Ρ‚ (readX/writeX), ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½ΠΈΡ ΠΈ нишки, GPIO, Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ устройства, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ.
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ са Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ, Π·Π° Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ прСмСстваСми ΠΌΡŽΡ‚Π΅ΠΊΡΠΈ, Π±ΠΈΡ‚ΠΎΠ²ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, опростСни ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° диагностика Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ нСзависима ΠΎΡ‚ шина Π·Π° Π΄Π°Π½Π½ΠΈ инфраструктура.
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π²Ρ€ΡŠΠ·ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° опростСн Ρ‚ΠΈΠΏ Ref, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° refcount_t, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° API Π½Π° ядрото със ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ Π·Π° прСброяванС Π½Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Arc ΠΈ Rc, прСдоставСна Π² стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π° ΠΈ Π½Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π² ΠΊΠΎΠ΄, изпълняван Π½Π° Π½ΠΈΠ²ΠΎ ядро ​​(ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ са ΠΎΠΏΡ†ΠΈΠΈ Π·Π° самата Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚ Ρ‚Π΅Π·ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅).
  • ΠŸΠ°Ρ‡ΠΎΠ²Π΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ вСрсия Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° PL061 GPIO, прСнаписан Π½Π° Rust. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»Π½Π° характСристика Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π΅, Ρ‡Π΅ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° рСализация ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ€Π΅Π΄ ΠΏΠΎ Ρ€Π΅Π΄ повтаря ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ GPIO Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π½Π° Π΅Π·ΠΈΠΊΠ° C. Π—Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ искат Π΄Π° сС запознаят със ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ Π² Rust, Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΎ сравнСниС Ρ€Π΅Π΄ ΠΏΠΎ Ρ€Π΅Π΄, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌ позволява Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π°Ρ‚ Π² ΠΊΠΎΠΈ конструкции Π² Rust сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° C ΠΊΠΎΠ΄ΡŠΡ‚.
  • ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° Π½Π° Rust Π΅ ΠΏΡ€ΠΈΠ΅Π»Π° rustc_codegen_gcc, rustc Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° GCC, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π° компилация ΠΏΡ€Π΅Π΄ΠΈ Π²Ρ€Π΅ΠΌΠ΅ (AOT) с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° libgccjit. Π‘ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎΡ‚ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°, Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΡŠΠ±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠΎΠ΄Π° Π½Π° Rust, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ядрото, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ GCC.
  • Π’ допълнСниС към ARM, Google ΠΈ Microsoft, Red Hat ΠΈΠ·Ρ€Π°Π·ΠΈ интСрСс към ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust Π² ядрото Π½Π° Linux. НСка ΠΏΡ€ΠΈΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Π΅ Google Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ осигурява ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Rust Π·Π° Linux, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° Π½ΠΎΠ²Π° рСализация Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° мСТдупроцСсна комуникация Binder Π² Rust ΠΈ обмисля Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ Π² Rust. Microsoft Π·Π°ΠΏΠΎΡ‡Π½Π° внСдряванСто Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ Π·Π° Hyper-V Π² Rust. ARM Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π° подобряванС Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Rust Π·Π° систСми, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ARM. IBM Π²Π½Π΅Π΄Ρ€ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Rust Π² ядрото Π·Π° PowerPC систСми.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€