relibc научилась открывать псевдотерминалы и запрашивать их параметры
03.06.2026В relibc появился POSIX-способ открыть псевдотерминал и три ioctl-запроса к нему: получение номера терминала, разблокировка и проверка блокировки. Раньше это приходилось делать через /dev/ptmx вручную.
Зачем нужен псевдотерминал
Псевдотерминал — это пара устройств, которую программа видит как обычный терминал, а на деле на одном конце сидит процесс, читающий то, что пишет другой. Через него работают терминальные программы, редакторы, отладчики и скрипты, которым нужно передать управление пользователю.
Стандартный путь — открыть /dev/ptmx, узнать номер slave-устройства, разблокировать его и передать путь программе. POSIX описывает это как готовую последовательность, и на Redox она была неполной.
Что добавили
Сам способ открыть терминал по POSIX, чтобы не собирать путь вручную. И три запроса ioctl к устройству:
TIOCGPTN — узнать номер псевдотерминала;
TIOCSPTLCK — снять блокировку slave-устройства, без неё чтение из терминала не работает;
TIOCGPTLCK — проверить состояние блокировки.
Заодно из обвязки убрали дублирующийся код и поправили libc-функции под изменившийся интерфейс демона псевдотерминалов.
Кому это нужно
Тому, кто пишет на Rust программу, которая запускает другую программу в терминале: редактор, REPL, тестовый раннер, сборщик. Раньше такой код повторял системные вызовы руками, и это ломалось там, где имена устройств отличаются.
Оригинал
Коммит pty: update libc functions for ptyd changes от 3 июня 2026 года в репозитории redox-os/relibc; сводка «This Month in Redox — June 2026», раздел «System Improvements»
Упоминаний: 1 · Просмотров: 2