Распределение файловых дескрипторов перенесено из ядра в пользовательское пространство

01.07.2026

В Redox распределение файловых дескрипторов перенесено из ядра в пользовательское пространство. Это сокращает поверхность атаки ядра и убирает часть гонок, а заодно объединяет код, который раньше был разбросан.

Что перенесли и зачем

Выдача дескрипторов — горячий путь: она выполняется при каждом open, socket, dup и создании канала. Пока счётчик жил в ядре, каждое такое обращение требовало перехода в привилегированный режим и обратно, а само ядро держало структуру, которую нужно было защищать от гонок.

В пользовательском пространстве дескрипторы выделяет владелец файловой таблицы. Что это даёт:

уменьшается поверхность атаки ядра — меньше кода в привилегированном режиме, значит меньше возможностей для ошибки;

уходят гонки: состояние больше не разделяется между двумя контекстами с разными правилами доступа;

уменьшается объём кода и стоимость его сопровождения — работа объединена, а не размазана по двум реализациям.

Почему дата — 1 июля

Сводка за июнь сообщает о работе, но изменение попало в master 1 июля. По правилу «дата события, а не дата выпуска» взята дата коммита, поэтому новость датирована 1 июля, хотя напечатана в разборе июньской сводки.

Оригинал

Коммит refactor: Move fd allocation logic into userspace в репозитории redox-os/relibc; сводка «This Month in Redox — June 2026», раздел «Userspace File Descriptor Allocation»

Упоминаний: 1 · Просмотров: 3