Спецпроекты

ПО Свободное ПО Софт Безопасность Стратегия безопасности Техника

«Всех не переучите»: Программисты-староверы из числа разработчиков Linux вцепились зубами в C/C++ и ни в какую не хотят переходить на Rust

Некоторые участвующие в разработке ядра Linux специалисты наотрез отказались отказываться от использования языков C и C++ и переходить на более современный и гораздо более безопасный Rust. В сообществе разработчиков едва ли не раскол – многие «староверы» не желают писать на Rust, несмотря на то, что Google всячески поощряет переход на новый язык.

Вы кто такие? Мы вас не звали

Разработчики ПО на языках программирования C и C++, как выяснилось, очень негативно относятся к переходу на более современный и типобезопасный Rust, пишет The Register. Этот язык стремительно набирает популярность, он гораздо новее C/C++, которые старше многих программистов, пишущих на нем, и в нем, в отличие от C/C++, отсутствуют уязвимости, которые приводят к ошибкам памяти.

Против перехода на Rust в проектах, которые длительное время, иногда целыми десятилетиями, писались на C/C++, выступают очень многие разработчики. Среди них и те, от чьих действий зависят десятки миллионов человек по всему миру. Речь в данном случае о специалистов из комьюнити разработчиков ядра Linux и пользователей этой ОС – последних, как сообщал CNews, с каждой неделей становится все больше.

Безопасность кода зависит от многих факторов, в том числе и языка, на котором он написан

«Видите ли в чем дело: вы не заставите нас всех изучать Rust» (Here's the thing, you're not going to force all of us to learn Rust), — сказал один из разработчиков ядра Linux во время оживленной дискуссии на профильной конференции в начале 2024 г.

Ситуация не улучшается, но Google старается

Как пишет The Register, очень нелегко заставить разработчиков C и C++ «смотреть на мир через призму Rust» (to see the world with Rust-tinted lenses). Например, в начале сентября 2024 г. один из ключевых участников проекта по переводу ядра Linux на Rust для Linux, ушел в отставку, сославшись, в числе прочего, на сопротивление разработчиков ядра Linux к переходу на Rust.

Между тем, именно из-за использования языка С в ядре Linux скопилось немало дыр. На это еще в 2021 г. указали другие разработчики ядра.

На то, что пора отказываться от С в пользу Rust напирает и интернет-гигант Google. На днях он переписал софт для виртуальных машин в Android Virtualization Framework с использованием Rust и теперь выпускает цикл статей, в которой нахваливает этот язык.

Авторы материалов подробно разбирают технические детали замены устаревшего кода C и C++ на Rust. В одной из статей цикла написано: «Вы увидите, как легко повысить безопасность с помощью готовых замен Rust, и мы даже продемонстрируем, как набор инструментов Rust может работать со специализированными целями».

В статьях несколько раз упоминается то, что Rust безопаснее С и С++. По мнению авторов, Rust предоставляет способ избежать попадания в код ошибок безопасности памяти, включая переполнение буфера и использование после освобождения. «Rust предоставляет безопасную для памяти альтернативу C и C++ с сопоставимой производительностью и размером кода. Кроме того, он поддерживает взаимодействие с C без дополнительных сложностей», – отмечено в статье.

«Мы признаем важную роль Rust в создании безопасного и надежного программного обеспечения на всех уровнях стека, – сказал Ларс Бергстром (Lars Bergstrom), директор по инжинирингу языков программирования Android в Google и председатель совета директоров Rust Foundation. – В Google мы наращиваем использование Rust в Android, Chromium и других системах, чтобы уменьшить количество уязвимостей безопасности памяти. Мы нацелены на сотрудничество с экосистемой Rust, чтобы способствовать ее внедрению и предоставить разработчикам ресурсы и обучение, необходимые для успеха. Эта работа по внедрению Rust во встроенные и встроенные системы затрагивает еще одну важную часть стека».

Также Google уже наглядно доказал преимущество Rust над С и С++. В апреле 2024 г. CNews писал, что интернет-гигант зафиксировал едва ли не двукратный рост продуктивности разработчиков, пишущих на Rust, в сравнении с их коллегами, предпочитающими С и С++.

Правительство тоже на стороне прогресса

Правительство США в последнее время усиленно работает переходом на Rust. При поддержке ведущих технологических фирм и некоммерческих инициатив оно занимается переписыванием критических проектов и компонентов с открытым исходным кодом на Rust. Свидетельством тому служит, в частности, прошлогодняя рекомендация Агентства по кибербезопасности и защите инфраструктуры (Cybersecurity & Infrastructure Security Agency, CISA) о том, что поставщики программного обеспечения «ставят перед собой цель высшего уровня – сократить и в конечном итоге устранить уязвимости безопасности памяти в своих линейках продуктов».

Есть и другой, еще более наглядный пример. В начале августа 2024 г. Управление перспективных исследовательских проектов Министерства обороны США (DARPA), создатель прототипа интернета, запустило проект по переносу устаревшего и небезопасного кода, написанного на языке программирования C, на Rust. Ведомство весьма серьезно обеспокоено «дырявостью» используемого им старого написанного на С программного обеспечения.

Чтобы упростить задачу по переходу, ведомство намерено разработать инструменты для автоматизации перевода кода на С на код, написанный на языке Rust. Подобные инструменты уже существуют – в августе 2023 г. IBM создала специальный сервис, который переводит код программ, написанных на древнем языке программирования COBOL, на относительно современный и очень популярный во всем мире Java.

Геннадий Ефремов

Короткая ссылка