Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ связанныС с Rust измСнСния Π² ΠΎΠ±Ρ…ΠΎΠ΄ мэйнтСйнСров

ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ Π₯Π΅Π»Π²ΠΈΠ³ (Christoph Hellwig), мэйнтСйнСр подсистСм DMA, KVM, Slab Allocator ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ PowerPC Π² ядрС Linux, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π°Π²ΡˆΠΈΠΉΡΡ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² ядро Rust-обвязки для подсистСмы DMA, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΏΡ€Π°Π²ΠΈΠ» сопровоТдСния Rust Π² составС ядра, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Rust for Linux. По мнСнию ΠšΡ€ΠΈΡΡ‚ΠΎΡ„Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° бСсполСзны, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ согласованы с сообщСством ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊ ядру.

ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ» Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… ΡƒΠΊΠ°Π·Π°Π½Π° нСкоррСктная информация ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ мэйнтСйнСры ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π² ΠΈΡ… подсистСмы ΠΊΠΎΠ΄Π°, связанного с Rust. По словам ΠšΡ€ΠΈΡΡ‚ΠΎΡ„Π°, Π² Π»ΠΈΡ‡Π½ΠΎΠΉ бСсСдС Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄ заявил, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚Π²Ρ‘Ρ€Π΄ΠΎ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π² ядро Rust-ΠΊΠΎΠ΄, нСсмотря Π½Π° возраТСния мэйнтСйнСров. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ мэйнтСйнСрам ядра Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ придётся ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с Rust, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, хотят ΠΎΠ½ΠΈ этого ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ сравнил распространСниС Rust-обвязок с Ρ€Π°ΠΊΠΎΠ²ΠΎΠΉ ΠΎΠΏΡƒΡ…ΠΎΠ»ΡŒΡŽ, которая расползётся Π½Π° всС подсистСмы ядра ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Из Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ ядро прСвращаСтся Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, написанный Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языках, Π±Π΅Π· Ρ‡Ρ‘Ρ‚ΠΊΠΎΠ³ΠΎ опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ язык Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. По словам ΠšΡ€ΠΈΡΡ‚ΠΎΡ„Π°, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ смСшанной ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π° стала для Π½Π΅Π³ΠΎ Ρ…ΡƒΠ΄ΡˆΠΈΠΌ ΠΊΠΎΡˆΠΌΠ°Ρ€ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… условиях постоянно происходит пСрСписываниС ΠΊΠΎΠ΄Π° с ΠΎΠ΄Π½ΠΎΠ³ΠΎ языка Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

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

Π§Ρ‚ΠΎ касаСтся сторонников внСдрСния Rust Π² ядро, Ρ‚ΠΎ ΠΈΠΌΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ†Π΅Π»ΠΈ:

  • НаписаниС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° языкС Rust снизит риск ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ состояний Π³ΠΎΠ½ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ логичСскиС ошибки.
  • ΠœΡΠΉΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π΅Ρ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ, прСдоставляСмых языком Rust.
  • НаличиС абстракций, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ возмоТности языка Rust, упростит созданиС Π½ΠΎΠ²Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° соврСмСнного языка ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Ρ‘Ρ‚ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ядра Π½ΠΎΠ²Ρ‹Ρ… участников.
  • ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ возмоТностСй инструмСнтария Rust упростит Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°. НапримСр, Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Rust for Linux Π²Π²Π΅Π΄Π΅Π½ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… API, Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ бСзопасности, unsafe-Π±Π»ΠΎΠΊΠΎΠ² ΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠΎΠ².

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

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