Изначально у вас были просто тупые терминалы - сначала на самом деле пишущие машинки (похожие на электрическую пишущую машинку, но с рулоном бумаги) (отсюда / dev / tty - TeleTYpers), но позже screen + клавиатурные комбинации - которые только что отправили код клавиши на компьютер, и компьютер отправил обратно команду, которая написала письмо на терминале (т.е. терминал был без локального эха, компьютер должен был заказать терминал, чтобы написать то, что пользователь набрал на терминале) - это одна из причин почему так много важных Unix-команд такие короткие. Большинство терминалов были соединены последовательными линиями, но (по крайней мере) один был напрямую подключен к компьютеру (часто в одной комнате) - это была консоль. Лишь немногим избранным пользователям было доверено работать с «консолью» (это часто был единственный «терминал», доступный в однопользовательском режиме).
Позже также были некоторые графические терминалы (так называемые «xterminals», которые не следует путать с xterm
-program) с экраном и графическим экраном, клавиатурой, мышью и простым процессором; который мог просто запустить X-сервер. Они сами не делали никаких вычислений, поэтому X-клиенты работали на компьютере, к которому они были подключены. У некоторых были жесткие диски, но они также могли загружаться по сети. Они были популярны в начале 1990-х, до того, как компьютеры стали такими дешевыми и мощными.
«Эмулятор терминала» - «окно терминала», которое вы открываете с помощью таких программ, как xterm
или, konsole
- пытается имитировать функциональность таких тупых терминалов. Также программы типа PuTTY
(Windows) эмулируют терминалы.
На ПК, где «консоль» (клавиатура + экран) и «компьютер» - это больше единое целое, вместо этого вы получаете «виртуальные терминалы» (в Linux - клавиши Alt + F1 - Alt + F6), но они тоже имитировать терминалы в старом стиле. Конечно, когда Unix / Linux становится все более настольной операционной системой, часто используемой отдельным пользователем, вы теперь выполняете большую часть своей работы «за консолью», где пользователи раньше использовали терминалы, соединенные последовательными линиями.
Это, конечно, оболочка, которая запускает программы. И он использует fork-systemcall (язык C) для создания своей копии с настройками среды, а затем exec-systemcall используется для превращения этой копии в команду, которую вы хотели выполнить. Оболочка приостанавливается (если команда не выполняется в фоновом режиме), пока команда не завершится. Поскольку команда наследует настройки для stdin, stdout и stderr из оболочки, команда записывает данные на экран терминала и получает ввод с клавиатуры терминала.