ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Rust ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° ΠΈΠ· ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π² основныС возмоТности ядра Linux

На проходящСй Π² эти Π΄Π½ΠΈ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Maintainers Summit ΡΠΎΡΡ‚ΠΎΡΠ»ΠΎΡΡŒ обсуТдСниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² экспСримСнта ΠΏΠΎ добавлСнию Π² ядро Linux возмоТности Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° языкС Rust. Π‘ΠΎΠ±Ρ€Π°Π²ΡˆΠΈΠ΅ΡΡ участники ΠΏΡ€ΠΈΠ·Π½Π°Π»ΠΈ экспСримСнт ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ ΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ пСрСвСсти ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ языка Rust Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ основных частСй ядра, сняв с Π½Π΅Ρ‘ ΠΌΠ΅Ρ‚ΠΊΡƒ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’Ρ€ΠΈ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π½Π° языкС Rust Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² ядро 6.1. Π’ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ Π² состав ядра Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ абстракции для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Rust Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² для GPU, Π€Π‘, Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств, сСтСвых Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ² ΠΈ USB-устройств. На языкС Rust развиваСтся Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Nova для GPU NVIDIA, asahi для GPU Apple AGX, Tyr для GPU ARM Mali, rust_ext2 c Π€Π‘ Ext2. Π’ состав ядра принята написанная Π½Π° Rust рСализация IPC Binder. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ RROS Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ real-time подсистСму для ядра Linux, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° Rust. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Rust Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Rust Π² число ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сборочных зависимостСй ΠΊ ядру.

По мнСнию сторонников продвиТСния Rust, Π΄Π°Π½Π½Ρ‹ΠΉ язык ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ появлСниС Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ошибок, выявляСмых Π² ядрС ΠΈ Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… особСнностями языка Π‘ΠΈ (corner case), Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΈ Ρ€Π΅Ρ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° логичСских ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ состояниях Π³ΠΎΠ½ΠΊΠΈ. Rust ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ памяти послС Π΅Ρ‘ освобоТдСния, Π²Ρ‹Ρ…ΠΎΠ΄ Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π±ΡƒΡ„Π΅Ρ€Π°, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ освобоТдСниС рСсурсов ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ошибок ΠΈ Π·Π°Π±Ρ‹Ρ‚Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² ошибок. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Rust для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, благодаря сниТСнию Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚ Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ Π² языкС строгих Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ, Π²Ρ‹ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ… ошибки Π½Π° Ρ€Π°Π½Π½Π΅ΠΉ стадии написания ΠΊΠΎΠ΄Π°.

ΠŸΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠΈ внСдрСния Rust Π² ядро ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ нСдопустимым использованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языков программирования Π² слоТных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… β€” ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Π±Π°Π·Ρ‹ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ мэйнтСйнСров, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ставят ΠΈΡ… Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠ΄Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС. НапримСр, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ обвязок Π½Π° Rust Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ подсистСм, написанных Π½Π° Π‘ΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ влияниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ работоспособности обвязок.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ