Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - TTY-абстракция - Сценарий использования22 января 2011Оглавление: 1. TTY-абстракция 2. Сценарий использования 3. Место TTY в модели процессов 4. Управление заданиями и сессиями 5. TTY и система сигналов 6. Контроль потока и блокировка ввода-вывода 7. Настройка TTY Предположим, пользователь набирает текст на телетайпе, и читает ответ компьютера, который тот печатает. Телетайп при этом используется как физический терминал. Терминал этот подключается к компьютеру при помощи универсального последовательного асинхронного порта. Операционная система имеет драйвер порта, который отвечает за физическую передачу байтов по проводам. В простейшем случае, этот драйвер может просто передавать данные использующему его приложению. Но при этом не будет следующих функций: Редактирование строкБольшинство пользователей допускают опечатки по время набора текста, так что клавиша забоя очень важна. Конечно, можно было бы воплотить её функциональность в самой программе, использующей телетайп. Однако в соответствии с философией UNIX, программы должны быть как можно проще. Поэтому операционная система сама предоставляет буфер для редактирования текста, а также некоторые простейшие команды редактирования «удалить символ», «удалить слово», «удалить строку». Все эти функции реализованы внутри слоя протокола линии связи русск.. По умолчанию они включены; такой режим называется каноническим, или приготовленным. Программа при желании может отключить эти функции, переведя драйвер в сырой режим.. Упомянутый слой протокола также позволяет настраивать эхо, автоматическую конвертацию признаков конца строки и возврата каретки, и т. п. Таким образом, слой протокола является примитивным разборщиком текста типа Sed, причём работающим в режиме ядра. Смысл выделения описанной выше обработки в отдельный слой заключается в том, что дисциплину можно динамически менять. Например, вместо дисциплины терминала можно включить дисциплину передачи данных с пакетной коммутацией ppp, IrDA, последовательную мышь и т. д. Управление сеансами русск.Как правило, пользователь хочет запустить одновременно несколько программ, и взаимодействовать с ними по очереди. Если программа зависает, пользователь наверняка захочет аварийно завершить русск. её. Процессы, работающие в фоновом режиме русск., должны блокироваться, как только они захотят вывести какой-либо текст на экран. Аналогичным образом, набираемый пользователем текст должен передаваться только активной в данный момент программе. Операционная система реализует все эти функции при помощи драйвера TTY. Как уровень дисциплины, так и драйвер TTY являются пассивными. Иными словами, они не могут сами предпринимать каких-либо действий, а являются лишь набором процедур, которые могут быть вызваны другими процедурами. В отличие от них, сама операционная система является процессом, то есть имеет свой собственный контекст. Система из драйвера UART-порта, дисциплины и драйвера TTY называется устройством TTY, или просто TTY. Пользовательский процесс может изменять поведение любого TTY-устройства путём манипулирования соответствующим ему файлом русск. в папке /dev. Естественно, для этого данный процесс должен обладать правами записи русск. в этот файл. Поэтому когда пользователь входит в систему русск. и подключается к определённому TTY, этот пользователь должен стать владельцем файла, соответствующего этому TTY. Именно это и делает программа login.. При этом нужно помнить, что в качестве физической линии, соединяющей терминал с компьютером, вполне может выступать и телефонная линия, что позволяет практически неограниченно удалить терминал от компьютера. С точки зрения операционной системы, единственным отличием этого случая от простого подключения терминала по UART-порту будет необходимость обрабатывать сигнал «трубка повешена», который может вдруг прийти от модема. Теперь рассмотрим случай, когда система работает на обычном современном персональном компьютере. Дисциплина и TTY-драйвер работают так же, как и раньше, но драйвера UART-порта уже нет, так как нет телетайпа, который бы через него подключался. Вместо него используется эмулятор видеотерминала программа, которая имитирует видеотерминал, и отображает содержимое этого терминала на экран. При этом эта программа, в отличие от консоли, уже работает в пространстве пользователя русск., а не ядра, что обеспечивает куда большую гибкость; например, можно выводить терминал в окне, как это делает Xterm и его многочисленные клоны. Для того, чтобы позволить работу эмулятора терминала в пространстве пользователя, и при этом не отказываться от всей вышеописанной подсистемы TTY, был изобретён так называемый Pseudo Terminal русск., или PTY. Псевдотерминал может быть запущен внутри другого псевдотерминала; так поступают, например, Screen или Ssh. Просмотров: 6747
|