Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
В некоторых операционных системах, включая Unix-подобные системы, псевдотерминал, псевдо-TTY или ПТТ — это пара псевдоустройств (файлов), которые устанавливают асинхронный двунаправленный канал межпроцессного взаимодействия (IPC) (с двумя портами) между двумя или более процессами. Одно из псевдоустройств в паре, ведущее, предоставляет средства, с помощью которых эмулятор терминала или сервер удаленного входа в систему (например, серверы Telnet, rlogin или Secure Shell) могут работать, а также предоставляет API POSIX и Single Unix Specification в виде функции начиная с 1998 года.
In some operating systems, including Unix like systems, a pseudoterminal, pseudotty, or PTY is a pair of pseudo device endpoints (files) which establish asynchronous, bidirectional communication (IPC) channel (with two ports) between two or more processes. One pseudo device in the pair, the master, provides means by which a terminal emulator or remote login server (e. g. a Telnet, rlogin, or Secure Shell server) and provides POSIX and the Single Unix Specification API in the form of a function since 1998.
История
Псевдотерминалы присутствовали в DEC PDP-6 Timesharing Monitor как минимум с 1967 года и использовались для реализации пакетной обработки. Они описаны в документации к последующей системе TOPS-10 для PDP-10. Другие операционные системы DEC также поддерживали PTY, включая RSTS/E для PDP-11, а также стороннюю операционную систему TENEX для PDP-10. Реализации псевдотерминалов Unix восходят к модификациям, которые RAND и BBN внесли в 6-е издание в конце 1970-х годов для поддержки удаленного доступа по сети. Современные псевдотерминалы Unix появились в 1983 году в ходе разработки Unix восьмой редакции и были основаны на аналогичной функции в TENEX. Они вошли в состав выпуска 4.2 BSD, с довольно сложным интерфейсом, предназначенным для использования. System V от AT&T включала поддержку псевдотерминалов в виде драйвера в своей модели устройств STREAMS, вместе с псевдотерминальным мультиплексором. Впоследствии это развилось в стиль PTY, используемый в Unix98.
Pseudoterminals were present in the DEC PDP 6 Timesharing Monitor at least as early as 1967, and were used to implement batch processing. They are described in the documentation for the succeeding TOPS 10 on the PDP 10. Other DEC operating systems also had PTYs, including RSTS/E for the PDP 11, as did the third party TENEX operating system for the PDP 10. Implementations of Unix pseudo terminals date back to the modifications that RAND and BBN made to a 6th Edition in the late 1970s to support remote access over a network. Modern Unix pseudoterminals originated in 1983 during the development of Eighth Edition Unix and were based on a similar feature in TENEX. They were part of the 4.2 release of BSD, with a rather cumbersome interface defined for use. AT&T's System V included support for pseudoterminals as a driver in their STREAMS device model, along with the pseudoterminal multiplexer This later evolved to become the Unix98 style of PTYs.
Варианты
В системе BSD PTY файл подчиненного устройства, который обычно имеет имя вида /dev/tty[p za e][0 9a f], поддерживает все системные вызовы, применимые к текстовым терминальным устройствам. Таким образом, он поддерживает сеансы входа в систему. Файл главного устройства, который обычно имеет имя вида /dev/pty[p za e][0 9a f], является конечной точкой для связи с эмулятором терминала. При такой схеме именования может быть не более 256 пар tty. Кроме того, поиск первого свободного главного устройства может быть подвержен гонкам данных, если не используется схема блокировок. По этой причине современные операционные системы BSD, такие как FreeBSD, реализуют PTY Unix98. PTY BSD устарели и были заменены PTY Unix98, система именования которых не ограничивает количество псевдотерминалов, а доступ к ним осуществляется без риска возникновения гонок данных. /dev/ptmx – это "мультиплексор главного псевдотерминала". Открытие этого файла возвращает файловый дескриптор главного узла и приводит к созданию связанного с ним подчиненного узла /dev/pts/N.
In the BSD PTY system, the slave device file, which generally has a name of the form /dev/tty[p za e][0 9a f], supports all system calls applicable to text terminal devices. Thus it supports login sessions. The master device file, which generally has a name of the form /dev/pty[p za e][0 9a f], is the endpoint for communication with the terminal emulator. With this naming scheme, there can be at most 256 tty pairs. Also, finding the first free pty master can be racy unless a locking scheme is adopted. For that reason, recent BSD operating systems, such as FreeBSD, implement Unix98 PTYs. BSD PTYs have been rendered obsolete by Unix98 ptys whose naming system does not limit the number of pseudo terminals and access to which occurs without danger of race conditions. /dev/ptmx is the "pseudo terminal master multiplexer". Opening it returns a file descriptor of a master node and causes an associated slave node /dev/pts/N to be created.