Архитектура операционной системы UNIX

         

ТЕРМИНАЛЬНЫЕ ДРАЙВЕРЫ


Терминальные драйверы выполняют ту же функцию, что и остальные драйверы: управление передачей данных от и на терминалы. Однако, терминалы имеют одну особенность, связанную с тем, что они обеспечивают интерфейс пользователя с системой. Обеспечивая интерактивное использование системы UNIX, терминальные драйверы имеют свой внутренний интерфейс с модулями, интерпретирующими ввод и вывод строк. В каноническом режиме интерпретаторы строк преобразуют неструктурированные последовательности данных, введенные с клавиатуры, в каноническую форму (то есть в форму, соответствующую тому, что пользователь имел ввиду на самом деле) прежде, чем послать эти данные принимающему процессу; строковый интерфейс также преобразует неструктурированные последовательности выходных данных, созданных процессом, в формат, необходимый пользователю. В режиме без обработки строковый интерфейс передает данные между процессами и терминалом без каких-либо преобразований.

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

В функции строкового интерфейса входят:

  • построчный разбор введенных последовательностей;
  • обработка символов стирания;
  • обработка символов "удаления", отменяющих все остальные символы, введенные до того в текущей строке;
  • отображение символов, полученных терминалом;
  • расширение выходных данных, например, преобразование символов табуляции в последовательности пробелов;
  • сигнализирование процессам о зависании терминалов и прерывании строк или в ответ на нажатие пользователем клавиши удаления;
  • предоставление возможности не обрабатывать специальные символы, такие как символы стирания, удаления и возврата каретки.




Содержание  Назад  Вперед