Напрежението нараства в Linux заради включването на Rust

Rust за проблеми с Linux

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

Когато за първи път беше предложено да се интегрира Почивка и Linux, Много разработчици бяха развълнувани. След задълбочени прегледи и приемане на промяната от Линус Торвалдс, езикът беше включен във версията 6.1 на ядрото. Въпреки това имаше първоначални коментари, които бяха отхвърлени като „прости мнения“ по това време, но които сега се разглеждат като предупредителни знаци.

Тези коментари, които споменах Те се позовават на определени „обичаи“ така да се каже и основно Те споменаха, че ще има възможност за известна съпротива от разработчиците с въвеждането на нов език и това може да създаде "разделение" сред групата за разработка на Linux. За моя изненада, изглежда, че това се превръща в реалност.

В предишни дни Бяхме споделили тук в блога за дискусиите и проблемите които са възникнали в групата за разработка на Linux, включително мълчаливата оставка на Кристоф Хелвиг който изрази отказа си да поддържа пачове, които улесняват разработването на драйвери в Rust.

Малко след това, е проговорил отново и сега сподели мислите си Относно включването на обвивки на Rust в подсистемата DMA на ядрото на Linux. Хелуиг критикува правилата, предложени от проекта Rust за Linux, твърдейки, че те са безполезни, докато не бъдат приети и формализирани в официалната документация на ядрото с консенсус на общността.

Хелуиг посочва, че тези правила погрешно pпозволяват на поддържащите едностранно да вземат решение за включване на код Rust в неговите подсистеми, когато в частен разговор Линус Торвалдс изясни ангажимента си да приеме кода на Rust в ядрото, независимо от повдигнатите възражения.

Хелуиг използва поразителна аналогия, сравнявайки Rust wrappers с „раков тумор“, който ще се разпространи във всички подсистеми, причинявайки неконтролирана фрагментация. За него ядрото се развива на монолитно цяло към проект, написан на множество езици, без ясна насока кой да се използва и кога, което генерира постоянна нужда от пренаписване на код от един език на друг. Този сценарий, според Хелвиг, значително усложнява поддръжката и съгласуваността на системата.

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

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

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

От другата страна на монетата, привържениците на приемането на Rust в ядрото посочват вече известните потенциални предимства от писането на нов код в Rust: значително намаляване на риска от грешки в паметта, условия на състезание и определени логически грешки.

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

С една дума, дебатът за включването на Rust в ядрото на Linux отразява дълбоко напрежение между необходимостта от модернизиране и осигуряване на системата и риска от усложняване и фрагментиране на кодова база. Докато някои виждат Rust като решение на дългогодишни проблеми със сигурността и поддръжката, други, като Hellwig, предупреждават, че без ясен консенсус, смесването на множество езици може да доведе до неуправляем хаос в толкова критичен проект като ядрото.

Fuente: https://lore.kernel.org