ΠΠΈΠ³Π΅Π» ΠΡ Π΅Π΄Π°, Π°Π²ΡΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° 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