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