Архитектура терминального доступа
Алфавитно-цифровой терминал -- последовательное устройство и операционная система производит обмен данными с терминалом через последовательный интерфейс, называемый терминальной линией. терминальной линией в UNIX ассоциирован специальный файл символьного устройства /dev/ttyxx.
Терминальные драйверы выполняют ту же функцию, что и остальные драйверы: управление передачей данных от/на терминалы. Однако терминалы имеют одну особенность, связанную с тем, что они обеспечивают интерфейс пользователя с системой. Обеспечивая интерактивное использование системы UNIX, терминальные драйверы имеют свой внутренний интерфейс с модулями, интерпретирующими ввод и вывод строк. Модуль, отвечающий за такую обработку, называется дисциплиной линии (line discipline).
Существуют два режима терминального ввода/вывода:
1.Канонический режим. В этом режиме ввод с терминала обрабатывается в виде законченных строк.
2.Неканонический режим, при котором ввод не интерпретируется.
В каноническом режиме интерпретаторы строк преобразуют неструктурированные последовательности данных, введенные с клавиатуры, в каноническую форму (то есть в форму, соответствующую тому, что пользователь имел в виду на самом деле) прежде, чем послать эти данные принимающему процессу. Например, программисты работают на клавиатуре терминала довольно быстро, но иногда допускают ошибки. На этот случай имеется клавиша стирания, и пользователь имеет возможность удалять часть введенной строки и вводить коррективы. Драйвер терминала получает всю введенную последовательность, включая и символы стирания. В каноническом режиме модуль дисциплины линии буферизует информацию в строку (набор символов, заканчивающийся символом возврата каретки) и стирает символы в буфере, прежде чем переслать исправленную последовательность считывающему процессу. В таком режиме, например, работает командный интерпретатор shell.
В режиме без обработки строковый интерфейс передает данные между
процессами и терминалом без каких-либо преобразований. Например,
текстовый редактор работает с драйвером в неканоническом режиме, благодаря чему любой символ, введенный пользователем интерпретируется
самим процессом.
В функции модуля дисциплины линии входят:
-
строчный разбор введенных последовательностей.
-
обработка символов стирания.
обработка символов удаления, отменяющих всех предыдущих символов.
-
отображение символов, полученных терминалом
-
расширение выходных данных, например, преобразование символов
табуляции последовательности пробелов.
Предоставление возможности не обрабатывать специальные символы, такие как символы стирания, удаления и возврата каретки.
Существует дополнительная возможность обработки данных, получаемых
И передаваемых устройству — отображение вводимых и выводимых символов
в символы, определенные таблицей отображения. Данную возможность поддерживает утилита mapchan.
- Подсистема ввода/вывода
- Драйверы устройств
- Типы драйверов
- Базовая архитектура драйверов
- Файловый интерфейс
- Vnode а также inode физической файловой системы, где расположен специальный файл устройства, и соответствующий ему vnode.
- Встраивание драйверов в ядро
- Блочные устройства
- Символьные устройства
- Интерфейс доступа низкого уровня
- Буферизация
- Архитектура терминального доступа
- Псевдотерминалы