Псевдотерминалом в Linux называется пара подключенных виртуальных устройств, называемых ведущим (master) и ведомым (slave). Эта пара устройств предоставляет IPC-канал, позволяющий перемещать данные в обоих направлениях между двумя устройствами.
Важной особенностью псевдотерминала является то, что ведомое устройство предоставляет интерфейс, который ведет себя как терминал. Он позволяет подключить к ведомому устройству программу, ориентированную на работу с терминалом, а затем воспользоваться другой программой, подключенной к ведущему устройству, для управления первой программой. Вывод, записанный программой-драйвером, проходит обычную обработку ввода, выполняемую драйвером терминала (например, в исходном режиме символ возврата каретки преобразуется в новую строку), а затем передается в качестве ввода ориентированной на работу с терминалом программе, подключенной к ведомому устройству. Все, что эта программа записывает в ведомое устройство, передается (после выполнения всей обычной обработки, проводимой на терминале) в качестве ввода программе-драйверу. Иными словами, программа-драйвер выполняет функцию, которую на традиционном терминале выполняет сам пользователь.
Псевдотерминалы используются в различных приложениях Linux, в первую очередь в реализациях окон терминала, предоставляемых при входе в систему X Window, и в приложениях, предоставляющих сервисы входа в сеть, например telnet
и ssh
.