Эксперимент по разработке частей ядра Linux на языке Rust

4 июня 2017 года

Французский разработчик, действующий под псевдонимом Dominus Carnufex, на практике продемонстрировал реалистичность идей по переписыванию ядра Linux на языке Rust. В настоящее время Rust уже хорошо показал себя в качестве языка низкоуровневого системного программирования и даже существует несколько проектов по разработке новых операционных систем на языке Rust. Автор исследования относится к проектам по созданию новых ОС скептически, считая, что у них нет шансов на завоевание рынка. При этом, более реалистичным выглядит постепенная переработка ядра Linux на Rust, что позволило бы решить многие проблемы с безопасностью.

Чтобы не выглядеть голословным Dominus Carnufex подготовил рабочий прототип реализации интегрируемого в ядро системного вызова, код которого написан на языке Rust с ассемблерными вставками, оформленными в виде unsafe-блоков. Код компилируется при помощи rustc в объектные файлы, не привязанные к стандартной библиотеке и прикрепляемые к ядру во время сборки. Пример протестирован на ядре Linux 4.8.17, поставляемом в дистрибутиве Linux Mint.

Предоставленный пример может рассматриваться в качестве отправной точки для постепенного портирования различных системных вызовов ядра Linux на Rust. Интерес к Rust прежде всего вызван предоставляемыми языком возможностями по безопасному программированию, избавляющими от проблем, возникающих в Си из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Эксперимент по разработке частей ядра Linux на языке Rust», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.