Какая разница между «терминалом», «оболочкой», «tty» и «консолью»?
Я думаю, что эти термины почти ссылаются на одно и то же, когда они используются свободно:
- терминал литий>
оболочки литий>
- терминал
- консоль
Что именно относится к каждому из этих терминов?
8 ответов
Терминал находится в конце электрического провода, оболочка - это дом черепахи, tty - странная аббревиатура, а консоль - это своего рода шкаф.
Ну, этимологически говоря, во всяком случае.
В терминологии unix короткий ответ заключается в том, что
- terminal = tty = среда ввода /вывода текста
- console = физический терминал
- shell = интерпретатор командной строки
Консоль, терминал и tty тесно связаны. Первоначально они означали часть оборудования, через которое вы могли взаимодействовать с компьютером: в первые дни Unix это означало файла устройства , который реализует ряд дополнительных команд ( ioctls ) за пределами чтения и записи. По своему обычному значению терминал является синонимом tty. Некоторые ящики предоставляются ядром от имени аппаратного устройства, например, с ввода, поступающего с клавиатуры, и выхода, идущего на экран текстового режима, или с вводом и выводом, передаваемым по последовательной линии. Другие tty, иногда называемые псевдо-ttys , предоставляются (через тонкий слой ядра) с помощью программ под названием эмуляторы терминалов , например Xterm ( работает в X Window System ), Экран (который обеспечивает слой изоляции между программой и другим терминалом), Ожидать (для взаимодействия с терминалами сценариев) и т. Д.
Терминал слов также может иметь более традиционное значение устройства, через которое он взаимодействует с компьютером, как правило, с клавиатурой и дисплеем. Например, X-терминал является своего рода тонким клиентом , компьютер специального назначения, единственной целью которого является для управления клавиатурой, дисплеем, мышью и иногда с другими периферийными устройствами для взаимодействия с людьми, с реальными приложениями, запущенными на другом, более мощном компьютере.
A консоль - это, как правило, терминал в физическом смысле, который по определенному определению является основным терминалом, напрямую подключенным к машине. Консоль отображается в операционной системе как (реализованная с помощью ядра) tty. В некоторых системах, таких как Linux и FreeBSD, консоль отображается как несколько tty (специальные комбинации клавиш переключаются между этими tty); просто чтобы запутать вопросы, имя, данное каждому конкретному tty, может быть «консолью», «виртуальной консолью», «виртуальным терминалом» и другими вариантами.
См. также Почему виртуальный терминал â € œvirtualâ €, и что /почему /где находится «реальный терминал»? .
A shell - это основной интерфейс, который пользователи видят, когда они входят в систему, основной целью которых является запуск других программ. (Я не знаю, является ли исходная метафора, что оболочка является домашней средой для пользователя или что оболочка - это то, что работают другие программы.)
В кругах unix оболочка специализируется на значении командной строки , в центре которой входит имя приложения, которое нужно запустить, а затем имена файлов или других объектов, на которые должно действовать приложение, и нажатие клавиши Enter. В других типах сред не используется слово «shell»; например, оконные системы включают в себя: диспетчеры окон и настольные среды - а не "оболочка".
Существует много разных оболочек unix. Популярные оболочки для интерактивного использования включают Bash (по умолчанию на большинстве установок Linux), zsh (что подчеркивает силу и настраиваемость) и рыба ( что подчеркивает простоту).
Командная оболочка включает в себя конструкции управления потоком для объединения команд. Помимо ввода команд в интерактивном приглашении пользователи могут писать сценарии. Наиболее распространенные оболочки имеют общий синтаксис, основанный на Bourne_shell . При обсуждении « программирования оболочки » оболочка почти всегда подразумевается как оболочка в стиле Бурна. Некоторые оболочки, которые часто используются для сценариев, но не имеют дополнительных интерактивных функций, включают оболочку Korn (ksh) и много вариантов пепла . Практически любая Unix-подобная система имеет оболочку стиля Bourne, установленную как /bin/sh
, обычно ash, ksh или bash.
В системном администрировании unix пользовательская оболочка - это программа, которая вызывается при входе в систему. Обычные учетные записи пользователей имеют оболочку командной строки, но пользователи с ограниченным доступом могут иметь ограниченная оболочка или какая-либо другая конкретная команда (например, для учетных записей только для передачи файлов).
Разделение труда между терминалом и оболочкой не является полностью очевидным. Вот их основные задачи.
- Вход: терминал преобразует ключи в управляющие последовательности (например, Влево â † '
\e[D
). Оболочка преобразует управляющие последовательности в команды (например,\e[D
â † 'backward-char
). - Линейное редактирование, история ввода и завершение предоставляются оболочкой.
- Терминал может предоставить свое собственное редактирование линии, историю и завершение вместо этого, и только отправлять строку в оболочку, когда она готова к выполнению. Единственным общим терминалом, который работает таким образом, является
M-x shell
в Emacs.
- Терминал может предоставить свое собственное редактирование линии, историю и завершение вместо этого, и только отправлять строку в оболочку, когда она готова к выполнению. Единственным общим терминалом, который работает таким образом, является
- Вывод: оболочка генерирует такие команды, как «disisplay
foo
», «переключение цвета переднего плана на зеленый», «переместите курсор на следующую строку» и т. д. Терминал действует в соответствии с этими инструкциями. - Приглашение представляет собой концепцию оболочки.
- В оболочке никогда не отображается результат выполнения команд (если не перенаправлен). История вывода (прокрутка) является чисто терминальной концепцией.
- Копирование-вставка между приложениями обеспечивается терминалом (обычно с помощью мыши или последовательностей клавиш, таких как Ctrl + Shift + V или Shift + Вставить ). Оболочка может также иметь свой собственный механизм внутренней копии (например, Meta kbd> + W и Ctrl + Y ).
- Управление заданиями (запуск программ в фоновом режиме и управление ими) в основном выполняется оболочкой. Тем не менее, это терминал, который обрабатывает комбинации клавиш, такие как Ctrl + C , чтобы убить задание переднего плана и Ctrl + Z чтобы приостановить его.
A терминал или консоль - это часть аппаратного обеспечения, с помощью которой пользователь может взаимодействовать с хостом. В основном клавиатура в сочетании с текстовым экраном.
В настоящее время почти все терминалы и консоли представляют собой «виртуальные».
Файл, представляющий терминал, традиционно называется файлом tty . Если вы посмотрите в директорию «/dev» системы UNIX, вы найдете много файлов tty , подключенных к виртуальным консолям (например, tty1 на linux), виртуальным терминалам (например, pts /0) или физически подключенное оборудование (например, ttyS0 - это физический последовательный терминал, если он есть, подключен к первому последовательному порту хоста).
Консоль должна быть частью аппаратного обеспечения, физически связанного с (или частью) хоста. Он играет особую роль в системе: основной задачей является доступ к системе для обслуживания, а некоторые специальные операции могут выполняться только с консоли (например, см. single user mode
). A терминал может быть и обычно является удаленным аппаратным обеспечением.
Последняя, но не менее важная, оболочка - это специальная программа, которая взаимодействует с пользователем с помощью управления tty и предлагает пользователю способ запуска другие программы (например, bash, csh, tcsh).
A эмулятор терминала - это программа, которая эмулирует физический терминал (например, xterm, gnome-terminal, minicom).
Итак, когда вы смотрите на «текстовое окно» в вашей Linux-системе (под X11), вы ищете: эмулятор терминала , подключенный к виртуальному терминалу , идентифицированный файлом tty , внутри которого выполняется shell .
КРАТКОЕ объяснение:
Консоль - это терминал - то есть система имеет одну консоль и потенциально несколько терминалов. Консоль обычно является основным интерфейсом для управления компьютером, например, пока он все еще загружается.
Терминал - это сеанс, который может принимать и отправлять ввод и вывод для программ командной строки. Консоль - это особый случай.
TTY - это, по сути, псевдо-устройство, называющее его ресурсом ядра, который используется процессами для доступа к определенному терминалу. TTY могут быть привязаны к аппаратным средствам, таким как последовательный порт, или могут быть виртуальными, например, создаваться, когда пользователь регистрируется через сеть
Оболочка - это программа, которая используется для управления и запуска программ. Он часто используется в интерактивном режиме через терминал. Существует несколько программ Shell, Bash, возможно, является наиболее распространенной используемой оболочкой сегодня. Другие оболочки, не имеющие особого порядка, включают Bourne Shell, C-shell, Dash, Tsch, Ksh и все более популярный zsh. Есть еще много.
Когда у вас есть GUI, вы можете использовать терминальную программу для рисования красивой рамки с изменяемой размерностью, добавления полос прокрутки и форматирования текста и т. д. для сеанса терминала. Часто они называются терминальными эмуляторами, и иногда они могут обрабатывать несколько сеансов с помощью концепции TAB. Терминальный эмулятор часто запускает оболочку, чтобы вы могли интерактивно работать в командной строке.
A TTY (т. е. T ele TY pewriter) - это специальное устройство, которое позволяет людям, которые являются глухими, слабослышащими или речь -бесплатно использовать телефон для связи, позволяя им вводить текстовые сообщения. TTY требуется на обоих концах разговора, чтобы общаться.
OR
TTY - терминал , который используется для ввода текстового сообщения.
Shell : внешняя защитная покрывающая часть семенного ядра, т. е. ядро.
ИЛИ
рамки или внешнюю структуру для центральной или существенной части системы.
Уже есть два отличных ответа, но Ī̲ хотел бы добавить информацию о фразе â € œvirtual terminalâ € . Как правило, это означает что-то, что обеспечивает внешний вид /функциональность терминала i.â € ¯e. a терминал-эмулятор в широком смысле , Но в первые дни Linux (1994 - 95) использовалось синонимом с pty эмуляторы терминалов.
Linux vt
(драйвер системной консоли текстового режима) был первой частью его ядра. Первоначально он использовался для подключения к мэйнфреймам, и в этом смысле это «виртуальный терминал», отсюда и название. Код, управляющий виртуальными консолями находится в vt.c
. Инженеры ядра Linux последовательно используют слово «консоль» для обозначения tty1, tty2â € | и префикса «vc_» для них. Например, существует функция vc_allocate
. С другой стороны, разработчики таких инструментов пользовательского пространства, как kbd
и console-tools
, использовали «виртуальную консоль» (VC) и «виртуальный терминал» (VT) взаимозаменяемые. Ī̲ связался Andriesâ € ¯E. Brouwer и попросил его уточнить терминологию, используемую ранними разработчиками (1994-1995). Андрис любезно предоставил некоторые ответы. Он утверждает, что VT и VC являются синонимичными и «неделимыми» аббревиатурами.
- >
В общем, виртуальная консоль - это виртуальный терминал, но обратный isnâ € ™ т истины. Эти «виртуальные терминалы», которые не являются виртуальными консолями, действительно являются псевдотерминами (как утверждает Андриес, эти не являются VT ). В отличие от виртуальных консолей, где ядро предоставляет терминальные функции для консольного приложения, псевдотермины используют PTY-устройства для организации связи между консольными приложениями и программой создания терминала, которая работает в пользовательском пространстве . Примерами являются эмуляторы терминалов на основе X и sshd
, которые выделяют псевдометрию для каждого сеанса входа в систему. Псевдота не может быть названа «консолью» - это ошибка.
-
Terminal = интерфейс, который обеспечивает отображение вывода и клавиатуру для ввода в сеанс оболочки.
-
Shell = интерпретатор, который выполняет команды, введенные как строка
-
Консоль: На самом деле мы используем два типа консоли
-
Физическая консоль = аппаратный дисплей и клавиатура, используемые для взаимодействия с системой
-
Виртуальная консоль = одна из нескольких логических консолей, каждая из которых может поддерживать независимый сеанс входа в систему.
-
-
tty (телетайп, т.е. терминал). = Терминал - это в основном просто устройство пользовательского интерфейса, которое использует текст для ввода и вывода.message.
Вам нужно погрузиться в историю.
Были пишущие машинки устройства с бумагой и клавиатурой. Их называли телетайпами (что означает «тип удаленно», поскольку «теле» означает «удаленный») или ttys для краткости. В 70-е годы они были устарели устройствами с ЭЛТ-монитором, называемым стеклом ttys .
Любой компьютер должен каким-то образом сообщить о своем статусе и ошибках (и, возможно, принять команды). Это делается с помощью консоли , которая почти всегда подключается непосредственно к компьютеру. Итак, для консоли имеется 2 значения: что-то, что используется для сообщения статуса и того, что связано напрямую.
UNIX - это интерактивная система: несколько пользователей могут подключаться к ней и запускать приложения. Первые компьютеры использовали телетайпы ( tty ) для этого: каждый пользователь имел телетайп, подключенный к машине с последовательным подключением. Такой телетайп называется терминал . UNIX также получил специальную подсистему для обработки «пользователей, сидящих за терминалами», которая также называется tty , потому что первые терминалы были телетайпами. Каждый процесс можно связать с tty в Unix. Это означает, что пользователь находится где-то рядом с терминалом. Подробнее см. http://www.linusakesson.net/programming/tty/.
Пользователям нужен способ сообщить, что ядро запускает приложение. shell (sh, bash, csh, ksh и т. д.). shell работает на tty , принимает команды от пользователя и запрашивает у ядра запуск некоторого приложения.
Но терминалы не всегда физически подключены к аппарату. Может быть какое-то приложение, которое «эмулирует» терминал, принимает нажатия клавиш от пользователя и отправляет их где-нибудь (xterm и ssh - хорошие примеры). В ядре есть API в ядре псевдотерминал . Таким образом, ваш tty действительно может быть подключен к некоторому приложению вместо реального терминала. Xterm использует X11 для отображения текста, а ssh использует для этого сетевое соединение.
IBM PC имеет клавиатуру и видеокарту (иногда они также называются консоль ). Linux может делать с ним разные вещи:
- Используйте его как «движок для сообщения об ошибках и состоянии»: консоль Linux. Если вы передадите console = /dev /ttyS0 в ядро, он будет использовать что-то, подключенное к COM1, как консоль, а если вы не используете консоль ПК.
- Используйте его для эмуляции терминала, так называемого виртуального терминала (vty).
Он также может остановить эмуляцию терминала на консоли и передать его в какое-то приложение. Приложение может переключать свой видеорежим и использовать его исключительно (X11 или svgalib могут это сделать).
Итак, вот современные значения:
- terminal: Что-то с реальным пользователем, сидящим за ним. Может быть физическим терминалом (редко) или псевдотерминалом (xterm, ssh) или виртуальным терминалом (vty в Linux).
- shell: application (bash, tcsh и т. д.), который помогает пользователю взаимодействовать с системой.
- tty: либо терминальная, либо подсистема ядра для поддержки терминалов. Консоль
- : информация о состоянии и ошибках (
/dev/console
) или физическая клавиатура и видеоизображение, подключенные к компьютеру.
Вот короткий ответ -
Ядро - самая внутренняя часть любой современной операционной системы, которая напрямую связана с реальным оборудованием.
Shell - обертка вокруг фактического ядра. Всякий раз, когда мы запускаем команду, мы фактически разговариваем с оболочкой, которая, в свою очередь, вызывает соответствующие инструкции ядра. Помимо этого, оболочка способна выполнять некоторые другие вещи, такие как поиск подходящей программы, имея команды, некоторые короткие имена файлов, команды трубопроводов и т. Д.
Terminal - в эпоху ранних вычислений компьютеры (известные как Mainframe) были гигантскими. Таким образом, было легко иметь единый процессор и подключать его со многих мест. Терминал - это фактическое оборудование с клавиатурой и устройствами вывода, подключенными к мэйнфрейму.
Консоль . Специальный тип терминала, который напрямую связан с мэйнфреймом для администрирования ОС.
tty - TeleTypewriter используется для отправки и получения данных в мейнфрейме и из него. Используются до появления видео-терминалов. Но условно он все еще был назван tty. Даже coommand stty
Подробный ответ длинный - Терминал, Консоль, оболочка, ядро, команды - разные части компьютера