Эмулятор терминала
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2009 г. ) |
Эмулятор терминала или приложение терминала — это компьютерная программа которая имитирует видеотерминал , в какой-либо другой архитектуре дисплея. обычно является синонимом оболочки или текстового терминала Хотя термин « терминал» , он охватывает все удаленные терминалы, включая графические интерфейсы. Эмулятор терминала внутри графического пользовательского интерфейса часто называют окном терминала .
Окно терминала предоставляет пользователю доступ к текстовому терминалу и всем его приложениям, таким как интерфейсы командной строки (CLI) и текстового пользовательского интерфейса приложения (TUI). Они могут работать либо на той же машине, либо на другой через telnet , ssh , коммутируемое соединение или через прямое последовательное соединение . В Unix-подобных операционных системах обычно к локальному компьютеру подключено одно или несколько окон терминала.
Терминалы обычно поддерживают набор escape-последовательностей для управления цветом, положением курсора и т. д. Примеры включают семейство стандартов последовательности управления терминалами, известных как ECMA-48 , ANSI X3.64 или ISO/IEC 6429 .
Фон
[ редактировать ]На заре компьютерных технологий, с появлением интерактивных вычислений, преобладающей моделью был центральный компьютер, подключенный к нескольким терминалам. [1] Эта конфигурация, известная как централизованная модель или модель мэйнфрейма, включала в себя мощный центральный компьютер, который выполнял все задачи обработки, а терминалы служили устройствами ввода/вывода для взаимодействия пользователей с системой. Эти системы изначально были основаны на персонажах.
Символьно-ориентированные терминалы
[ редактировать ]Символьно-ориентированный терминал — это тип компьютерного терминала, который обменивается данными со своим хостом по одному символу за раз, в отличие от блочно-ориентированного терминала , который обменивается данными блоками данных. Это наиболее распространенный тип терминала данных, поскольку его легко реализовать и запрограммировать. Соединение с мэйнфреймом или терминальным сервером осуществляется через последовательные каналы RS-232, Ethernet или другие собственные протоколы .
Символьно-ориентированные терминалы могут быть «тупыми» или «умными». Тупые терминалы [2] это те, которые могут интерпретировать ограниченное количество управляющих кодов (CR, LF и т. д.), но не имеют возможности обрабатывать специальные escape-последовательности, выполняющие такие функции, как очистка строки, очистка экрана или управление положением курсора. В этом контексте тупые терминалы иногда называют стеклянными телетайпами , поскольку они, по сути, имеют те же ограниченные функциональные возможности, что и механический телетайп. Этот тип тупого терминала по-прежнему поддерживается в современных Unix-подобных системах путем установки переменной средыTERM
к dumb
. Интеллектуальные или интеллектуальные терминалы — это терминалы, которые также имеют возможность обрабатывать escape-последовательности, в частности escape-последовательности VT52, VT100 или ANSI. Эмуляторы
[ редактировать ]Когда в 1980-х годах персональные компьютеры стали повсеместными, они предложили возможность запуска программного обеспечения на персональном компьютере пользователя, предоставив возможность заменить дорогие и занимающие много места аппаратные терминалы чем-то, что имело дополнительные функции. [3] Сразу стало доступно программное обеспечение, которое могло имитировать функции аппаратных терминалов на ПК. Примерами такого программного обеспечения для DOS были Telix или Telemate, которые были опубликованы в 1988 году и могли эмулировать терминал DEC VT102. [4]
Рабочие станции , обычно работающие под управлением версий Unix , также стали обычным явлением в 1980-х годах. Системы Unix обычно предоставляли доступ к командной строке с помощью локально подключенных или коммутируемых терминалов. Рабочие станции Unix были разработаны для использования в основном через графический интерфейс пользователя (GUI); Чтобы обеспечить доступ к командной строке, графический интерфейс включал приложения-эмуляторы терминала, которые вели себя как локально подключенные терминалы.
В 1990-е годы появились новые операционные системы, такие как Windows и OS/2 , обеспечившие техническую основу для большего количества эмуляторов терминала, таких как Telix для Windows , ZOC для OS/2 или PuTTY , который был первоначально выпущен для Windows в 1998 году и который (вместе с его производные) по сей день остается очень популярным выбором. [5]
Благодаря успеху Linux , особенно работающего в центрах обработки данных и облачных серверах, [6] [ мертвая ссылка ] необходимость доступа к удаленным компьютерам через символьные терминалы остается. Это видно по тому факту, что сегодня списки эмуляторов терминала, которые могут служить альтернативой вышеупомянутому PuTTY, предлагают более 100 альтернатив. [7] [ сомнительно – обсудить ]
Примеры эмулируемых терминалов
[ редактировать ]Многие эмуляторы терминала были разработаны для таких терминалов, как 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 и Unix-подобные системы использовали устройства последовательного порта, такие как порты RS-232 , и предоставляли /dev/*
файлы устройств для них. [8]
В эмуляторах терминала эти файлы устройств эмулируются с помощью пары псевдотерминальных устройств. Эта пара используется для эмуляции физического порта/подключения к конечной точке хост-компьютера — аппаратному обеспечению компьютера, предоставляемому API-интерфейсами операционной системы, некоторым другим программным обеспечением, таким как rlogin , telnet , SSH или другим. [9] Например, в системах Linux это будут /dev/ptyp0
(для главной стороны) и /dev/ttyp0
(для ведомой стороны) псевдотерминальные устройства соответственно.
Существуют также специальные виртуальной консоли, такие как файлы /dev/console
. В текстовом режиме запись в файл отображает текст на виртуальной консоли, а чтение из файла возвращает текст, который пользователь записывает на виртуальную консоль. Как и в случае с другими текстовыми терминалами , существуют также специальные escape-последовательности , управляющие символы и функции , которые программа может использовать, проще всего через такую библиотеку, как ncurses . Для более сложных операций программы могут использовать специальные ioctl системные вызовы консоли и терминала. Устройства можно сравнивать, используя шаблоны vcs («экран виртуальной консоли») и vcsa («экран виртуальной консоли с атрибутами»), например: /dev/vcs1
и /dev/vcsa1
. [10]
Некоторые эмуляторы терминала также включают escape-последовательности для настройки поведения терминала, чтобы обеспечить хорошее взаимодействие между терминалом и программами, работающими внутри него, например, для настройки брекетинга вставки .
Виртуальные консоли можно настроить в файле /etc/inittab
читается с помощью init текстовый режим входа в — обычно он запускает процесс getty для нескольких виртуальных консолей. X Window System можно настроить в /etc/inittab
или с помощью менеджера дисплея X. В ряде дистрибутивов Linux используется systemd вместо init , что также позволяет настраивать виртуальную консоль.
Инструменты интерфейса командной строки
[ редактировать ]Типичные системные программы Linux, используемые для доступа к виртуальным консолям, включают:
chvt
переключить текущую виртуальную консольopenvt
запустить программу на новой виртуальной консолиdeallocvt
закрыть неиспользуемую в данный момент виртуальную консоль
Локальное эхо
[ редактировать ]Эмуляторы терминала могут реализовывать функцию локального эха , которую ошибочно можно назвать « полудуплексной » или все же немного неправильно «эхоплексной» (которая формально является механизмом обнаружения ошибок, а не опцией отображения ввода). [11] [12] [13] [14]
Построчный режим/Локальное редактирование
[ редактировать ]Эмуляторы терминала могут реализовывать локальное редактирование, также известное как «построчный режим». Его также ошибочно называют « полудуплексным ». [ нужна ссылка ] В этом режиме эмулятор терминала отправляет в хост-систему только полные строки ввода. Пользователь вводит и редактирует строку, но во время редактирования она сохраняется локально в эмуляторе терминала. Он не передается до тех пор, пока пользователь не сигнализирует о его завершении, обычно с помощью ↵ Enter клавиша на клавиатуре или какая-либо кнопка «отправить» в пользовательском интерфейсе. В этот момент передается вся строка. Построчный режим подразумевает локальное эхо, так как в противном случае пользователь не сможет видеть линию в процессе ее редактирования и построения. [11] [15] Однако построчный режим не зависит от режима эха и не требует локального эха. При вводе пароля, например, возможен построчный ввод с локальным редактированием, но локальное эхо отключается (иначе пароль будет отображаться). [16]
Сложности построчного режима иллюстрируются опцией построчного режима в протоколе telnet. Чтобы реализовать его правильно, реализация сетевого виртуального терминала, предоставляемая программой эмулятора терминала, должна быть способна распознавать и правильно обрабатывать события «прерывания» и «прерывания», которые поступают в середине локального редактирования строки. [17]
Синхронные терминалы
[ редактировать ]Возможно, этот раздел содержит оригинальные исследования . ( январь 2011 г. ) |
В асинхронных терминалах данные могут передаваться в любом направлении в любое время. В синхронных терминалах протокол контролирует, кто и когда может отправлять данные. IBM 3270, Терминалы на базе используемые с мейнфреймами IBM, являются примером синхронных терминалов . Они работают по существу в режиме «экран за раз» (также известном как блочный режим ). Пользователи могут вносить многочисленные изменения в страницу, прежде чем отправить обновленный экран на удаленный компьютер в качестве одного действия.
Эмуляторы терминала, имитирующие протокол 3270, доступны для большинства операционных систем и могут использоваться как системами администрирования, такими как z9 , так и теми, кто использует соответствующие приложения, такие как CICS .
Другие примеры синхронных терминалов включают IBM 5250 , ICL 7561, Honeywell Bull VIP7800 и Hewlett-Packard 700/92.
Виртуальные консоли
[ редактировать ]Виртуальные консоли , также называемые виртуальными терминалами, представляют собой эмуляцию текстовых терминалов , использующих клавиатуру и монитор персонального компьютера или рабочей станции. Слово «текст» является ключевым, поскольку виртуальные консоли не являются терминалами с графическим интерфейсом и не работают внутри графического интерфейса. Виртуальные консоли присутствуют в большинстве Unix-подобных систем. Они в основном используются для доступа к серверам и взаимодействия с ними без использования графической среды рабочего стола.
См. также
[ редактировать ]- Двоичные синхронные коммуникации
- Список эмуляторов терминала
- Поставщик онлайн-услуг
- Последовательный интерфейс
- Терминальный мультиплексор
Примечания
[ редактировать ]- ^ FU Berlin, 3. Архитектура миникомпьютера.
- ^ «Что такое тупой терминал? Определение и значение» . BusinessDictionary.com . Архивировано из оригинала 13 августа 2020 года . Проверено 13 марта 2019 г.
- ^ «Эмулирование терминала на персональных компьютерах» .
- ^ «Телемат Вики» .
- ^ «SSH-клиенты для Windows» .
- ^ «Использование Linux в дата-центре» .
- ^ «Альтернативы шпаклевке» .
- ^ «Краткая история эмуляции терминала | Турбософт» . www.ttwin.com . Проверено 4 октября 2021 г.
- ^ «Страница руководства Ubuntu: tty — общий интерфейс терминала» . manpages.ubuntu.com . Проверено 4 октября 2021 г.
- ^ «Дамп экрана» . HOWTO по клавиатуре и консоли Linux . Проект документации Linux . Проверено 31 июля 2008 г.
Доступ к текущему содержимому экрана /dev/ttyN можно получить с помощью устройства /dev/vcsN (где «vcs» означает «экран виртуальной консоли»). [...] Из программы обычно лучше использовать /dev/vcsaN («экран виртуальной консоли с атрибутами») — он начинается с заголовка, указывающего количество строк и столбцов, а также расположение курсора. См. vcs(4).
- ^ Перейти обратно: а б Дэйнтит 2004 , с. 171.
- ^ Вейк 2000 , «эхо», с. 478.
- ^ Weik 2000 , «эхоплекс», с. 479.
- ^ Weik 2000 , «режим эхоплекса», с. 479.
- ^ Бангиа 2010 , с. 324.
- ^ Стивенс и Райт 1994 , с. 413.
- ^ Миллер 2009 , с. 590, 591.
Ссылки
[ редактировать ]- Бангиа, Рамеш (2010). «терминал линейного режима». Словарь информационных технологий . Лакшми Публикации, ООО ISBN 978-93-8029-815-3 .
- Дэйнтит, Джон (2004). «эхо». Оксфордский словарь вычислений (5-е изд.). Издательство Оксфордского университета. ISBN 978-0-19-860877-6 .
- Миллер, Филип М. (2009). TCP/IP – Полное руководство по протоколам . Том. 2 – Приложения, доступ и безопасность данных. Универсал-Издательство. ISBN 978-1-59942-493-4 .
- Стивенс, В. Ричард ; Райт, Гэри Р. (1994). TCP/IP проиллюстрирован . Серия профессиональных компьютеров Аддисона-Уэсли. Том. 1: Протоколы. Аддисон-Уэсли. ISBN 978-0-201-63346-7 .
- Вейк, Мартин Х. (2000). Словарь по информатике и коммуникациям . Том. 1. Спрингер. ISBN 978-0-7923-8425-0 .
{{cite encyclopedia}}
: Отсутствует или пусто|title=
( помощь )
Внешние ссылки
[ редактировать ]- Эмуляция терминала в Curlie
- Определение окна терминала от The Linux Information Project (LINFO)