Компьютерный терминал
Компьютерный терминал (англ. computer terminal) — это электронное или электромеханическое аппаратное устройство, предназначенное для ввода данных в компьютер или вычислительную систему и вывода данных от них. Ранние компьютеры зачастую имели только переднюю панель для отображения и ввода отдельных битов, а для текстового ввода/вывода через клавиатуру требовали подключения терминала. Первыми широкораспространёнными терминалами были телетайпы — устройства с печатью информации на бумаге[1][2], появившиеся задолго до внедрения экранов. Компьютер обычно передавал строку данных для печати на бумагу и принимал ввод также строками через клавиатуру по последовательному интерфейсу или иным способом. С середины 1970-х годов — с появлением микрокомпьютеров (например, Sphere 1, Sol-20, Apple I) — схемы отображения и клавиатуры интегрировали в персональные компьютеры и рабочие станции, где вывод осуществлялся на ЭЛТ-дисплей или обычный телевизор, однако большинство крупных вычислительных систем всё ещё требовало отдельного терминала.
Ранние терминалы были относительно дешевыми, но намного медленнее перфокарт или перфоленты для ввода данных. С распространением систем разделения времени терминалы постепенно заменили устаревшие способы взаимодействия. Развитие терминалов ускорялось с появлением недорогих видеоэкранов. Скорость работы первых телетайпов составляла 75 бод — около 10 символов в секунду, а к 1970-м годам видеотерминалы достигали скоростей передачи данных в 2400–9600 бит/с, а терминалы пакетной обработки — до 19 600 бит/с и выше.
Функции терминала ограничивались транскрипцией и вводом данных; устройства с более заметными возможностями локальной обработки часто называли «интеллектуальными терминалами» или толстыми клиентами. Терминал, зависящий от вычислительной мощности основной системы, назывался «глупым терминалом»[3] или тонким клиентом[4]. В эпоху последовательных портов (RS-232) под «интеллектуальным терминалом» иногда понимался не терминал с локальной обработкой, а устройство с расширенным набором управляющих кодов — этот смысл сохранялся до устаревания аппаратных терминалов.
С течением времени терминалы теряли популярность по мере перехода от командных интерфейсов к графическим, а также от централизованных вычислений к персональным компьютерам и мобильным устройствам. Современный пользователь обычно взаимодействует с сервером через сеть, используя веб-браузер и иные приложения с графическим интерфейсом. Для эмуляции физических терминалов сейчас широко применяются эмуляторы терминалов, позволяющие работать с операционной системой и командной строкой.
История
Конрад Цузе оснастил свою вычислительную машину Z3 (1941) и последующую Z4 (1942–1945) клавиатурой — однако только для ввода числовых данных, а программы и команды загружались с перфоленты. Для вывода использовался ряд сигнальных ламп («blinkenlights»).
В 1956 году компьютер Mark I первым получил клавиатурно-принтерный комплект для прямого ввода данных и команд и вывода результатов[2]. Это был аппарат Friden Flexowriter, долгое время использовавшийся и на других компьютерах вплоть до 1960-х годов.
Категории
Ранние пользовательские терминалы к компьютерам были, как и Flexowriter, электромеханическими телетайпами — например, Teletype Model 33, изначально разработанным для телеграфии; они классифицировались как KSR («клавиатурный ввод — приём») и ASR («автоматизированный ввод-вывод»). Некоторые модели ASR снабжались считывателем и перфоратором ленты, позволявшими записывать, а затем повторно вводить программы с ленты. Для передачи данных использовался интерфейс токовая петля, распространённый в телеграфии. Была доступна и простейшая (RO — «только приём») конфигурация.
Позднее появились специализированные клавиатурно-принтерные терминалы, такие как IBM 2741 (1965)[5] и DECwriter (1970)[6]. Максимальная скорость ввода/вывода для телетайпов составляла 10, для IBM 2741 — 15, а для DECwriter LA30 — 30 символов в секунду. Несмотря на доминирование бумажной печати[6][7], скорость работы была невысокой.
Последним крупным печатающим терминалом стала серия DECwriter; с началом 1980-х гг. печатающие терминалы были вытеснены видеоэкранными устройствами, а DECwriter IV (1982) окончательно отошла от традиционной конструкции телетайпов.
Для удобства пользователя печатные терминалы отводили печатающую головку в сторону после паузы, чтобы можно было увидеть только что введённый текст или исправить ошибку. В DECwriter печатающая головка отклонялась вбок после каждого переноса строки.
Видеотерминал (англ. video display unit, VDU) выводит информацию на экран вместо печати на бумаге и обычно основан на ЭЛТ. В 1950-х видеотерминалы разрабатывались в первую очередь для вывода графики (например, в Массачусетском технологическом институте), а не для текста — для военных, академических и бизнес-приложений, включая SAGE и другие системы раннего предупреждения.
Значимыми вехами стали терминалы Univac Uniscope[8][9][10] и IBM 2260[11] (обе 1964 года). Они работали в блочном режиме: данные с клавиатуры заносились в буфер отображения, а не отправлялись непосредственно на компьютер. Uniscope применял синхронный последовательный интерфейс RS-232, IBM 2260 — синхронные/асинхронные варианты передачи.
Терминал Datapoint 3300 (Computer Terminal Corporation, 1969) был символно-ориентированным устройством, эмулирующим Model 33 Teletype — заменяя телетайп для экономии средств.
Следующее поколение терминалов получило адресуемый курсор и возможность двухмерного вывода текста. Первые — VT05 и Hazeltine 2000 (1970); несмотря на возможности, их часто называли «стеклянными телетайпами»[12], хотя в дальнейшем этим термином обозначали только терминалы без адресуемого курсора.
Эпоха классических видеотерминалов началась с 1970-х годов и сопровождалась ростом разделения времени — ADM-3A, VT52, VT100. Они строились на основе логических схем или простых микропроцессоров (например, Intel 8080), что делало их недорогими и массовыми устройствами.
С середины 1970-х годов оформляются стандартные характеристики:
- символы ASCII (реже EBCDIC; первые модели могли поддерживать только заглавные буквы);
- последовательные порты RS-232 (25-контактные, иногда с поддержкой токовой петли);
- строк 24–25 по 72–80 символов; некоторые модели имели два режима ширины символов;
- наличие курсора (стрелки, клавиши «домой» и т. д.);
- поддержка управляющих кодов (перевод строки, подача сигнала, escape-последовательности для атрибуции текста и позиционирования).
Пик развития серийных видеотерминалов пришёлся на VT100 (1978). К 1980-м годам появилось множество производителей, использовавших различные последовательности команд: Lear-Siegler, ADDS, Data General, DEC, Hazeltine, Heathkit, Hewlett-Packard, IBM, TeleVideo, Wyse и др. (часто несовместимых между собой).
Вариации управляющих кодов привели к развитию ПО, идентифицировавшего терминалы для правильной работы (termcap/terminfo на Unix и др.).
Большинство терминалов были монохромными (зелёный, белый, янтарный, реже синий), цветные встречались редко (например, Wyse WY350 с 64 оттенками на ячейку символа).
К 1990-м годам видеотерминалы были вытеснены сетевыми ПК, но их стандарты повлияли на устройство современных клавиатур (раскладка VT220 легла в основу IBM Model M и её наследников).
Хотя плоскопанельные дисплеи предлагались с 1950-х, ЭЛТ-дисплеи доминировали до массового распространения ПК и появления ЖК-экранов в 2000-е — к этому времени аппаратные терминалы практически исчезли.
Мобильный терминал данных — это вычислительное устройство, применяемое в экстренных службах, общественном транспорте, такси, службах доставки, дорожной помощи и логистике для связи с центральным диспетчером. Терминалы также используются для отображения карт, технических и других данных, необходимых для выполнения заданий транспортным средством, таких как технические чертежи, схемы и информация по безопасности.
Символьно-ориентированный терминал обменивается с хостом данными по одному символу, в отличие от блочных терминалов, которые работают с блоками. Это наиболее распространённый тип терминалов — прост в реализации и программировании, подключение возможно через RS-232, Ethernet или проприетарные протоколы.
Глупые терминалы (англ. dumb terminal)[3] интерпретируют лишь ограниченное число управляющих кодов и не способны обрабатывать escape-последовательности (например, для очистки экрана или позиционирования курсора); такие устройства называют также «стеклянными телетайпами». Этот режим по-прежнему доступен в современных Unix-подобных системах с помощью переменной окружения TERM=dumb. Интеллектуальные терминалы (например, VT52, VT100, ANSI-совместимые) умеют интерпретировать escape-последовательности.
Текстовый терминал, он же терминал или текстовая консоль, — это последовательный интерфейс для ввода и вывода текста. Информация отображается в виде массива символов фиксированного формата. Если вывод осуществляется на видеомонитор, терминал называют видеотерминалом (VDU, VDT).
Системная консоль часто реализуется как текстовый терминал. Современные компьютеры имеют встроенную клавиатуру и дисплей, на Unix-подобных ОС реализуются и виртуальные консоли.
Основной программой для текстового терминала выступает интерпретатор командной строки (shell), принимающий команды пользователя и исполняющий их по нажатию клавиши ввода[13]. К типовым приложениям также относят текстовый редактор, который нередко занимает весь экран, в отличие от текстовых процессоров нового поколения, работающих в графическом интерфейсе. Тем не менее, редакторы востребованы для работы с разметкой (DocBook, LaTeX).
Программы Telix, Minicom и др. позволяют управлять модемом и локальным терминалом для работы с удалёнными системами; на Интернете стандарты telnet, ssh служат тем же целям.
Системно, текстовый терминал ведёт себя как файл: запись отображает текст, чтение — ввод пользователя. В Unix-совместимых ОС терминалы представлены специальными символическими файлами и управляются escape-последовательностями, управляющими символами и вызовами termios (обычно через библиотеки типа ncurses).
Для большинства интерактивных приложений требуется поддержка редактирования командной строки (с помощью библиотеки readline). Более сложные приложения реализуют полноэкранный режим (контролируя цвет, форматирование, курсор и пр., работая с escape-последовательностями через специализированные библиотеки и базы описания вымышленного терминала: termcap, terminfo).
Блочно-ориентированный терминал, или block mode terminal, обменивается с хостом блоками данных. Пример — IBM 3270, однако у большинства мейнфреймов и иных производителей есть аналоги[14].
Блочные терминалы имеют буфер, хранящий не только данные экрана, но и атрибуты полей (цвет, защита, тип поля — числовое/текстовое и др.). Обычно хост отправляет заготовленную панель формы, в которую оператор вводит данные; по завершении, как правило, только изменённые поля передаются обратно. Такая архитектура снижает нагрузку на систему и экономит сетевой трафик.
Первые терминалы поддерживали лишь простейшую проверку, например, числовую валидацию[15]. Поздние — «интеллектуальные» — терминалы на микропроцессоре давали больше локальных возможностей.
Программисты использовали технику хранения состояния на экране (например, в скрытых полях), что впоследствии применяли в HTML и CGI.
При вводе в последнюю позицию экрана на блочном терминале курсор обычно переносился в начало первого открытого поля, а не прокручивал экран; избыточный ввод мог блокировать клавиатуру и сигнализироваться звуком.
Печатающие:
- IBM 1050
- IBM 2740
Пакетные терминалы:
- IBM 2770
- IBM 2780
- IBM 3770
- IBM 3780
Дисплейные:
- IBM 2260
- IBM 3270
- IBM 5250
- TD-830 (Burroughs)
- AT&T Dataspeed 40 (реплика 3270 от Teletype)
- TeleVideo 912/920/925/950[16]
- Tandem Computers VT6530
- HP VT2640[17]
- UNIVAC Uniscope
- DEC VT61/VT62
- Lear Siegler ADM31[18]
- Honeywell VIP 7700/7760
- ITT Courier
- Bull Questar
- ICL 7500
Графический терминал способен отображать изображения и текст. Различают два вида: векторный (рисует линии под управлением хоста, но число видимых линий ограничено электроникой) и растровый (отображает матрицу пикселей, как телевизор). Практически все современные устройства используют растровую технологию, внедрённую позднее из-за технологических и стоимостных ограничений[19][20].
Большинство современных терминалов — графические, то есть выводят изображения. В контексте сетей тонких клиентов их часто называют тонкими клиентами, использующими такие протоколы, как X11 (Unix) или RDP (Microsoft Windows). Пропускная способность зависит от протокола, разрешения, глубины цвета.
Современные графические терминалы поддерживают цвет, различные размеры и шрифты текста.
В начале 1990-х предпринимались попытки стандартизации (например, AlphaWindows для нескольких мультитерминальных окон на одном экране), но проект не был реализован.
Интеллектуальный терминал[21] содержит микропроцессор и самостоятельно обрабатывает ввод-вывод (однако не все устройства с микропроцессором выполняли самостоятельную обработку: их функции могли быть весьма ограничены). Сам термин «интеллектуальный терминал» появился в 1969 году.
Известные примеры: IBM 2250, IBM 2260 (предшественник IBM 3270).
Обычно терминалы подключались к мини- или мейнфрейм-компьютерам по RS-232 или аналогичным последовательным интерфейсам, часто с использованием модемного кабеля типа «null modem». IBM использовала канальные подключения (Bus and Tag), коаксиальный кабель, синхронные или фирменные протоколы. Иногда терминалы других производителей клонировали команды для обеспечения совместимости.
Начиная с моделей типа IBM 3270 и VT100, стало возможным заметно упростить обработку данных за счёт новых возможностей, однако многие программы продолжали использовать старую функциональность.
Некоторые глупые терминалы отвечали на управляющие последовательности без микропроцессора благодаря множеству интегральных схем; настоящим «интеллектуальным» терминалом считалось устройство, обрабатывающее ввод пользователя локально (например, буферизуя форму и отправляя её целиком, а не по символам).
К середине 1980-х большинство интеллектуальных терминалов стало доступнее по цене, позволяя локальное редактирование данных, отправку готовых форм, а также запускать простые операционные системы (например, TeleVideo TS-800 с CP/M-86).
Унификация команд частично реализована благодаря стандарту ANSI X3.64, но различия в кодах сохранялись.
В XXI веке термин «интеллектуальный терминал» может также применяться к специализированным компьютерным системам (например, POS-терминалам для розницы)[22].
Хотя ранний IBM PC внешне напоминал терминал с зелёным монохромным монитором, он был полноценным компьютером с локальной обработкой. Однако при помощи программных эмуляторов функции терминала доступны и на ПК, что в итоге снизило спрос на аппаратные терминалы.
В 1990-е годы популярность приобрели технологии тонких клиентов и X-терминалов — сочетая компактность и обработку данных на сервере с преимуществами терминалов.
В графической среде (например, X Window System) может одновременно отображаться несколько окон, каждое из которых эмулирует терминал. Это устраняет необходимость в отдельном физическом терминале.
Системная консоль
Системная консоль (компьютерная консоль, root-консоль, операторская консоль) — это устройство (клавиатура + экран/принтер) для ввода и показа служебных сообщений системы, прежде всего от BIOS, загрузчика, ядра, init, журнала системы. Традиционно это текстовый терминал, но может быть и графическим.
В более раннем значении системная или аппаратная консоль — компонент для управления компьютером (передняя панель, клавиатура/принтер, клавиатура/дисплей).
До появления алфавитно-цифровых ЭЛТ-консолей некоторые компьютеры (например, IBM 1620) использовали пишущую машинку и переднюю панель, а первый электронный Manchester Baby — электромеханические тумблеры и ЭЛТ-дисплей для отображения памяти.
Первые ОС поддерживали только одну клавиатурно-печатающую или клавиатурно-дисплейную консоль; позднее появились альтернативные (например, жёсткая копия для протоколирования всех сообщений). К 1960-м стало нормой поддерживать произвольное число консольных устройств, а система могла считать консолью любой терминал с правами администратора.
На мини-компьютерах обычно использовалась последовательная консоль (RS-232) с терминалом типа ASR-33 или DECWriter/VT100, нередко расположенная в защищённой комнате (для безопасности привилегированных операций). Более крупные системы использовали мультиплексоры или сетевые мультипорты. Сейчас последовательные консоли часто применяются для управления «безголовыми» системами или сетевым/телекоммуникационным оборудованием (маршрутизаторы, коммутаторы и др.).
На ПК в качестве консоли выступают встроенная клавиатура и монитор; для централизованного доступа используется коммутатор KVM. В последние годы появились KVM/IP — устройства для удалённого управления по сети.
Часть BIOS (особенно серверных) поддерживают доступ через консоль по последовательному порту (даже без видеовыхода). Многие ОС (FreeBSD, Linux и др.) могут быть настроены для загрузки и работы через последовательную консоль.
C IBM 9672 и позже в крупных системах IBM применяются специализированные Hardware Management Console (HMC) на базе ПК с программным обеспечением IBM.
Обычно вход в систему с консоли допускается и ОС может считать такой доступ более доверенным.
Эмуляция
Эмулятор терминала — это программное обеспечение, эмулирующее работу текстового терминала. Раньше для связи через телефонную линию или последовательное устройство использовались терминалы/программы (например, MacTerminal[23] для Macintosh).
Win32 console в Windows не эмулирует физический терминал с поддержкой escape-последовательностей[24]; потому клиентские или серверные Telnet/SSH-программы для Windows часто реализуют собственную обработку управляющих последовательностей.
В Unix-like системах популярны эмуляторы gnome-terminal, konsole, QTerminal, xterm, Terminal.app — с поддержкой эмуляции VT220, Tektronix 4010 и других терминалов.
Режимы работы
Терминалы могут работать в разных режимах, определяющих, когда ввод отправляется на хост:
- Поксимвольный режим (character mode): каждый введённый символ тут же передаётся системе.
- Построчный режим (line mode): строка буферизуется и передаётся после локального редактирования по нажатию Enter[25].
- Блочный режим (block mode): данные заполняются в формах на экране (курсор можно перемещать по полям, редактировать их локально клавишами Insert, Delete и др.); по завершении блок передаётся хосту[26].
В ряде терминалов различаются клавиши Return и Enter: первая обычно отсылает введённую строку, вторая (в блочном режиме) блок — содержимое формы. В некоторых ОС (например, POSIX) все терминалы работают в поксимвольном режиме; в IBM 3270 для MVS требуется блочный режим[27].
Примечания
Литература
- Bolthouse David. Exploring IBM client/server computing. — Maximum Press, 1996. — ISBN 978-1-885068-04-0.
- Burgess Ross. UNIX systems for microcomputers. — BSP Professional Books, 1988. — ISBN 978-0-632-02036-2.
- Diercks Jon. MPE/iX system administration handbook. — Prentice Hall PTR, 2002. — ISBN 978-0-13-030540-4.
- Gofton Peter W. Mastering UNIX serial communications. — Sybex, 1991. — ISBN 978-0-89588-708-5.
- Raymond Eric S. The art of Unix programming. — Addison-Wesley, 2004. — ISBN 978-0-13-142901-7.
- Rodgers Ulka. UNIX database management systems. — Yourdon Press, 1990. — ISBN 978-0-13-945593-3.
- Topham Douglas W. A system V guide to UNIX and XENIX. — Springer-Verlag, 1990. — ISBN 978-0-387-97021-9.
- Bangia Ramesh. Dictionary of Information Technology. — Laxmi Publications, Ltd, 2010. — ISBN 978-93-8029-815-3.
- IBM Corporation. IBM 3270 Information Display System Component Description. — IBM, 1972.
Ссылки
- Энциклопедия терминалов Terminals Wiki
- Руководство по текстовым терминалам на tldp.org
- "The TTY demystified" от Linus Åkesson
- Сведения о видео-терминалах
- Директива 1999/5/EC о радиооборудовании и терминальном оборудовании
- Список компьютерных терминалов на epocalc.net
- VTTEST — утилита тестирования VT100/VT220/XTerm от Thomas E. Dickey




