Производитель смартфонов Vivo открыл исходный код проекта ядра BlueOS (Blue River OS) на языке Rust

Производитель смартфонов Vivo представил первый официальный открытый релиз ядра операционной системы BlueOS (проект Blue River OS). Операционная система BlueOS развивается с 2018 года и уже используется в умных часах серии Vivo Watch. В Vivo работают над применением BlueOS в умных очках, роботах, умных терминалах и потребительских устройствах с ИИ. Исходный код проекта написан на языке Rust и опубликован на GitHub под лицензией Apache 2.0. На языке программирования Rust также написаны системные фреймворки BlueOS.

По информации OpenNET, проект BlueOS изначально развивается с оглядкой на обеспечение безопасности и использует язык Rust для предотвращения появления уязвимостей, вызванных ошибками при работе с памятью, которые по статистике Google и Microsoft составляют 70% от всех уязвимостей в ОС. Для обеспечения безопасной работы с памятью в BlueOS используется комбинация из применения умных указателей во время выполнения и проверок на этапе компиляции, предоставляемых языком Rust, например, отслеживание владения объектами, проверка заимствования переменных, учёт времени жизни объектов.

Ядро BlueOS (Blue River Kernel) оптимизировано для минимального потребления ресурсов и может использовать на встраиваемых платформах, мобильных устройствах и системах интернета вещей. В минимальной конфигурации ядро BlueOS требует для своей работы всего 13 КБ оперативной памяти. При этом ядро BlueOS поддерживает современные процессорные архитектуры, включая ARM и RISC‑V. Поверх ядра реализована стандартная библиотека C, поддерживающая программные интерфейсы, определённые в стандарте POSIX, а также библиотека rust‑std.

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

В рамках решения BlueOS предоставляется собственная файловая система с классической иерархической архитектурой на базе inode, а также файловые системы tmpfs, devfs, sysfs, procfs, nfs и fat32. В BlueOS TCP/IP стек поддерживает POSIX Socket API, socketfd и обработку данных в блокирующем и не блокирующем режимах, и может использоваться в конфигурациях с несколькими сетевыми картами. Для снижения накладных расходов при передаче данных в BlueOS применяется архитектура zero‑copy, исключающая промежуточную буферизацию.

Для разработки драйверов в BlueOS предлагается слой для абстрагирования доступа к оборудованию, позволяющий создавать драйверы на языке Rust, а также переносить драйверы на языке C, уже созданные для других ядер. Документация к ядру BlueOS ограничена инструкциями по сборке и тестированию, а также подсказками по реализации своих системных вызовов и описанию базовых типов данных. Для тестирования проекта предлагается использовать QEMU (mps2-an385, mps3-an547, virt‑aarch64, virt‑riscv64) или плату Raspberry Pi Pico2.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии