LINUX.ORG.RU
ФорумTalks

В чём разница между консолью и терминалом?

 ,


0

1

Можно ли сказать, что консоль - физическая, а терминал - программная компонента?

Так вроде нельзя, вон, википедия пишет, что консоль это интерфейс («Linux-консоль — интерфейс ядра Linux»), т.е. абстрактное понятие. Ещё в википедии написано: «Консоль может быть реализована как физический терминал». Так кто из них физический?

Значит мы имеем дело с многозначными терминами. Где-бы были выписаны их разные значения, не как в википедии, а конкретно для линукса?

«виртуальные консоли — сеансы работы с консолью, между которыми можно переключаться»

a /dev/pts dir with devpts filesystem mounted
CONFIG_UNIX98_PTYS=y «pseudo terminal (PTY) is a software device consisting of two halves: a master and a slave.»

Вот эти виртуальные консоли и псевдотерминалы - это одно и то же, или разные понятия?

Как называется книжка, где это всё разобрано? man vcs

Ранее по теме:
2019-01-15, TesterTester, Может кто то простыми словами объяснить разницу между консолью и терминалом
2004-03-18, anonymous, в чем разница между «консолью» и «буквенно-цифровым терминалом»

Перемещено hobbit из general

★★★★

Последнее исправление: Shushundr (всего исправлений: 2)

терминал - программная компонента

Терминал это физический аппарат, типа древних тонких клиентов.

В современности люди говорят «терминал» и подразумевают «эмулятор терминала» - программу.

Bfgeshka ★★★★★
()
Ответ на: комментарий от Bfgeshka

консоль, виртуальная консоль, терминал, эмулятор терминала, псевдотерминал.

Бывают ли «вирутальные терминалы»?

«как если бы он работал на реальном терминале» - а эти «реальные терминалы» и «терминалы» - это одно и то же?

Shushundr ★★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)

консоль это пульт управления устройством. не обязательно компом. «консоль оператора» более конкретный термин из области эвм, равнозначный терминалу.

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

короче терминал по современному это клавиатура с дисплеем, а консоль - пульт управления.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)

Выше правильно сказали про терминал.

Исторически это физическое устройство, вместо монитора и клавы. А консоль — более абстрактный термин. В более широком смысле это не только юниксовая консоль, но и консоль управление какой-нибудь там атомной электростанцией — с кнопочками.

При этом физически терминал может являться консолью, да. Это не противоположные значения, просто подход с разной стороны.

Ну вот есть у тебя, допустим «подкроватный сервер». И он же «IBM-совместимый компьютер». Слова разные, подход с разных сторон, но является он и тем и другим. Вот так же физический терминал является консолью управления компьютером. Ну точнее являлся, ныне это устаревшее нечто.

В современной речи обычно если говорят консоль, имеют в виду TTY, то, что у тебя по Ctrl+Alt+F3 и т.п. Когда говорят терминал, имеют в виду эмулятор терминала, то есть программу в иксах или вяленом (xterm, urxvt, foot, alacritty, etc.).

Бывают ли «вирутальные терминалы»?

«Вирутальные терминалы» не то чтобы не бывают — так просто не говорят. При желании можно назвать эмулятор терминала виртуальным терминалам. Но обычно так не делают

а эти «реальные терминалы» и «терминалы» - это одно и то же?

См. выше. Когда говорят «терминалы», в современной речи обычно имеют в виду эмулятор терминала. Ну а реальный терминал — понятно — собственно терминал, физическое устройство. Слово «реальные» добавлено для однозначности понимания.

Это примерно как когда говорят «прислал по почте, в смысле прям на бумаге в конверте», чтоб не подумали, что по e-mail. То есть по идее есть почта, а есть электронная почта. Но обычно, когда в современном мире люди говорят «почта», имеют в виду именно электронную. И чтобы не возникало неоднозначности, для обычной приходится добавлять пояснения. Вот то же самое с терминалом и эмулятором терминала. По идее терминал — это устройство, но когда в современной речи говорят терминал, имеют в виду эмулятор терминала. Поэтому когда говорят про реальный терминал как устройство, добавляют пояснения, в данном примере — слово «реальный».


Ну а разницу между виртуальной консолью и псевдотерминалом смотри в коде ядра. С т.з. юзера виртуальная консоль доступна по Ctrl+Alt+F4, а псевдотерминал — обычно по SSH, и этого достаточно ;)

P.S. да, по-русски вообще редко говорят «псевдотерминал». И по-английски-то не то чтобы часто. Чаще прям так и пишут PTY для однозначности.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 6)
Ответ на: комментарий от CrX

Допустим программист запускает дочернюю программу, и хочет перехватить вывод от неё. Для этого он создаёт псевдотерминал, потому что может. Но как сказать, что поток stdout должен теперь выводиться на новый псевдотерминал, а не на исходный, на котором запущена стартовая программа?

Если потоков два - stdout и stderr, то надо создавать два псевдотерминала? А если программа пишет в stdin, то три?

Shushundr ★★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 3)

Консоль чорная а терминал полупрозрачный

alt-tab-let ★★
()
Ответ на: комментарий от alysnix

«вы можете использовать функцию isatty для проверки, является ли файловый дескриптор терминалом или нет»

Здесь это сработает для PTY ? Ведь он не терминал, а псевдотерминал.

Shushundr ★★★★
() автор топика

Исторически консоли это такие шкафы, которые могут работать как терминал (иметь внутри устройства ввода-вывода). Собственно оттуда же всякие шкафы-консоли. Терминал это более общее понятие, устройства ввода-вывода независимо от их формы.

По большому счёту разницы сейчас нет, и консоль и терминал означают примерно одно и то же. Старых железок ни у кого уже нет, последовательными портами почти никто не пользуется, все консоли и терминалы стали виртуальными, комбинации клавиатур и мониторов теперь называются seat. Дальше люди начинают придумывать смыслы, что разница между консолью и терминалом неспроста, и вроде бы консолью чаще называют системные, редко используемые, строго текстовые штуки: консоль ядра, рутовая консоль сервера.

neumond
()
Ответ на: комментарий от mogwai

Терминал — в аэропорте

И застрявший там Виктор Наворски, стремящийся вернуться в Кракожию.

dataman ★★★★★
()

Значит мы имеем дело с многозначными терминами

Нет, скорее пересекающиеся в части значений. См. Круги Эйлера.

utanho ★★★★★
()

2004-03-18, anonymous

Ты за 20 лет не смог понять что такое терминал и в очередной раз спрашиваешь? Не стыдно?

Clockwork ★★★★★
()
Ответ на: комментарий от Clockwork

Да вообще ни капли. Допустим, что у меня есть два потока - stdout и stderr. Они через PTY передаются из вызываемой программы в вызывающую. Сообщения не содержат меток времени, поэтому при выводе на вызывающей стороне они все перемешиваются. Можно ли что-нибудь сделать?

Shushundr ★★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)
Ответ на: комментарий от Shushundr

stdin, stdout, stderr могут не быть связанными с терминалом.

Терминал нужен для общения с человеком. Тип терминала определяет как на нём выполнить некоторый набор стандартных операций.

vel ★★★★★
()
Ответ на: комментарий от vel

Ну мне надо связать, чтобы дочерняя программа могла вызывать isatty и начать выводить всё в красивом цветном виде.

Shushundr ★★★★
() автор топика
Ответ на: комментарий от Shushundr

Дык в чём вопрос?

Программа не должна работать если stdout не терминал?

stderr можно выводить куда-то отдельно.

Если в программе используется буферизация вывода, то его нужно сделать построчным, тогда stdout и stderr будут в разных строках.

vel ★★★★★
()
Ответ на: комментарий от vel

Вопрос в том, что переключение процессов это другое. Программ две - вызываемая и вызывающая. Они в разных процессах.

Допустим вызываемая программа вывела строку в stdout, затем в stderr, затем снова в stdout. Затем произошло переключение процесса и вызывающая программа пытается прочитать, что там вызываемая программа вывела.

Вызывающий процесс читает два вывода stdout подряд (потому что может), а не разделив их выводом stderr. Всё, строки выведены в неправильном порядке.

Shushundr ★★★★
() автор топика
Ответ на: комментарий от Shushundr

У тебя одно вычислительное ядро? :)

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

Если данные передаются без временных меток через разные потоки, то вывести их в оригинальном порядке невозможно т.к. нет гарантий что читающий процесс всегда готов к чтению.

vel ★★★★★
()

Нет разницы. У нас есть разница только между эмулятором терминала и TTY по факту (да и то в основном только потому что в TTY есть фреймбуффер а в эмуляторах терминала свои велосипеды для вывода картинок могут быть а могут и не быть). Консоль или терминал в физическом воплощении остались где-то в 90-ых где они уже были раритетом.

peregrine ★★★★★
()

Применительно к командной оболочке в ОС - одно и то же. Разница только в дополнительных значениях вроде того, что терминал это ещё и физическое устройство для удалённой работы с некой вычислительной системой, т.е. например кассовый аппарат или консоль - вынесенный вбок конструктивный элемент. Или там абстрактный программный интерфейс типа /dev/tty*

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 2)
Ответ на: комментарий от Shushundr

Если нет возможности модифицировать программу посылающую данные, то LD_PRELOAD c перехватом write() для fd=1 и fd=2 которая опакечивает каждый вывод, IMHO, интересный варант. И писать их всех в fd=1.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)

Консоль - это иксбокс, а терминал - в Шереметьево. 😊

frunobulax ★★★
()

Семантически разница такая:

Консоль – это какой-то «вынос» из чего-то «основного». Например когда из здания торчит бетонная плита - это консоль, если из дома торчит балка - это консольная балка. Балкон например могут монтировать на две консольные балки, торчащие из фасада. Консоль - это какая-то архитектурная хрень, торчащая из здания для красоты, например: https://upload.wikimedia.org/wikipedia/commons/4/41/Fotothek_df_tg_0007892_Architektur_%5E_Volute_%5E_Akanthus.jpg У самолётов часть крыла самолёта, которая растёт из «основного тела» тоже называется консоль.

Терминал – это что-то, чем заканчивается нечто протяжённое. Линия связи, линия транспорта. Терминал шереметьево - это некое окончание ПЕШЕХОДНОГО пути, к которому могут стыковаться самолёты и в этой точке пешеходный путь переходит в авиапуть. Терминировать - «оформлять окончание». Терминал мобильной связи, например - это абонент, это такая штука, где канал связи кончается чем-то «определённым» или «переходным»: терминал мобильной связи конвертирует живого мясного человека и его чувства и сигналы в радиосигнал, допустим.

Терминал – оно значительно дальше, чем консоль. Также, в определении терминала чуть больше «самостоятельности». Терминал МЕНЬШЕ опирается на «что-то основное», а взаимодействует с чем-то основным через что-то ПРОТЯЖЁННОЕ. До терминала есть некая протяжённая линия, до консоли нет ничего протяжённого, консоль торчит сама прямо из чего-то «основного».

В компьютерах поэтому правильно так:

Консоль - какая-то хрень, запущенная прямо на думающем компе-мейнфрейме и возможно даже не использующая никаких-там TCP-соединений ни хосту, а пользующаяся прямо драйвером клавиатуры иксов и драйвером вывода картинки.

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

lesopilorama
()
Последнее исправление: lesopilorama (всего исправлений: 2)

Терминалы стоят в терминальных классах на втором этаже. Там сидят барышни-программисты. Красивые. В кружевах, духах и тишине.

Сама ЭВМ и её консоль стоит на третьем этаже. Там сидят инженеры-очкарики. И всё жужжит.

А на первом этаже - ни консолей, ни терминалов. Зато много электричества и холодильного оборудования. Там сидят лежат живут Петровичи и фляги с надписью «спирт». Без Петровичей вся эта хрень просто не будет работать, как её ни назови.

Toxo2 ★★★★
()

Отчасти уже ответил на данный вопрос. Остаётся раскрыть понятие «Консоль».

Консоль – это что-то к чему-то приставленное, не самостоятельное, играет роль вспомогательной функции.

В Википедии по этому поводу написано: Консоль (от англ. console) — другое название пульта управления или приборной панели.

Может ли быть компьютер (вычислительный центр) без клавиатуры, мышки, дисплея и принтера, то есть, без устройств ввода и вывода информации? Вполне. Могут ли быть перечисленные устройства самостоятельными? Увы. Зато они могут быть приборной панелью и пультом управления вычислительным центром, то есть – консолью.

Как и в случае с эмулятором терминала, может быть и виртуальная консоль. Например, Web-интерфейс управления сервером вполне можно считать виртуальной консолью.

wonit
()
Последнее исправление: wonit (всего исправлений: 1)

Строго говоря — никакой. Что в винде консоль, в линуксе терминал. Одно лишь можно сказать, что у браузера консоль, а у программ, запускаемых из консоли или терминала CLI. Если углубляться в терминологию, то консоль — это устройство ввода, которое присоединено к телевизору, например, Dendy была игровой консолью как и сега, а всякие sony — уже приставка. Терминал — это устройство для удаленного управления чем-либо типа реактора атомной электростанции как можно дальше от человека за пультом, а консоль где-то рядом. Юниксы появились очень давно в сравнении с виндой и там как раз-таки первым терминалом была программа для работы с телетайпом, те там вводился текст с клавы и передавался кому-то по телефонной сети. Короче по этой давней традиции теперь консоли в линуксах (которые не юниксы, но во всем косплеят их) - это терминалы, а терминалы в винде — консоли. В гноме лишь эту порочную практику попытались разорвать, обозвав свой терминал консолью. Я думаю, что правильно было бы говорить не эмулятор терминала, а тупо консоль. Можно везде писать консоль чтобы технонацисты, выступающие за чистоту терминологии, бомбили

rtxtxtrx ★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от wonit

Плод ложной начитанности

Ну да, куда мне до «начитанных» людей, которые на полном сурьезе ссылаются на педивикию

rtxtxtrx ★★
()
Ответ на: комментарий от rtxtxtrx

В Википедии (правильное название) далеко не всегда статьи паршивого качества. Есть даже запредельно умно написано, ещё не в каждом учебнике такое найдёшь. В данном случае вполне корректное описание термина. Если есть возражения по написанному в Википедии – напишите здесь аргументированную критику.

wonit
()
Ответ на: комментарий от rtxtxtrx

Я чет ступил… У меня ж еще и Konsole перед носом, те божественные кеды первыми вещи своими именами назвали, тем более давно все эти сетевые функции выкинуты из терминалов и ssh и проч — это отдельные программы. В современном «терминале» нет ничего из того, что его роднит с историческими терминалами, зато осталось tty от слова teletype. Бред.

rtxtxtrx ★★
()
Ответ на: комментарий от wonit

Ты прочитал педивикию, пересказал писанину от туда @ с умным лицом пытаешься всем доказаь, что та истина последней инстанции… Хотя всем видны твои странные вопросы уровня «Я познаю мир» (была такая книга в 90-х, но ты и этот прикол не выкупишь)

rtxtxtrx ★★
()
Ответ на: комментарий от rtxtxtrx

А Vivaldi это музыкальная программа, судя по Вашей логике? Тогда понять не могу, почему Telegram телеграммы не отправляет?

wonit
()
Ответ на: комментарий от wonit

Ты хоть знаешь, что он от разрабов браузера Opera, а в опере (оперный театр просто оперой называют в англ) Вивальди играл на скрипке? Не пугай меня своими «начитанностью» и «остроумием»

rtxtxtrx ★★
()
Ответ на: комментарий от rtxtxtrx

«Я познаю мир» (была такая книга в 90-х, но ты и этот прикол не выкупишь)

И в чём проблема? Он не обязан знать все приколы и быть читавшим все книги 90-х

Shushundr ★★★★
() автор топика
Ответ на: комментарий от lesopilorama

Терминал/терминальное/терминальная – что-то конечное. Например, терминальное состояние – пограничное состояние перед клинической смертью. Происходит от заимствованного из латыни слова terminālis «конечный, пограничный», что в свою очередь происходит от слова terminus «граница, ориентир, крайняя точка».

Так что, не факт, что это нечто будет протяжённым.

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

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

wonit
()
Ответ на: комментарий от rtxtxtrx

Если углубляться в терминологию, то консоль — это устройство ввода, которое присоединено к телевизору, например, Dendy была игровой консолью как и сега, а всякие sony — уже приставка.

Это ты сейчас неиллюзорно заявил, что между игровой «консолью» и видеоприставкой есть принципиальная разница?

Если «да», то в чём же?

LamerOk ★★★★★
()

Не ищите разницы, она сейчас условная. По сути терминал, или эмулятор терминала, это программа, в которой запущена консоль, в которой запущено консольное приложение.

dmitry237 ★★★★
()
Ответ на: комментарий от LamerOk

консолью, которая валялась за антресолью, еще что-то называли

rtxtxtrx ★★
()
Ответ на: комментарий от dmitry237

Сейчас и сети, и машины (компьютеры), и станки, всё эмулируются и виртуализируются, про терминалы и консоли даже речи нет.

wonit
()
Ответ на: комментарий от LamerOk

если унаследовать совковую терминологию типа «магнитофон-приставка»

то возможно он имел ввиду количество подключаемой периферии и всяких устройств. т.е. просто к приставке уже подключать нечего. наоборот, приставку подключают к чему-то. и она является конечным финальным звеном (с оговорками).

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

соглашусь, что разница в терминологии слишком уж натужная.

а под идеальной видеоприставкой в вакууме, можно вспомнить какой-нибудь анахронизм типа pong. где даже звука не было.

n_play
()

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

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 3)
Ответ на: комментарий от alysnix

консоль оператора

Самое смешное, если погуглить «консоль терминала» ;) Части целого, которые из-за метонимического переноса теперь означают одно и то же.

slackwarrior ★★★★★
()
Ответ на: комментарий от Shushundr

Кто-то спрашивал книгу. Или я ошибаюсь? Вот благо участников данного форума до написания учебника FreeBSD не пускают, так бы и там по сути всё в говно превратили и свою терминологию придумалине от большого ума.

wonit
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)