RSoC 2025: Unix Domain Sockets, Bulk FD Passing и разделение таблиц файлов

04.08.2025

Ибики Омацу завершил работу над тремя проектами в рамках Redox Summer of Code 2025: Unix Domain Sockets, Bulk FD Passing и разделение таблиц файловых дескрипторов. Каждый проект закрывает ограничение, из-за которого программы приходилось переписывать.

Unix Domain Sockets

Реализована поддержка сокетов домена Unix, включая вызовы bind и connect для них. Смысл доработки простой: без этого механизма IPC не работает так, как предполагает POSIX, и программы, рассчитанные на эти сокеты, требуют переписывания или отказа от них.

Bulk FD Passing

Реализована передача нескольких файловых дескрипторов за одну операцию. Практическое следствие видно на примере: раньше, чтобы передать структуру с тремя дескрипторами, требовалось три системных вызова и промежуточное состояние, в котором структура была неполной. Теперь она передаётся целиком и атомарно, и получатель не видит наполовину собранного объекта.

В отчёте приведён пример использования на Rust.

Разделение таблиц файлов

Таблицы файловых дескрипторов теперь разделяются между процессами. Это устраняет целый класс проблем с правами: процесс мог получить доступ к дескрипторам, которые ему не передавали, просто потому что таблица была общей. Разделение делает передачу явной.

Что это даёт вместе

Все три доработки убирают расхождения между тем, как программа написана под POSIX, и тем, как работает Redox. Это и есть основная работа над совместимостью: не «добавить поддержку», а убрать причины, по которым чужой код не работает.

Оригинал

Финальный отчёт RSoC 2025 Ибики Омацу

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