Интернет магазин китайских планшетных компьютеров



Компьютеры - TTY-абстракция - Сценарий использования

22 января 2011


Оглавление:
1. TTY-абстракция
2. Сценарий использования
3. Место TTY в модели процессов
4. Управление заданиями и сессиями
5. TTY и система сигналов
6. Контроль потока и блокировка ввода-вывода
7. Настройка TTY



TTY diagram 1.PNG

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

Редактирование строк

Большинство пользователей допускают опечатки по время набора текста, так что клавиша забоя очень важна. Конечно, можно было бы воплотить её функциональность в самой программе, использующей телетайп. Однако в соответствии с философией UNIX, программы должны быть как можно проще. Поэтому операционная система сама предоставляет буфер для редактирования текста, а также некоторые простейшие команды редактирования — «удалить символ», «удалить слово», «удалить строку». Все эти функции реализованы внутри слоя протокола линии связи русск.. По умолчанию они включены; такой режим называется каноническим, или приготовленным. Программа при желании может отключить эти функции, переведя драйвер в сырой режим.. Упомянутый слой протокола также позволяет настраивать эхо, автоматическую конвертацию признаков конца строки и возврата каретки, и т. п. Таким образом, слой протокола является примитивным разборщиком текста типа Sed, причём работающим в режиме ядра.

Смысл выделения описанной выше обработки в отдельный слой заключается в том, что дисциплину можно динамически менять. Например, вместо дисциплины терминала можно включить дисциплину передачи данных с пакетной коммутацией — ppp, IrDA, последовательную мышь и т. д.

Управление сеансами русск.

Как правило, пользователь хочет запустить одновременно несколько программ, и взаимодействовать с ними по очереди. Если программа зависает, — пользователь наверняка захочет аварийно завершить русск. её. Процессы, работающие в фоновом режиме русск., должны блокироваться, как только они захотят вывести какой-либо текст на экран. Аналогичным образом, набираемый пользователем текст должен передаваться только активной в данный момент программе. Операционная система реализует все эти функции при помощи драйвера TTY.

Как уровень дисциплины, так и драйвер TTY являются пассивными. Иными словами, они не могут сами предпринимать каких-либо действий, а являются лишь набором процедур, которые могут быть вызваны другими процедурами. В отличие от них, сама операционная система является процессом, то есть имеет свой собственный контекст.

TTY diagram 3.PNG
TTY diagram 4.PNG

Система из драйвера UART-порта, дисциплины и драйвера TTY называется устройством TTY, или просто TTY. Пользовательский процесс может изменять поведение любого TTY-устройства путём манипулирования соответствующим ему файлом русск. в папке /dev. Естественно, для этого данный процесс должен обладать правами записи русск. в этот файл. Поэтому когда пользователь входит в систему русск. и подключается к определённому TTY, этот пользователь должен стать владельцем файла, соответствующего этому TTY. Именно это и делает программа login..

TTY diagram 2.PNG

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

Теперь рассмотрим случай, когда система работает на обычном современном персональном компьютере. Дисциплина и TTY-драйвер работают так же, как и раньше, но драйвера UART-порта уже нет, так как нет телетайпа, который бы через него подключался. Вместо него используется эмулятор видеотерминала — программа, которая имитирует видеотерминал, и отображает содержимое этого терминала на экран. При этом эта программа, в отличие от консоли, уже работает в пространстве пользователя русск., а не ядра, что обеспечивает куда большую гибкость; например, можно выводить терминал в окне, как это делает Xterm и его многочисленные клоны.

Для того, чтобы позволить работу эмулятора терминала в пространстве пользователя, и при этом не отказываться от всей вышеописанной подсистемы TTY, был изобретён так называемый Pseudo Terminal русск., или PTY. Псевдотерминал может быть запущен внутри другого псевдотерминала; так поступают, например, Screen или Ssh.



Просмотров: 6747


<<< The UNIX-HATERS Handbook
Umask >>>