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