Распределение файловых дескрипторов перенесено из ядра в пользовательское пространство
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