Логотип

GRUB пробует вкус Rust с новым прототипом

GRUB пробует вкус Rust с новым прототипом

Нет сомнений, что язык программирования Rust набирает серьезные обороты в мире открытого исходного кода. Мы видим, как все больше и больше проектов принимают его — например, COSMIC desktop environment от System76 , которая полностью построена на Rust, и Fish Shell 4.

Rust даже начал проникать в ядро ​​Linux. Ubuntu недавно также объявила о планах заменить GNU Coreutils на альтернативу на основе Rust в предстоящем релизе 25.10. И теперь еще один важный компонент экосистемы Linux присоединяется к движению Rust: культовый загрузчик GRUB.

Один из ведущих разработчиков, Владимир Сербиненко, начал экспериментировать с интеграцией кода Rust в GRUB. Его первоначальная работа доступна в двух репозиториях GitHub: один посвящен простому модулю Rust «hello world» для GRUB, а другой содержит соответствующие изменения в самом GRUB.

Эксперимент Сербиненко сосредоточен на платформе i386-pc — понятная отправная точка, поскольку порт GRUB i386-pc исторически был более широко используемой конфигурацией. Однако он подчеркивает, что нет никакого внутреннего технического барьера, препятствующего интеграции Rust в другие архитектуры.

На данный момент реализован только i386-pc, но это не технический предел, просто другие пока не реализованы.

 

Интересно, что Сербиненко переключил модули GRUB с использования .oдвоичных файлов ET_REL ( ) на .soдвоичные файлы ET_DYN ( ). Такой подход позволяет модулям на основе Rust функционировать более естественно в тандеме с существующей инфраструктурой GRUB.

Еще одна техническая деталь, заслуживающая внимания, — это решение компилировать с помощью panic=abort. Для устранения паник потребовалось бы реализовать rust_eh_personality, что не было рассмотрено в этом раннем прототипе.

На практике это ограничение означает, что паники Rust не распространяются корректно через среду GRUB, поэтому код полагается на прерывание выполнения при возникновении серьезной ошибки.

Читать  Как открыть меню GRUB в виртуальной машине: подробное руководство

Как и ожидалось, не все разработчики полностью согласны с переносом Rust в GRUB. В ответ на объявление другой разработчик, Максим Фомин, поделился некоторыми опасениями по поводу этого перехода:

Я нашел показательным, что пост о внедрении Rust в проект не содержит никаких технических обсуждений о достоинствах этого. Это согласуется с критикой Rust, что внедрение Rust в проект часто вызвано желанием программистов похвастаться («я/проект крутые, потому что в них есть Rust»), а не техническими достоинствами.

 

Однако большинство отзывов были положительными, и многие разработчики ожидали, что внедрение Rust в GRUB повысит надежность программного обеспечения.

Напоминаем, что аудит, проведенный еще в феврале, выявил список уязвимостей в коде GRUB, многие из которых были связаны с управлением памятью. Это именно тот тип проблем, которые Rust призван предотвращать по умолчанию.

Более подробную информацию можно найти в объявлении Сербиненко.

Редактор: AndreyEx

Рейтинг: 4 (1 голос)
Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

18 − 13 =

Это может быть вам интересно


Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала