Чем консоль отличается от терминала

Здесь приведено моё личное незаконченное видение по этому вопросу.

2019-11-23

Консоль

Читая этимологию слова "Console" выясняется, что английское слово console заимствовано из французского console, то есть кронштейн, и обозначает оно кронштейн, в смысле штука, закреплённая в стене, которая поддерживает что-нибудь. Затем это слово стало применяться и к висящим на кронштейнах настенным доскам. После и к доскам, просто стоящим возле стены. И по крайней мере в 19 веке, кто-то назвал доски с клавишами, тумблерами и переключателями, стоящими возле стены в церкви — "organ console", то есть "пульт органа". Видимо, это было первое упоминание слова консоль в смысловом значении "пульт управления".

Univac I at Census Bureau with two operators В 1930-е годы консолью называют доску с кнопками, приделанную к стойке с каким-либо электрическим оборудованием. Не трудно догадаться, что с приходом больших ЭВМ, доски с кнопками для их управления стали называть "operator’s console".

Через консоль первых ЭВМ, инженеры и программисты следили за работой всех систем, управляли загрузкой программ и данных для вычислений, при необходимости занимались отладкой программ, возвращали результат вычислений распечатанным на принтере. Операционные системы с командными оболочками отсутствовали. Задание на вычисление, а также программа и данные для неё, "пробивались" на перфокартах, которые стопкой закладывались в считыватель перфокарт.

В книге "Современные операционные системы. Таненбаум" описано задание на выполнение программы на Фортране. Одна из первых перфокарт в стопке давала команду ЭВМ считать с определённой системной магнитной ленты компилятор Фортрана. На следующих нескольких перфокартах содержалась сама программа для компиляции. Далее следовали перфокарты с командами загрузить и выполнить программу. Следующие перфокарты содержали данные для программы. Последняя карта отмечала конец задания. В современной ОС весь этот процесс оформляется в виде скрипта из командной строки, а тогда было вот так.

Терминал

Слово "терминал" можно перевести как "оконечное устройство". В общем случае под этим термином представляется маломощный компьютер с дисплеем и клавиатурой, предназначенный только для приёма/отправления последовательности байтов от/к серверу. Терминал устанавливает связь с ЭВМ, выводит соответствующие принятым байтам буквы на дисплей, и отправляет байты, генерирующиеся нажатиями клавиш на клавиатуре.

На заре развития ИТ, терминал подлючался к консольному порту большой ЭВМ с помощью кабеля. Но уже через несколько лет терминалы подключались к работающей на ЭВМ ОС через телефонную линию из удалённого места. После повсеместного распространения персональных компьютеров, держать отдельный терминал для работы на удалённом сервере стало нерационально. Мощности самого дешёвого ПК хватало, чтобы программно "эмулировать" работу терминала.

Сейчас мы запускаем "эмулятор терминала" и через интернет подключаемся на консольный порт сервера, контролируя его работу, начиная с загрузки BIOS. Но чаще подключаемся к ОС, работающей на сервере, для работы в текстовом или графическом режиме.

Рассмотрим эволюцию терминалов.

Сначала был телетайп

LGP-30 Manhattan CollegeНачиная с 1950-х годов (LPG-30 1956 год) , к вычислительным машинам стали подключать телетайп (TTY), позволивший поднять работу с ЭВМ на новые высоты.

Изначально, то есть с начала 20-го века, телетайп представлял собой электрическую печатную машинку, которая соедининялась проводами с такой же машинкой в другом городе, что позволяло обмениваться сообщениями между городами и странами. Сообщения набирались на клавиатуре, превращаясь в специальный 5-ти битный код Бодо-Мюррея, который отображался отверстиями на перфоленте. Благодаря перфоленте, сообщениями обменивались в быстром автоматическом режиме.

Инженеры подсоединили телетайп к ЭВМ и стало возможным, загрузив в ЭВМ интерпретатор языка программирования (первое подобие операционной системы), давать задания компьютеру, набирая их на клавишах печатной машинки, или загружая задания с помощью перфорированной ленты. Результат выводился на бумажную ленту, заправленную в эту же печатную машинку!

Если сейчас подключиться к первой консоли через Alt+Shift+F1 и, после авторизации, ввести команду tty, то можно убедиться, что мы подключены к /dev/tty1, то есть в такой же (сейчас, конечно, виртуальный) порт, куда в те времена подключался телетайп. Более того, многие из нынешних компьютеров, при должной настройке, позволят работать с телетайпом и сейчас. На ютюбе можно посмотреть реальную работу с *nix через телетайп.

The console of the IBM 7094 computer at the Computer Centre at U of T (photo courtesy of University of Toronto Archives) Прошло несколько лет. Появились первые операционные системы и многопользовательский режим работы. Бумажная промышленность США исправно выпускала бумажные ленты для телетайпов. В домах появлялись первые телевизоры. За это время инженеры, заботясь о деревьях, подсоединили ЭЛТ-трубки к телетайпам, чтобы была возможность выводить информацию на экран вместо бумаги. Системная консоль всё ещё присутствует на фотографиях.

Сейчас, если понимать под термином терминал какое-либо устройство, предоставляющее возможность ввода и вывода информации, то тот терминал, который подключён непосредственно к компьютеру, и считается консолью.

В консоль выводится системная информация, начиная с запуска BIOS.

Но с приходом сети Интернет, при помощи технологии "KVM over IP", стало возможным любую машину сделать консолью к другому компьютеру.

Работа с TTY

teletype-asr33-mc_800x583.jpg

После подключения к ОС, например Unix, машинка печатала на бумаге login:, в ответ надо было напечатать свой логин. Далее на печать выходило Password:. Здесь, в целях безопасности, пароль не пропечатывался на бумаге, да и сейчас отключена его печать на экране. После успешной авторизации, в ответ на приглашение оболочки, можно было набрать mc и нажать "Ввод", и на бумаге распечатывалось динамическое изображение "Midnight Commander". Ориентируясь по распечатанной картинке, пользователь с помощью "стрелочек" выбирал необходимый текстовый файл, содержимое которого, после нажатия на F4, распечатывалось на бумаге в обрамлении mcedit или nano. Далее можно было приниматься за редактирование... :-)

Консольные приложения

Консольные приложения не были интерактивными. Ещё не было графического интерфейса и мышки. Вывод информации выполнялся построчно на печатающее устройство. Простое редактирование текстового файла представляло из себя серию команд с консоли.

  • Сначала подаём команду на вывод текстового файла на экран консоли или на принтер: $ cat file.txt.
  • Если информации очень много, то с помощью вспомогательных программ уменьшаем её количество до приемлемого и сортируем: $ awk '{print $1}' file.txt | sort.
  • Заметив ошибку подаём команду на её исправление с помощью потокового текстового редактора: $ sed "s|error|noerror|" file.txt.
  • Проверяем результат: $ cat file.txt.