Почему виртуальный терминал «виртуальный», и что / почему / где «настоящий» терминал?


170

Я надеюсь, что вопрос не требует пояснений.

Насколько я понимаю, это gnome-terminalи konsoleявляются виртуальными терминалами, и они в основном служат одной и той же цели, то есть среде командной строки для различных необязательных интерпретаторов команд. (Я даже не уверен, правильно ли это смотреть.)

Я предполагаю , что реальный терминал , где я телепортировался раздавался по неправильной манипуляции Ctrl+ Alt+ F1, F2и т.д.

Но «Там будут Драконы» в этой черной области, так что я ухожу отсюда так быстро, как только смогу нажать Ctrl+ Alt+ F7(я узнал, что где-то: «Когда все черное и темное: нажмите секретные клавиши, чтобы вернуться :)

  • Есть / есть «реальный» терминал (ы) один (ы) , которые существуют за Ctrl+ Alt+ F1, F2ключи и т.д.?
  • И что в них такого «реального» против «виртуальных»?
  • И чем они отличаются? Это так же просто, как «нет GUI» против «GUI»?

PS "консоль" и "терминал" являются синонимами?


22
Не бойтесь командной строки. Это может сделать вашу жизнь намного проще для некоторых вещей, как только вы познакомитесь с ней.
Ларри Колман


8
@Larry: Ободренный твоими словами, я рискнул в логово дракона (Ctrl + Alt + F1), и я действительно вошел в это время! ... Была тишина ..., но я мог видеть мое настроенное приглашение терминала (из страны X) .. Интересно, подумал я и почувствовал себя достаточно смелым, чтобы позвать зверя: я сказал «эхо $ TERM» ... и о чудо! это говорило со мной! Он сказал "linux" ... Сразу понял, что он двоюродный брат "gnome-terminal" и "konsole", который отвечает "xterm" .. Так что это не дракон, а виртуальный терминал эмулируя linux (реальный) терминал.
Peter.O

5
Не бойтесь консоли Linux: он очень мощный, но прирученный Дракон, и он ваш лучший друг в случае сбоя compiz;)
MestreLion

Кроме того, вы можете назвать его двоюродным братом gnome-terminal, ведь они оба служат одной цели. Двоюродный брат, который не зависит ни от какой графической среды, и связан с устройством, которое дает ему несколько больше полномочий.
МестреЛион

Ответы:


136

Насколько я понимаю, виртуальные терминалы в основном служат той же цели: т.е. Среда командной строки для различных дополнительных командных интерпретаторов

Это не совсем верно. Виртуальные терминалы - это просто программы, которые отправляют нажатия клавиш и получают выходные данные (это называется Standard In, Standard Out [и Standard Error]) для процесса в фоновом режиме. Это базовая система вводаобработкивывода , которая лежит в основе вашей операционной системы.


Телетайп (или телепринтер)


Человек, работающий на компьютерном терминале

Посмотрим, смогу ли я объяснить это правильно:

В Unix-подобных системах, таких как Linux, существует понятие «все - это файл» . Это означает, что, например, ваш DVD-привод - это файл (/ dev / sdb1), клавиатура - это файл (/ dev / input / keyboard) и так далее.

Другой набор этих волшебных файлов - TTY, где TTY обозначает Teletype. Пишущая машинка, которая отправляет нажатия клавиш на компьютер, который, в свою очередь, отправляет письма обратно на Type Ball . Это представляло бы физическое устройство, удаленную пишущую машинку, так же, как / dev / lp0 может представлять ваш принтер.


Аппаратный терминал VT100

Рабочие станции Teletype назывались бы «Консоли» или «Терминалы», виртуальный терминал, в отличие от реального, и, таким образом, это любое приложение или механизм, который обеспечивает те же функциональные возможности, что и эта организация рабочего места, - доступ к компьютеру посредством отправки нажатий клавиш. к нему и получая вывод обратно из него, распечатывая его на листе бумаги. Вы можете представить, что модем работает очень похожим образом.

Терминалы, такие как изображенный выше, являются дешевыми и простыми компьютерами, которые имитируют функциональность телетайпа. Когда в наши дни мы говорим об эмуляторе терминала, мы, в свою очередь, обычно имеем в виду программу, которая имитирует функциональность такой машины.

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


«тонкий клиент» - современный аналог VT100

Я надеюсь, что это полезно. Пожалуйста, предупредите мой, если я сделал ошибку.


Означает ли это, что Control-Alt-F1, F2 и т. Д. Также являются виртуальными терминалами, и единственное различие между ними и «gnome-terminal» / «konsole» заключается в том, что они не имеют графического интерфейса пользователя?

Да в принципе. Разница между TTY1-7 и gnome-терминал состоит в том, что система предоставляет ttys, тогда как gnome-терминал и konsole сами работают на tty (который работает с графической подсистемой). Эта абстракция может быть вложена еще глубже (например, переадресация по x, использование протокола telnet для работы в качестве терминала, ...), в конце концов, интерфейс человек-компьютер действует так же, как и любой другой файл. И может быть передан, абстрагирован и перемещен таким же образом.


15
Был ли ваш ответ полезным? ...Абсолютно!! ... очень хорошо объяснено ... я никогда не думал о клавиатуре как о файле, но это имеет смысл (файл только для чтения) ... и "тонкий клиент" - это термин, о котором я слышал некоторые подкасты, но это просто пошло мне на ум, и я подумал, что это относится к какой-то новой архитектуре процессора (а-ля RISC) ... но на самом деле это означает, что хорошие идеи не уходят, и что CICS (или, по крайней мере, его потомство) ) все еще жив и здоров ... очень интересен ... Спасибо (теперь у меня есть немного больше чтения, чтобы заняться ... вы начали что-то :)
Peter.O

19
Это немного случайно и не имеет ничего общего с Linux, но тем не менее: если вы хотите узнать некоторые из самых основ того, как на самом деле работает компьютер, прослушайте twit.tv/sn - эпизоды 233, 235, 237, 239 и 241 . Серия "Как компьютеры работают с абсолютных основ", где "базовый" означает "низкий уровень". Не многие люди знают это , это очень весело.
Стефано Палаццо

1
@TokiTahmid упс! Исправлено, большое спасибо. Это не было преднамеренно, просто ошибка :)
Стефано Палаццо

4
Насколько я помню, VT-100 считался (видео) терминалом, а не виртуальным терминалом или эмулятором терминала. Многие устройства, содержащие их собственные микропроцессоры, считались терминалами, независимо от того, какие устройства они эмулировали, если они были предназначены для обеспечения ввода и вывода непосредственно пользователю. Если интерфейс компьютер / человек реализован в программном обеспечении на устройстве, которое не предназначено для терминала, я бы назвал этот интерфейс или программное обеспечение виртуальным терминалом. Целью всего устройства является различие, а не технология или используемый протокол связи.
Джон С. Грубер

2
@JohnSGruber Ваши воспоминания верны, VT100 и его родственники являются «видеотерминалами», чтобы отличать их от бумажного TTY, главной фотографии в этом ответе. Три преимущества VT по сравнению с TTY были намного тише, не тратя впустую бумагу (но без прокрутки, что не всегда было хорошо), и скорость - TTY был в значительной степени ограничен 110 бодами (10 символов в секунду), которые VT могли подняться до 19 200 бод, IIRC. Позже они даже придумали «умные терминалы», VT с возможностью некоторой обработки входящего сигнала, добавления цвета к тексту и даже, по цене, графики.
Цыганская

14

Я уверен, что называть его «виртуальным терминалом» - это возврат к тому моменту, когда к unix-серверам были подключены физические терминалы ...


Хорошо ... Это имеет смысл ... "тогда", прежде чем существовала многозадачность, и сама идея этого была абстрактной и "виртуальной" ... Так что это та же идея, что и в случае с виртуальной машиной против аппаратного обеспечения. ».
Peter.O

2
Означает ли это, что Control-Alt-F1, F2 и т. Д. Также являются виртуальными терминалами, и единственное различие между ними и «gnome-terminal» / «konsole» заключается в том, что они не имеют графического интерфейса пользователя?
Peter.O

@ fred.bear: взгляните на Википедию .
Джейми Шембри

виртуальный, потому что входной / выходной конец терминала на самом деле подключается к работающему процессу (через / dev / pts / *). Не виртуальные терминалы - это такие вещи, как текстовая консоль Linux (серверная часть, предоставляемая кодом ядра для преобразования нажатий клавиш в символы ввода терминала, и вывод терминала в символы на экране, включая обработку escape-кодов для цвета, перемещения курсора и т. Д.). Или самый старый пример не виртуального терминала, последовательные порты. Управление терминалом обеспечивается тем, что вы подключили к вашему последовательному порту. Вы можете загрузить текстовую консоль через последовательный порт.
Питер Кордес

13

В дополнение к ответам выше, см. Подробное объяснение терминалов. TTY, несмотря на кажущуюся простоту, концептуально является довольно сложной частью Linux.


1
Спасибо, лоевборг. Это действительно интересная статья, которая объясняет многое из "загадочной" терминологии ... (например, "процесс зомби")
Peter.O
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.