Ръждата не беше освободена от критиките на Линус Торвалдс

Преди няколко седмици новините за около някои реализации, които са направени в linux-next клон, който включва първоначален набор от компоненти за разработване на драйвери за устройства на езика Ръжда.

Тази документация беше публикувана отделно за използването на Rust в ядрото на Linux и пример за модул на ядрото с символен драйвер на устройство на езика Rust. Кодът е добавен от Стивън Ротуел, поддържащ клона.

След това Линус Торвалдс прегледа прегледа на изпълнението кръпка от възможности за задаване на драйвери за език Rust в ядрото на Linux и изрази известна критика.

Най-големите оплаквания бяха причинени от потенциалът за бягство "Паника при неуспешно изпълнение" при грешни ситуации, например в ситуация без памет, когато операциите за динамично разпределение на паметта, включително операции на ядрото, могат да се провалят.

Торвалдс заяви, че такъв фокус върху ядрото е фундаментално неприемлив, И ако не разбирате тази точка, можете напълно да отхвърлите всеки код, който се опитва да използва такъв подход. От друга страна, разработчикът на пластира се съгласи с проблема и го счете за разрешим.

Друг проблем са опитите да се използват типове с плаваща запетая или 128 бита, които не са валидни за среди като ядрото на Linux.

Може да не разбирате последиците от това кога може да се случи, така че може би
е по-малък проблем, отколкото мисля, че е, но в основата си
Мисля, че ако картографирането на ръжда може да предизвика паника, това е просто
_ принципно_ не е приемливо.

Картиране на грешки в не-ядрен контролер или код, а именно за
дефиниция, всички нови кодове на Rust, никога НИКОГА не могат да причинят
паника валидно. Същото важи и за «ох, в някои случаи не опитах използването на
128-битови цели числа или плаваща запетая '.

Така че, ако компилаторът Rust причинява скрити задания, които не могат да бъдат
откривам и връщам като грешки, тогава сериозно вярвам, че всичко това
подходът трябва да бъде напълно NAK'ed, а Rust инфраструктурата,
или на ниво компилатор, или в обвивките на ядрото, имате нужда от повече
работа.

Това се оказа по-сериозен проблем., тъй като в този момент Централната библиотека на Ръжда е неделима и представлява голямо петно; няма начин да поискате само някои от функциите, като по този начин се избягва използването на една или друга проблемна функционалност.

Решаването на проблема може да изисква промени в компилатора на ръжда и библиотеката, въпреки че екипът все още няма стратегия за това как да внедри модулност за езикови библиотеки.

Освен това, Торвалдс посочи, че предоставеният примерен контролер е безполезен и препоръча да се приложи като пример драйвер, който решава един от истинските проблеми.

Преди това Google обяви участието си в инициатива за насърчаване на поддръжката на Rust в ядрото на Linux y предоставени технически аспекти на възможността за прилагане на Rust за борба с проблеми, които възникват от грешки в работата с паметта.

Google смята, че Rust е готов да се присъедини към C като език за разработка Компоненти на ядрото на Linux. Статията също така предоставя примери за използване на езика Rust за разработване на драйвери на ядрото, в контекста на използването му на платформата Android (Rust е признат като официално поддържан език за разработка на Android).

Трябва да се отбележи това Google е подготвил първоначален прототип на контролер, написан на Rust за междупроцесния комуникационен механизъм на Binder, който ще позволи подробно сравнение на производителността и сигурността на реализациите на Binder в C и Rust.

В сегашния си вид работата все още не е завършена, но за почти всички основни абстракции на функционалността на ядрото, необходими за работата на Binder, са подготвени слоеве за използване на тези абстракции в кода на Rust.

И накрая, ако искате да научите повече за това, можете да проверите подробностите В следващия линк.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Мигел Родригес каза той

    Всички техни критики са валидни, като се има предвид, че Rust е нов език, който работи с парадигма, различна от тази на C, разбираемо е притеснението относно всеки детайл в библиотеките или в самия компилатор, където, въпреки че кодът е валиден, той причинява ядрото също да се счупи.как се прилага и изгражда. Ето защо предложения като възможността да модулирате библиотеката да извиква и поддържа активна само функциите, необходими за програмата (или в този случай за всеки контролер) работят правилно. Не е неразумно и това, което искате, да ви донесат реален прототип на контролер, който върши добра работа по текущ проблем (или поне върши същата работа като съществуващ в ядрото и работи без паника).

  2.   Sete каза той

    От време на време препрочитам статии от Linux Adictos Но ми отнема много малко време, за да се отчая, когато видя, че въпреки много добро съдържание, крайният резултат е унищожен с ужасен правопис.
    Дали правописът и граматиката ще бъдат толкова трудни?
    Срам!
    Горе главата!