Kerla: новое ядро, написанное на Rust и совместимое с Linux ABI

Недавно появилась информация о проекте Kerla, который разрабатывается как ядро ​​операционной системы, написанное на языке Rust. Код распространяется под лицензиями Apache 2.0 и MIT. Проект разрабатывает японский разработчик Сейя Нута, известный создателем микроядерной операционной системы Resea, написанной на языке C.

Новое ядро ​​изначально нацелено на обеспечить совместимость с ядром Linux на уровне ABI, что позволит немодифицированным двоичным файлам, созданным для Linux, работать в среде на основе Kerla.

О Керале

Kerla - это монолитное ядро ​​операционной системы. создан с нуля на Rust. На текущем этапе разработки Kerla может работать только в системах с архитектурой x86_64 и реализует базовые системные вызовы, такие как write, stat, mmap, pipe и poll, поддерживает сигналы, безымянные каналы и переключение контекста. Такие вызовы, как fork, wait4 и execve, обеспечивают управление процессами. Есть поддержка tty и псевдотерминалов (pty). Среди файловых систем initramfs (используемых для монтирования корневой файловой системы) по-прежнему поддерживаются tmpfs и devfs.

Также предоставляется сетевой стек с поддержкой сокетов TCP и UDP, на основе библиотеки smoltcp. Разработчик подготовил загрузочную среду, которая работает в QEMU или Firecracker VM с контроллером virtio-net, к которому уже можно подключиться по SSH. Musl используется как системная библиотека, а BusyBox - как пользовательская утилита.. На основе Docker подготовлена ​​система сборки, позволяющая создавать собственные загрузочные initramfs с ядром Kerla.

Пока что было предоставлено мало подробностей о его новом ядре, но больше всего внимания к функциям Kerla привлекает тот факт, что оно написано на Rust. Так есть ли преимущества у написания его на Rust перед другими языками или существующим кодом? Многие ответили утвердительно на этот вопрос, подчеркнув преимущества языка, обеспечивающие безопасность памяти.

Он также предоставляется при оценке точности доступа к памяти во время выполнения. Более того, Mozilla считает, что Rust предлагает защиту от целочисленных переполнений., требует обязательной инициализации значений переменных перед использованием, по умолчанию принимает концепцию ссылок и неизменяемых переменных, предлагает строгую статическую типизацию для минимизации логических ошибок и упрощает обработку ввода за счет сопоставления шаблонов.

Среди преимуществ выделим интегрированные инструменты для оценки качества кода. и создание модульных тестов, которые можно запускать не только на реальном оборудовании, но и на QEMU. По сути, Mozilla считает, что Rust легче отлаживать, поскольку компилятор отклоняет ошибки. Однако бухты указали на некоторые недостатки Rust.

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

По словам его создателя, именно по этой причине разработчики Linux, в частности, сам Линус Торвальдс, они отвергли идею переписать все ядро ​​на Rust.

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

Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.


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

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.