Проект Kerla развивает Linux-совместимое ядро на языке Rust
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В рамках проекта Kerla ведётся разработка ядра операционной системы, написанного на языке Rust. Новое ядро изначально ориентировано на обеспечение совместимости с ядром Linux на уровне ABI, что позволит запускать в окружении на базе Kerla немодифицированные исполняемые файлы, собранные для Linux. Код распространяется под лицензиями Apache 2.0 и MIT. Проект развивает японский разработчик Сейя Нута (Seiya Nuta), известный созданием микроядерной операционной системы Resea, написанной на языке Си.
На текущем этапе развития Kerla может работать только на системах с архитектурой x86_64 и реализует базовые системные вызовы, такие как write, stat, mmap, pipe и poll, поддерживает сигналы, неименованные каналы и переключения контекста. Для управление процессами предоставляются такие вызовы, как fork, wait4 и execve. Имеется поддержка tty и псевдотерминалов (pty). Из файловых систем пока поддерживаются initramfs (применяется для монтирования корневой ФС), tmpfs и devfs. Предоставляется сетевой стек с поддержкой сокетов TCP и UDP, реализованный на базе библиотеки smoltcp.
Разработчиком подготовлено загрузочное окружение, запускаемое в QEMU или в виртуальной машине Firecracker c драйвером virtio-net, к которому уже можно подключиться по SSH. В качестве системной библиотеки используется musl, а в качестве пользовательских утилит - BusyBox.
На базе Docker подготовлена система сборки, позволяющая формировать собственные загрузочные initramfs с ядром Kerla. Отдельно развиваются похожая на fish программная оболочка nsh и GUI-стек Kazari на базе протокола Wayland.
Использование языка Rust в проекте позволяет сократить число ошибок в коде благодаря применению приёмов безопасного программирования и повышению эффективности выявления проблем при работе с памятью. Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами и учёт времени жизни объектов (области видимости), а также через оценку корректности доступа к памяти во время выполнения кода. Кроме того, Rust предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок, упрощает обработку входных значений благодаря средствам сопоставления с образцом.
Для разработки низкоуровневых компонентов, таких как ядро ОС, Rust предоставляет поддержку raw-указателей, упаковки структур, ассемблерных inline-вставок, встраивания файлов на ассемблере. Для работы без привязки к стандартной библиотеке имеются обособленные crate-пакеты для выполнения операций со строками, векторами и битовыми флагами. Из достоинств также отмечается встроенные инструменты для оценки качества кода (linter, rust-analyzer) и создания unit-тестов, которые можно запускать не только на реальном оборудовании, но и в QEMU.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://news.ycombinator.com/i...)
- OpenNews: Для ядра Linux предложен драйвер GPIO, написанный на Rust
- OpenNews: Вторая редакция патчей для ядра Linux с поддержкой языка Rust
- OpenNews: Фреймворк для написания защищённых драйверов для ядра Linux на языке Rust
- OpenNews: Эксперимент по разработке частей ядра Linux на языке Rust
- OpenNews: Выпуск операционной системы Redox OS 0.6, написанной на языке Rust
Похожие новости:
- Выпуск ncspot, Spotify-клиента на Rust
- Выпуск Muen 1.0, открытого микроядра для создания высоконадёжных систем
- Релиз языка программирования Rust 2021 (1.56)
- Раскрыта техника эксплуатации уязвимости в tty-подсистеме ядра Linux
- В Москве состоится конференция, посвящённая языку программирования Rust
- Сбои в OpenBSD, DragonFly BSD и Electron из-за устаревания корневого сертификата IdenTrust
- В ядре Linux 5.14.7 выявлена проблема, приводящая к краху на системах с планировщиком BFQ
- Google перейдёт к развитию новшеств для Android в основном ядре Linux
- GitHub добавил поддержку отслеживания уязвимостей в проектах на языке Rust
- 30 лет с момента первого релиза ядра Linux 0.01
Теги для поиска: #_kerla, #_kernel, #_rust
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:46
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В рамках проекта Kerla ведётся разработка ядра операционной системы, написанного на языке Rust. Новое ядро изначально ориентировано на обеспечение совместимости с ядром Linux на уровне ABI, что позволит запускать в окружении на базе Kerla немодифицированные исполняемые файлы, собранные для Linux. Код распространяется под лицензиями Apache 2.0 и MIT. Проект развивает японский разработчик Сейя Нута (Seiya Nuta), известный созданием микроядерной операционной системы Resea, написанной на языке Си. На текущем этапе развития Kerla может работать только на системах с архитектурой x86_64 и реализует базовые системные вызовы, такие как write, stat, mmap, pipe и poll, поддерживает сигналы, неименованные каналы и переключения контекста. Для управление процессами предоставляются такие вызовы, как fork, wait4 и execve. Имеется поддержка tty и псевдотерминалов (pty). Из файловых систем пока поддерживаются initramfs (применяется для монтирования корневой ФС), tmpfs и devfs. Предоставляется сетевой стек с поддержкой сокетов TCP и UDP, реализованный на базе библиотеки smoltcp. Разработчиком подготовлено загрузочное окружение, запускаемое в QEMU или в виртуальной машине Firecracker c драйвером virtio-net, к которому уже можно подключиться по SSH. В качестве системной библиотеки используется musl, а в качестве пользовательских утилит - BusyBox. На базе Docker подготовлена система сборки, позволяющая формировать собственные загрузочные initramfs с ядром Kerla. Отдельно развиваются похожая на fish программная оболочка nsh и GUI-стек Kazari на базе протокола Wayland. Использование языка Rust в проекте позволяет сократить число ошибок в коде благодаря применению приёмов безопасного программирования и повышению эффективности выявления проблем при работе с памятью. Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами и учёт времени жизни объектов (области видимости), а также через оценку корректности доступа к памяти во время выполнения кода. Кроме того, Rust предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок, упрощает обработку входных значений благодаря средствам сопоставления с образцом. Для разработки низкоуровневых компонентов, таких как ядро ОС, Rust предоставляет поддержку raw-указателей, упаковки структур, ассемблерных inline-вставок, встраивания файлов на ассемблере. Для работы без привязки к стандартной библиотеке имеются обособленные crate-пакеты для выполнения операций со строками, векторами и битовыми флагами. Из достоинств также отмечается встроенные инструменты для оценки качества кода (linter, rust-analyzer) и создания unit-тестов, которые можно запускать не только на реальном оборудовании, но и в QEMU. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:46
Часовой пояс: UTC + 5