Friday, May 18th

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Общая информация Терминалы

Терминалы

Исторически пользователи взаимодействовали с системой, используя подключенные к компьютеру через жестко запаянные линии связи терминалы. Хотя фиксированные терминалы в значительной степени остались в истории, обработка символов, осуществляемая для ввода/вывода с клавиатуры, по-прежнему важна. Наиболее обычный вид сеанса пользователя в FreeBSD использует псевдотерминал. Псевдотерминал состоит из пары устройств, называемых ведущим (master) и ведомым (slave) устройствами. Ведомое устройство предоставляет процессу интерфейс, идентичный с исторически предоставлявшимся этим устройством интерфейсом. Однако вместо того, чтобы ассоциировать с аппаратным устройством для чтения и записи символов, у ведомого устройства есть другой процесс, который управляет им через ведущую часть псевдотерминала, т. е. все, что записывается в ведущее устройство, предоставляется ведомому устройству в качестве ввода, а все, что записывается в ведомое устройство, представляется в качестве ввода ведущему устройству. Псевдотерминалы используются эмулятором терминала X-window, xterm, а также обычными программами удаленной регистрации, такими, как ssh и telnet.

Терминалы поддерживают стандартные системные операции ввода/вывода, а также совокупность специфических для терминала операций управления редактированием вводимых символов и задержек вывода. Обработка символов осуществляется дисциплиной линии связи. Дисциплина линии связи по умолчанию выбирается, когда терминал используется для интерактивной регистрации. Дисциплина линии связи работает в каноническом режиме; ввод обрабатывается с предоставлением стандартных функций, ориентированных на редактирование строк, и представляется процессу построчно.

Экранные редакторы и программы, взаимодействующие с другими компьютерами, обычно работают в неканоническом режиме (обычно называемом также непосредственным (raw mode) или посимвольным (character-at-a-time mode) режимом). В данном режиме ввод передается читающему процессу немедленно и без интерпретации. Обработка специальных символов отключена, стирания или другой обработки строки не осуществляется, и программе, читающей с терминала, передаются все символы.

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

На выводе обработчик терминала предоставляет простые службы форматирования, включая следующее.

Преобразование символа перевода строки в последовательность из двух символов перевода каретки и перевода строки.

· Расширение табуляций.

· Отображение отраженных неграфических ASCII-символов в виде последовательности двух символов в форме «ЛС» (т. е. ASCII-символа вставки, за которым следует ASCII-символ, значение которого является смещением от ASCII-символа «@»).

Каждую из этих служб форматирования процесс может индивидуально отменить посредством управляющих запросов.

Сейчас 65 гостей онлайн

Реклама на сайте: