Возможности терминала
В вычислительной технике и телекоммуникациях возможности терминала — это различные функции терминала, выходящие за рамки тех, которые доступны в чистом телетайпе , которые могут использовать хост-системы (и программы, которые на них работают). Это (в основном) управляющие коды и escape-коды , которые можно отправлять или получать с терминала. Escape-коды, отправляемые на терминал, выполняют различные функции, на которые способен ЭЛТ- терминал (и программные эмуляторы терминала ), но не телетайп; например, перемещение курсора терминала в нужное положение на экране, очистка и прокрутка всего экрана или его частей, включение и выключение подключенных принтеров, программирование программируемых функциональных клавиш, изменение цветов и атрибутов отображения (например, обратного видео ) и настройка отображения строки заголовка. Escape-коды, полученные от терминала, обозначают такие вещи, как функциональная клавиша , клавиша со стрелкой и другие специальные клавиши ( клавиша Home , клавиша завершения , клавиша справки , клавиша PgUp , клавиша PgDn , клавиша вставки , клавиша удаления и т. д.). нажатия клавиш . [1] [2]
Unix и POSIX: termcap, terminfo и др.
[ редактировать ]В Unix и других POSIX -совместимых системах, поддерживающих терминальный интерфейс POSIX , эти возможности закодированы в базах данных, которые настраиваются системным администратором и доступны из программ через библиотеку terminfo (которая заменяет старую библиотеку termcap ), на которую, в свою очередь, встроенные библиотеки, такие как библиотеки Curses и ncurses , с помощью которых прикладные программы используют возможности терминала для предоставления текстовых пользовательских интерфейсов с окнами, диалоговыми окнами, кнопками, метками, полями ввода, меню и т. д. [3] [4] Цель состоит в том, чтобы это позволило прикладным программам быть независимыми от фактических характеристик терминала. Им не нужно жестко встраивать в свой код какие-либо управляющие коды или escape-последовательности, и поэтому не возникает проблем при использовании на ряде терминалов с различными возможностями. [5]
срок действия
[ редактировать ]The Библиотека termcap (для « терминала ограничения возможностей ») была разработана для систем BSD. Он использует базу данных, хранящуюся в файле /etc/термкап . Эта база данных состоит из серии записей (каждая из которых состоит из одной или нескольких строк в файле, соединенных символами обратной косой черты на концах каждой строки, продолжающейся на следующую), каждая из которых представляет возможности определенного терминала. Поля записи содержат имя или имена типа терминала, за которыми следует последовательность возможностей, разделенных двоеточиями. [3] [2] Сами поля возможностей делятся на три группы:
- характеристики терминала
- К ним относятся такие вещи, как (номинальное) количество строк и столбцов на дисплее терминала, автоматически ли выходные данные переносятся на следующую строку, когда достигают конца строки, и так далее. [2]
- последовательности управления, отправляемые в качестве вывода на терминал
- Они включают в себя управляющие коды и escape-последовательности, отправляемые на терминал для выполнения им некоторого действия (не обязательно действия по отображению). Примером одного из простейших является последовательность вывода для очистки экрана, которая может представлять собой перевод страницы (ASCII FF) символ на некоторых типах терминалов, но может быть, скажем, escape-последовательностью ␛2J на терминале, которому требуются escape-последовательности ANSI . [6] [2]
- последовательности управления, отправленные терминалом в качестве ввода
- Они включают в себя управляющие коды и escape-последовательности, которые терминал отправляет хосту для представления различных действий и событий, таких как функциональных клавиш и клавиш со стрелками . нажатие [2]
термининформация
[ редактировать ]Библиотека terminfo (« терминальная информация » ) была разработана для систем System V. Он использует базу данных, хранящуюся в нескольких файлах в каталоге, которые могут быть по-разному (в разных Unices и POSIX-совместимых системах). /usr/lib/terminfo , /usr/share/terminfo или даже /usr/share/lib/terminfo . [5] (Его расположение даже не одинаково в разных дистрибутивах Linux . [7] )
В отличие от базы данных termcap, база данных terminfo представляет собой машиночитаемую базу данных, созданную из удобного для чтения человеком формата исходного файла с помощью служебной программы. тик . Их можно декомпилировать из машиночитаемой формы обратно в удобочитаемую форму с помощью другой служебной программы. инфокмп . [8] Например, команда для вывода удобочитаемой формы определения терминала «vt100»: [7]
infocmp vt100
Использование машиночитаемого формата было призвано избежать ненужных накладных расходов в прикладных программах, использующих такие системы, как библиотека termcap, на повторный анализ содержимого базы данных для чтения полей записи. Использование нескольких файлов было сделано для того, чтобы избежать подобных накладных расходов, связанных с анализом содержимого базы данных для поиска записи базы данных для целевого типа терминала. Индекс имени типа терминала, по сути, представляет собой обычную структуру каталогов файловой системы Unix/POSIX. Первоначально в Unix были серьезные проблемы с производительностью при работе с большими каталогами, содержащими множество файлов, поэтому terminfo использует двухуровневую структуру, разделяя записи каталога по первым буквам на ряд подкаталогов. Более поздние форматы файловых систем, используемые в системах Unix, не так сильно страдают от таких проблем (поскольку их структуры каталогов на диске больше не представляют собой простые массивы записей, а организованы в деревья или хеш-таблицы), и поэтому необходимость в этом элементе дизайна , который все еще существует в современных реализациях terminfo, с тех пор исчез. [8]
Вспомогательные программы для реализации возможностей терминала
[ редактировать ]В системах Unix Команда tput команды используется для поиска конкретной возможности в базе данных системы и вывода ее на стандартный вывод (который, предположительно, является терминалом, с помощью которого должна выполняться функция, обозначенная этой возможностью). [1] Одна из самых простых операций – очистка экрана. Имя поля базы данных, в котором хранится выходная последовательность, ясно , поэтому аргументы команды для tput программа для очистки экрана [1]
tput clear
Другая операция — это инициализация или сброс терминала до известного состояния по умолчанию (атрибутов символов, шрифтов, цветов и т. д.). Команды для этого: [9]
tput init
и
tput reset
Обычно Команда tput использует тип терминала, указанный в TERM
Переменная среды , одна из управляющих переменных среды терминального интерфейса POSIX . Однако это можно переопределить, чтобы принудительно tput для поиска другого типа терминала в базе данных с параметром командной строки для команды. [1] Так, например, чтобы выполнить последовательность сброса, соответствующую типу терминала с именем «vt100» в базе данных (обычно терминал DEC VT100 ), независимо от типа терминала, указанного в переменных среды, команда:
tput -T vt100 reset
Ссылки
[ редактировать ]Что поддерживает что
[ редактировать ]- ^ Перейти обратно: а б с д Афзал 2008 , с. 419.
- ^ Перейти обратно: а б с д и Фриш 2002 , с. 770.
- ^ Перейти обратно: а б Гроб 1991 , с. 115.
- ^ Гроб 1991 , с. 372.
- ^ Перейти обратно: а б Фриш 2002 , с. 769.
- ^ Кумар 2004 , с. 417.
- ^ Перейти обратно: а б Блюм 2008 , с. 31.
- ^ Перейти обратно: а б Раймонд 2004 , с. 144–145.
- ^ Винзор 2001 , с. 244–245.
Использованные источники
[ редактировать ]- Афзал, Амир (2008). UNIX без границ: начальный подход (5-е изд.). Прентис Холл. ISBN 978-0-13-119449-6 .
- Блюм, Ричард (2008). Библия командной строки Linux и сценариев оболочки . Библейская серия. Джон Уайли и сыновья. ISBN 978-0-470-25128-7 .
- Гроб, Стивен (1991). UNIX system V, выпуск 4: полный справочник . Осборн МакГроу-Хилл. ISBN 978-0-07-881653-6 .
- Фриш, Элин (2002). Основное системное администрирование . Краткое руководство (3-е изд.). O'Reilly Media, Inc. ISBN 978-0-596-00343-2 .
- Кумар, Судхир (2004). Энциклопедия операционной системы . Публикации Anmol PVT. ООО. ISBN 978-81-261-1792-5 .
- Раймонд, Эрик С. (2004). Искусство программирования Unix . Серия профессиональных компьютеров Аддисона-Уэсли. Аддисон-Уэсли. ISBN 978-0-13-142901-7 .
- Уинзор, Дженис (2001). Руководство расширенного системного администратора Solaris 8 (3-е изд.). Прентис Холл PTR. ISBN 978-0-13-027703-9 .
Дальнейшее чтение
[ редактировать ]- Стрэнг, Джон; Муи, Линда; О'Рейли, Тим (1991). Termcap и terminfo . Краткий справочник (3-е изд.). O'Reilly Media, Inc. ISBN 978-0-937175-22-4 .