Линус Торвалдс планира да включи свързани с 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

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster