Мнение на Грег Кроа-Хартман и Кейса Кука за популяризирането на Rust в ядрото на Linux

Грег Кроа-Хартман (Greg Kroah-Hartman), отговорник за поддръжка на стабилната версия на Linux ядро, изрази подкрепата си за разработката на нови компоненти на ядрото на Rust. Като човек, чрез когото преминава информацията за грешки и уязвимости в Linux ядрото през последните 15 години, той твърди, че повечето грешки в ядрото са причинени от особеностите на езика C, които не са взети под внимание (corner case), и които напълно ще бъдат избегнати в кода на езика Rust.

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

Старият код на C няма да изчезне, но за новия код и новите драйвери, внедряването на Rust ще повиши значително качеството. Внедряването на Rust също така ще позволи структурализиране на вътрешните програмни интерфейси на ядрото по начин, при който практически ще се изключат грешките при използването на вътрешното API — в ядрото е натрупано твърде много сложни и заплетени API, създаващи голямо натоварване на поддръжниците при проверката на правилното им използване. В процеса на развитие на Rust обвъжките, поддръжниците ще имат възможност да преосмислят и организират API, което ще бъде от полза за всички, включително и за тези, които използват езика C.

Грег не смята, че Rust е "сребърна куршума", която ще реши всичките проблеми в ядрото, но този език определено ще помогне в много ситуации. Поддръжката на Rust също така ще удовлетвори нуждите на разработчиците на драйвери, които се надяват да получат инструмент, позволяващ им да пишат код за своето оборудване, елиминирайки много типове грешки. Що се отнася до смесването на няколко езика, Грег не вижда голям проблем в това, според него, в миналото разработчиците на ядрото са се справяли и с по-сериозни задачи, и няма причина да се отказват от внедряването на нови добри идеи в ядрото, които ще помогнат за успеха на проекта в следващите 20+ години.

В дискуссии также принял участие Кейс Кук (Kees Cook), бывший главный системный администратор kernel.org и лидер команды по безопасности Ubuntu. Кейс уточнил, что речь идет не о переписывании уже существующего кода в ядре, а о возможности использования Rust для создания новых драйверов и подсистем. Применение Rust для нового кода позволит не только сократить количество ошибок, связанных с памятью, но и ускорить процесс разработки. Скорость разработки увеличивается благодаря снижению затрат на отладку и строгим гарантии языка, которые позволяют выявлять ошибки на ранних стадиях написания кода, еще до тестирования продукта.

Эффективность тактики использования Rust для улучшения качества нового кода уже была продемонстрирована Google на платформе Android. Показано, что главным источником проблем с безопасностью является новый код, и повышению его качества следует уделять первостепенное внимание. Для старого кода наблюдается экспоненциальная зависимость безопасности от времени (например, 5-летний код в среднем имеет в 3,4 раза меньшую плотность уязвимостей, чем новый код).

Източник: opennet.ru

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