Псевдотермінал

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Схема використання псевдотерміналів

В деяких операційних системах, в тому числі Unix, псевдотермінал (англ. Pseudo terminal), псевдо-tty, або PTY це пара псевдопристроїв, один з яких, другорядний, емулює справжній текстовий термінал, а другий, головний, надає засоби, за допомогою яких емулятор терміналу контролює процеси.

Псевдотермінал BSD[ред. | ред. код]

В системах BSD , файл другорядного пристрою, назва якого зазвичай виглядає як /dev/tty[p-za-e][0-9a-f], підтримує всі системні виклики що застосовуються до пристрою текстового терміналу. Таким чином він підтримує вхід у сесію. Файл головного пристрою, котрий взагалі має назву типу /dev/pty[p-za-e][0-9a-f], є кінцевою точкою для з’єднання з емулятором терміналу.

Зі схемою назв [p-za-e] можуть існувати максимум 256 окремих псевдотерміналів. Також, знаходження першого вільного PTY може призвести до стану гонитви, якщо не буде застосована блокуюча схема. Тому останні BSD-системи, такі як FreeBSD, використовують термінал Unix98.[1]

Псевдотермінал Unix98[ред. | ред. код]

Термінали BSD виявилися застарілими порівняно з терміналами Unix98. Система найменувань терміналів в Unix98 не обмежує їхню кількість та доступ до них не створює загрози стану гонитви.

/dev/ptmx це ніби "мультиплікатор псевдотерміналів". Його відкриття повертає файловий дескриптор ноди головного псевдопристрою і викликає відповідну ноду другорядного псевдопристрою /dev/pts/N, яка буде створена.[2]

Застосунки[ред. | ред. код]

Емулятори терміналу Xterm та Konsole в середовищі KDE

Головна роль емуляції терміналу - це взаємодія з користувачем; це введення тексту до головного псевдопристрою (що підключений до другорядного псевдопристрою) та читання виводу тексту з головного псевдопристрою на екран для користувача. Процес емуляції терміналу мусить також обробляти команди керування терміналом, наприклад, зміну розміру екрану. Одні з найбільш популярних програм-емуляторів терміналу — це Xterm[3], GNOME Terminal, Konsole, Термінал XFCE та Термінал Mac OS X. Протоколи віддаленого входу типу ssh і telnet та їх програми-сервери мають ту ж саму роль, що й локальний емулятор терміналу, але ввід-вивід тексту до/від користувача передається віддалено.

Походження[ред. | ред. код]

Перші псевдотермінали були присутні ще в 1967 році в PDP-6 DEC. Монітор розподілу часу з’явився, як мінімум, у 1967 і використовувався для реалізації пакетної обробки.[4] Інші операційні системи DEC теж мали PTY, в тому числі RSTS/E для PDP-11.

Псевдотермінали Unix зародилися в 1983 році під час розробки 8-ї версії Unix і базувалися на аналогічних функціях в TENEX.[5] Вони були частиною релізу BSD 4.2. System V від AT&T включала підтримку псевдотерміналів на базі драйвера в моделі пристроїв STREAMS, а також мультиплікатор псевдотерміналів.

Посилання[ред. | ред. код]

  1. pty. мануал. FreeBSD.
  2. pts(4): pseudo-terminal master/slave - Linux man page
  3. Х-терминал или вторая жизнь Вашего ПК с Linux. www.senyk.poltava.ua (рос.). Процитовано 6 грудня 2023.
  4. Origin of PTYs. groups.google.com. Процитовано 6 грудня 2023.
  5. Ritchie, D. M. A stream input-output system. AT&T Bell Laboratories Technical Journal. 63 (8): 1897—1910.