Глава 16 Терминалы и псевдотерминалы

Глава 16

Терминалы и псевдотерминалы

Устройства, предназначенные для интерактивного использования[107], обладают сходным интерфейсом, который был выведен десятилетия назад для последовательных терминалов TeleType и получил название tty. Интерфейс tty используется для доступа к последовательным терминалам, консолям, терминалам xterm, сетевым регистрационным именам и тому подобному.

Интерфейс tty прост концептуально, но сложен в реализации. Будучи гибким и мощным, он может записывать приложения, не знающие, сколько входных и выходных данных они получают, а также работать в сети, на локальном экране либо через модем. Приложения можно даже запускать без их ведома под управлением другой программы.

К сожалению, разработчикам Unix пришлось предпринять несколько попыток совершенствования интерфейса. Они оставили пользователям три разных интерфейса для соединения с устройствами tty. Интерфейсы sgtty (BSD) и termio (System V) теперь вытеснены интерфейсом termios (POSIX), который представляет собой супермножество команд интерфейса termio. Так как все существующие системы поддерживают интерфейс termios, и поскольку это самый мощный интерфейс, мы документируем только termios, а не ранние интерфейсы. (Ради поддержки унаследованного исходного кода Linux поддерживает termio, а также termios. Ранее он также ограниченно поддерживал интерфейс sgtty, но эта поддержка впоследствии была изъята, поскольку этот интерфейс никогда не был идеален, и в нем уже не было существенной потребности.)

Интерфейс termios должен поддерживать не только интерактивное использование программ, но и другие виды трафика. Последовательный канал, по которому осуществляется вход в сеть через модем, можно также использовать для дозвона через модем и связи с последовательным принтером либо другим специализированным элементом оборудования.

Устройство tty имеет два конца. Если рассуждать упрощенно, один конец присоединяется к программе, а второй — к аппаратному устройству. Это верно для последовательного порта; в данном случае драйвер последовательного устройства присоединяет последовательный порт (и, таким образом, терминал или модем) к оболочке, редактору или другой программе. Это также верно для консоли; драйвер консоли соединяет клавиатуру и экран с такими же типами программ. Но в некоторых случаях на каждом конце находится по программе; при этом один из концов занимает место оборудования.

Например, при сетевом подключении один конец устройства tty соединяется с программой, предоставляющей сетевое подключение, а второй — с оболочкой, редактором или другой потенциально интерактивной программой. Если программы находятся на каждом конце, вы должны ясно понимать, на каком конце эмулируется оборудование; при сетевом подключении к сети подключается аппаратная сторона.

Устройства tty с программным обеспечением на обоих концах называются псевдотерминалами (pseudo-tty, или же просто pty). В первой части главы они рассматриваться не будут, поскольку программный конец pty обрабатывается так же, как и любое другое устройство tty. Позже мы поговорим о программировании аппаратного конца pty.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

3.3. Консоль, виртуальные терминалы и оболочка

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

3.3. Консоль, виртуальные терминалы и оболочка Итак, вы приобрели первый опыт работы в текстовом, или "консольном", режиме системы Linux. Понятия "терминала" и "консоли", которые встретятся нам еще не раз, требуется, вероятно, дополнительно пояснить.Когда создавалась система UNIX,


Терминалы связи

Из книги Asterisk™: будущее телефонии Второе издание автора Меггелен Джим Ван

Терминалы связи «Терминал связи» - это старый термин, исчезнувший на пару десятков лет и воспроизведенный здесь, пожалуй, лишь по той причине, что его надо обсудить, прежде чем он в конечном счете исчезнет вновь или станет повсеместно распространенным.Сначала немного


Глава 10

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

Глава 10 1. Вот результат работы в Solaris 2.6:solaris % deadlock 100prod: calling sem_wait(nempty) i=0 у производителяprod: got sem_wait(nempty)prod: calling sem_wait(mutex)prod: got sem_wait(mutex), storing 0prod: calling sem_wait(nempty) i=1 у производителяprod: got sem_wait(nempty)prod: calling sem_wait(mutex)prod: got sem_wait(mutex), storing 1prod: calling sem_wait(nempty) начало следующего цикла, но места


13.5.1 Терминалы ASCII

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

13.5.1 Терминалы ASCII Терминалы ASCII используются с Unix и компьютерами VAX компании Digital Equipment Corporation. Эти терминалы обеспечивают:? Удаленную эхо-печать (remote echoing) каждого символа. Т.е. каждый посланный удаленному хосту символ возвращается назад, до того как будет отображен на


13.5.3 Терминалы IBM 3270 и 5250

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

13.5.3 Терминалы IBM 3270 и 5250 Большие ЭВМ компании IBM поддерживают работу сотен или тысяч интерактивных терминалов. Многие годы для этого использовались терминалы IBM 3270, лицензированные данной компанией. Они были специально оптимизированы для приложений обработки


16.1.2. Управляющие терминалы

Из книги А я был в Компьютерном Городе автора Зарецкий Андрей Владленович

16.1.2. Управляющие терминалы Каждый сеанс (см. главу 10) привязан к терминалу, с которого процессы сеанса получают свои входные данные и в который пересылают свои выходные данные. Этот терминал может быть локальной консолью машины, терминалом, подключенным через


16.6. Псевдотерминалы

Из книги Наглядный самоучитель работы на нетбуке автора Сенкевич Г. Е.

16.6. Псевдотерминалы Псевдотерминалы, или pty — это механизм, позволяющий программе на уровне пользователя заменять место (логически говоря) драйвера tty для элемента оборудования. pty имеет два отдельных конца: конец, эмулирующий оборудование, называется ведущим


ГЛАВА 3

Из книги Linux программирование в примерах автора Роббинс Арнольд

ГЛАВА 3 Глава, самая короткая, в которой появляется и тут же исчезает Кадабра. — Вот тут я живу и работаю, — сказал Точка.Алёша во все глаза разглядывал мастерскую Точки. Ни мольберта, ни баночек с красками и кисточками нигде не было видно.В комнате был бы идеальный


ГЛАВА 4

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

ГЛАВА 4 Глава, в которой именинник — доктор Кашля получает подарки и угощает гостей солёным тортом. В небольшой комнатке, одна из стен которой была увешана всевозможными диковинными пипетками и градусниками, а на другой красовалась редчайшая коллекция больших и


ГЛАВА 5

Из книги Операционная система UNIX автора Робачевский Андрей М.

ГЛАВА 5 Глава, в которой выясняется причина порчи дискет и Алёша с Котёнком едут в поликлинику снимать отпечатки зубов. В кабинете Центрального Процессора шло экстренное совещание. Микроши по очереди высказывали свои предположения о причинах столь необычного для


ГЛАВА 6

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

ГЛАВА 6 Глава, в которой Алёше удаляют зуб, а Котёнок ест эскимо и мурлычет от удовольствия. Всем известно: никто из детей не пойдёт сам в поликлинику, а про зубной кабинет и говорить нечего. Другое дело — Симплекс. В Симплексе поликлиника — любимое место микрошей. Дай им


6.4. Терминалы: isatty()

Из книги автора

6.4. Терминалы: isatty() Модель стандартного ввода, стандартного вывода и стандартной ошибки Linux/Unix препятствует специальной трактовке устройств ввода и вывода. Программам обычно не нужно знать или беспокоиться о том, направляется ли их вывод на терминал, в файл, канал,


6.6. Псевдотерминалы

Из книги автора

6.6. Псевдотерминалы Если запустить команду mount без аргументов, будет выдан список всех смонтированных файловых систем. Одна из строк выглядит примерно так:none on /dev/pts type devpts (rw,gid=5,mode=620)Она указывает на то, что файловая система специального типа devpts смонтирована в каталоге


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

Из книги автора

Псевдотерминалы Псевдотерминалы являются специальным устройством, эмулирующим стандартную терминальную линию. Псевдотерминалы напоминают каналы как средство межпроцессного взаимодействия, позволяющее двум процессам обмениваться данными. Однако в отличие от


ГЛАВА 8

Из книги автора

ГЛАВА 8 Семейство команд grepКоманда grep (global regular expression print — печать глобальных регулярных выражений) является наиболее известным инструментальным средством в UNIX и Linux. Она выполняет в текстовых файлах или стандартном входном потоке поиск выражений, соответствующих