Эмулятор терминала или приложение терминала — это компьютерная программа , которая имитирует видеотерминал в какой - либо другой архитектуре дисплея. Хотя термин « терминал» обычно является синонимом оболочки или текстового терминала , он охватывает все удаленные терминалы, включая графические интерфейсы. Эмулятор терминала внутри графического пользовательского интерфейса часто называют окном терминала .
Окно терминала предоставляет пользователю доступ к текстовому терминалу и всем его приложениям, таким как интерфейсы командной строки (CLI) и приложения текстового пользовательского интерфейса (TUI). Они могут работать либо на той же машине, либо на другой через telnet , ssh , коммутируемое соединение или через прямое последовательное соединение . В Unix-подобных операционных системах обычно к локальному компьютеру подключено одно или несколько окон терминала.
Терминалы обычно поддерживают набор escape-последовательностей для управления цветом, положением курсора и т. д. Примеры включают семейство стандартов последовательностей управления терминалами, известных как ECMA-48 , ANSI X3.64 или ISO/IEC 6429 .
На заре компьютерных технологий, с появлением интерактивных вычислений, преобладающей моделью был центральный компьютер, подключенный к нескольким терминалам. [1] . Эта конфигурация, известная как централизованная модель или модель мэйнфрейма, включала мощный центральный компьютер, который выполнял все задачи обработки, а терминалы служили устройствами ввода/вывода для пользователей, взаимодействующих с системой. Эти системы изначально были основаны на персонажах.
Символьно-ориентированный терминал — это тип компьютерного терминала, который обменивается данными со своим хостом по одному символу за раз, в отличие от блочно-ориентированного терминала, который обменивается данными блоками данных. Это наиболее распространенный тип терминала данных, поскольку его легко реализовать и запрограммировать. Соединение с мэйнфреймом или терминальным сервером осуществляется через последовательные каналы RS-232, Ethernet или другие собственные протоколы .
Символьно-ориентированные терминалы могут быть «тупыми» или «умными». Тупые терминалы [2] — это терминалы, которые могут интерпретировать ограниченное количество управляющих кодов (CR, LF и т. д.), но не имеют возможности обрабатывать специальные escape-последовательности, выполняющие такие функции, как очистка строки, очистка экрана или управление положение курсора. В этом контексте тупые терминалы иногда называют стеклянными телетайпами , поскольку они, по сути, имеют те же ограниченные функциональные возможности, что и механический телетайп. Этот тип тупого терминала по-прежнему поддерживается в современных Unix-подобных системах, если для переменной среды установлено значение . Интеллектуальные или интеллектуальные терминалы — это терминалы, которые также имеют возможность обрабатывать escape-последовательности, в частности escape-последовательности VT52, VT100 или ANSI.TERM
dumb
Поскольку цены на память и вычисления упали, локальная вычислительная мощность увеличилась, что сделало сами терминалы более мощными. Первоначально в этом процессе эмуляция функций терминала представляла собой процесс, который разыгрывался между производителями терминалов, когда производители одного типа терминала эмулировали функции другого производителя. Например, терминал Wyse-60 предлагал в общей сложности 15 так называемых «личностей», среди которых были такие конкуренты, как Televideo -925, DEC VT100 и IBM 3101 . [3]
Когда в 1980-х годах персональные компьютеры стали повсеместными, они предложили возможность запуска программного обеспечения на персональном компьютере пользователя, предоставив возможность заменить дорогие и занимающие много места аппаратные терминалы чем-то, что имело дополнительные функции [4] . Сразу стало доступно программное обеспечение, которое могло имитировать функции аппаратных терминалов на ПК. Примерами такого программного обеспечения для DOS были Telix или Telemate, которые были опубликованы в 1988 году и могли эмулировать терминал DEC VT102 [5] .
В 1990-е годы появились новые операционные системы, такие как Windows и OS/2 , обеспечившие техническую основу для большего количества эмуляторов терминала, таких как Telix для Windows, ZOC для OS/2 или PuTTY , который был первоначально выпущен для Windows в 1998 году и который (вместе с его производные) по сей день остается очень популярным выбором [6] .
Благодаря успеху Linux , особенно работающего в центрах обработки данных и облачных серверах [7] , необходимость доступа к удаленным компьютерам через символьные терминалы сохраняется. Это видно по тому факту, что сегодня списки эмуляторов терминала, которые могли бы служить альтернативой вышеупомянутому PuTTY , предлагают более 100 альтернатив [8] .
Многие эмуляторы терминала были разработаны для таких терминалов, как VT52 , VT100 , VT220 , VT320 , IBM 3270/8/9/E , IBM 5250 , IBM 3179G , Data General D211, Hewlett-Packard HP700/92, Sperry/Unisys 2000-series. UTS60 , Burroughs/Unisys A-серии T27/TD830/ET1100, ADDS ViewPoint, консоль Sun , QNX , AT386, SCO-ANSI, SNI 97801, Televideo и Wyse 50/60. Кроме того, были разработаны программы для эмуляции других эмуляторов терминала, таких как xterm и различных консольных терминалов (например, для Linux ). Наконец, некоторые эмуляторы просто ссылаются на стандарт, например ANSI . Такие программы доступны на многих платформах: от DOS и Unix до Windows и macOS , а также встроенных операционных систем, используемых в мобильных телефонах и промышленном оборудовании.
В прошлом Unix и Unix-подобные системы использовали устройства последовательного порта, такие как порты RS-232 , и предоставляли для них /dev/*
файлы устройств . [9]
В эмуляторах терминала эти файлы устройств эмулируются с помощью пары псевдотерминальных устройств. Эта пара используется для эмуляции физического порта/подключения к конечной точке хост-компьютера — аппаратному обеспечению компьютера, предоставляемому API-интерфейсами операционной системы, некоторым другим программным обеспечением, таким как rlogin , telnet , SSH или другим. [10] Например, в системах Linux это будут /dev/ptyp0
(для ведущей стороны) и /dev/ttyp0
(для ведомой стороны) псевдотерминальные устройства соответственно.
Существуют также специальные файлы виртуальной консоли,/dev/console
такие как . В текстовом режиме запись в файл отображает текст на виртуальной консоли, а чтение из файла возвращает текст, который пользователь записывает на виртуальную консоль. Как и в случае с другими текстовыми терминалами , существуют также специальные escape-последовательности , управляющие символы и функции , которые программа может использовать, проще всего через такую библиотеку, как ncurses . Для более сложных операций программы могут использовать специальные системные вызовы ioctl консоли и терминала. Можно сравнивать устройства, используя шаблоны vcs («экран виртуальной консоли») и vcsa («экран виртуальной консоли с атрибутами»), например /dev/vcs1
и /dev/vcsa1
. [11]
Некоторые эмуляторы терминала также включают escape-последовательности для настройки поведения терминала, чтобы обеспечить хорошее взаимодействие между терминалом и программами, работающими внутри него, например, для настройки брекетинга вставки .
Виртуальные консоли можно настроить в файле, /etc/inittab
читаемом командой init — обычно она запускает процесс входа в текстовый режим getty для нескольких виртуальных консолей. Система X Window может быть настроена /etc/inittab
с помощью диспетчера отображения X. В ряде дистрибутивов Linux вместо init используется systemd , что также позволяет настраивать виртуальную консоль.
Типичные системные программы Linux, используемые для доступа к виртуальным консолям, включают:
chvt
переключить текущую виртуальную консольopenvt
запустить программу на новой виртуальной консолиdeallocvt
закрыть неиспользуемую в данный момент виртуальную консольЭмуляторы терминала могут реализовывать функцию локального эха , которую можно ошибочно назвать « полудуплексной » или все же немного неправильно «эхоплексной» (которая формально является механизмом обнаружения ошибок , а не опцией отображения ввода). [12] [13] [14] [15]
Эмуляторы терминала могут реализовывать локальное редактирование, также известное как «построчный режим». Его также ошибочно называют « полудуплексным ». [ нужна цитация ] В этом режиме эмулятор терминала отправляет в хост-систему только полные строки ввода. Пользователь вводит и редактирует строку, но во время редактирования она сохраняется локально в эмуляторе терминала. Он не передается до тех пор, пока пользователь не сигнализирует о его завершении, обычно с помощью ↵ Enterклавиши на клавиатуре или какой-либо кнопки «отправить» в пользовательском интерфейсе. В этот момент передается вся строка. Построчный режим подразумевает локальное эхо, так как в противном случае пользователь не сможет видеть линию в процессе ее редактирования и построения. [12] [16] Однако построчный режим не зависит от режима эха и не требует локального эха. При вводе пароля, например, возможен построчный ввод с локальным редактированием, но локальное эхо отключается (иначе пароль будет отображаться). [17]
Сложности построчного режима иллюстрируются опцией построчного режима в протоколе telnet. Чтобы реализовать его правильно, реализация сетевого виртуального терминала , предоставляемая программой эмулятора терминала, должна быть способна распознавать и правильно обрабатывать события «прерывания» и «прерывания», которые поступают в середине локального редактирования строки. [18]
В асинхронных терминалах данные могут передаваться в любом направлении в любое время. В синхронных терминалах протокол контролирует, кто и когда может отправлять данные. Терминалы на базе IBM 3270 , используемые с мейнфреймами IBM , являются примером синхронных терминалов . Они работают по существу в режиме «экран за раз» (также известном как блочный режим ). Пользователи могут вносить многочисленные изменения в страницу, прежде чем отправить обновленный экран на удаленный компьютер в качестве одного действия.
Эмуляторы терминала, имитирующие протокол 3270, доступны для большинства операционных систем и могут использоваться как системами администрирования, такими как z9 , так и теми, кто использует соответствующие приложения, такие как CICS .
Другие примеры синхронных терминалов включают IBM 5250 , ICL 7561, Honeywell Bull VIP7800 и Hewlett-Packard 700/92.
Виртуальные консоли , также называемые виртуальными терминалами, представляют собой эмуляцию текстовых терминалов , использующих клавиатуру и монитор персонального компьютера или рабочей станции. Слово «текст» является ключевым, поскольку виртуальные консоли не являются терминалами с графическим интерфейсом и не работают внутри графического интерфейса. Виртуальные консоли присутствуют в большинстве Unix-подобных систем. Они в основном используются для доступа к серверам и взаимодействия с ними без использования графической среды рабочего стола.
Доступ к текущему содержимому экрана /dev/ttyN можно получить с помощью устройства /dev/vcsN (где «vcs» означает «экран виртуальной консоли»). [...] Из программы обычно лучше использовать /dev/vcsaN («экран виртуальной консоли с атрибутами») вместо этого - он начинается с заголовка, указывающего количество строк и столбцов, а также расположение курсора. См. vcs(4).
{{cite encyclopedia}}
: Отсутствует или пусто |title=
( помощь )