В Redox появилась библиотека scheme-utils — с неё проще писать свои схемы на Rust
13.04.2026Выделен отдельный крейт scheme-utils с типами готовности и блокировки, общим реестром дескрипторов и вызывающим объектом. Он снимает с автора схемы ручную возню с внутренней изменяемостью и блокировками.
Что такое схема в Redox
Схема — это пользовательская служба, которая отвечает за ресурс одного типа и отдаёт его по пути /scheme/имя/.... Файловая система, сетевой стек, консоль, терминал — всё это схемы. Схемы пишутся как обычные программы и запускаются как обычные процессы; ядро о них ничего не знает, кроме того, что они зарегистрированы.
Это микроядерная архитектура: почти всё, что обычно живёт в ядре, здесь живёт в пользовательском пространстве. И плата за это — каждый обработчик запроса пишется обычным асинхронным кодом на Rust.
Какую ручную работу убирает
При обработке запроса схема должна решить, что делать: выполнить немедленно или сказать «я пока занят, разбуди меня, когда условие наступит». Типичная реализация заканчивается внутренней изменяемостью, обёрнутой в блокировку, и большим количеством повторяющихся проверок.
scheme-utils даёт готовые детали:
тип готовности — заменяет пару обёрток вокруг внутренней изменяемости и объясняет, когда обработчик может быть вызван;
блокирующий вариант — для случаев, где схема обязана дождаться готовности;
общий реестр дескрипторов — единый способ выдать файловый дескриптор и потом найти его обратно;
вызывающий объект — то, чем схема отвечает на запрос.
Одна из правок прямо формулирует цель: убрать необходимость оборачивать схему в RefCell. Это деталь реализации, но именно такие детали и стоят кода, который переписывают при каждом изменении.
Кому это нужно
Прежде всего — тем, кто пишет свою схему на Redox, будь то новая файловая система, драйвер устройства или сетевой протокол. Крейт публичный, то есть доступен и за пределами основного дерева проекта. То есть фактически это приглашение сторонним разработчикам, что для микроядерной ОС на Rust — заметный шаг: обычно подобное требует правок в дереве ядра.
Оригинал
Коммиты с 13 по 19 апреля 2026 года в репозитории redox-os/base: Introduce scheme-utils crate and HandleMap type, scheme-utils: Remove the need for RefCell wrappers around schemes, Introduce Blocking as counterpart to ReadinessBased, Introduce FpathWriter helper; сводка «This Month in Redox — April 2026», раздел «System Improvements»
Упоминаний: 1 · Просмотров: 5