Я думаю, что эти термины почти относятся к одному и тому же, когда используются свободно:
- Терминал
- ракушка
- TTY
- приставка
К чему конкретно относится каждый из этих терминов?
Я думаю, что эти термины почти относятся к одному и тому же, когда используются свободно:
К чему конкретно относится каждый из этих терминов?
Ответы:
Терминал находится на конце электрического провода, оболочка - дом черепахи, tty - странное сокращение, а консоль - своего рода шкаф.
Ну, вообще говоря, этимологически.
В терминологии Unix краткий ответ таков:
Консоль, терминал и tty тесно связаны. Первоначально, они имели в виду оборудование, с помощью которого вы могли взаимодействовать с компьютером: в первые дни существования Unix это означало устройство в стиле телепринтера, напоминающее пишущую машинку, иногда называемое телетайпом, или сокращенно «tty». Название «терминал» пришло с электронной точки зрения, а название «консоль» с точки зрения мебели. Очень рано в истории Unix электронные клавиатуры и дисплеи стали нормой для терминалов.
В терминологии Unix tty - это особый тип файла устройства, который реализует ряд дополнительных команд ( ioctls ) помимо чтения и записи. В своем наиболее распространенном значении терминал является синонимом tty. Некоторые ttys предоставляются ядром от имени аппаратного устройства, например, ввод с клавиатуры и вывод на экран текстового режима или ввод и вывод по последовательной линии. Другие ttys, иногда называемые псевдо-ttys , предоставляются (через тонкий слой ядра) программами, называемыми эмуляторами терминала , такими как Xterm (работает в системе X Window ), Screen(который обеспечивает уровень изоляции между программой и другим терминалом), Ssh (который соединяет терминал на одном компьютере с программами на другом компьютере), Expect (для сценариев взаимодействия терминала) и т. д.
Слово «терминал» также может иметь более традиционное значение устройства, через которое оно взаимодействует с компьютером, обычно с клавиатурой и дисплеем. Например, X-терминал - это своего рода тонкий клиент , специализированный компьютер, единственной целью которого является управление клавиатурой, дисплеем, мышью и, иногда, другими периферийными устройствами взаимодействия с человеком, при этом реальные приложения работают на другом, более мощном компьютере.
Консоль , как правило , терминал в физическом смысле , что какое - то определение основного терминал подключен непосредственно к машине. Консоль представляется операционной системе как (реализованная в ядре) tty. В некоторых системах, таких как Linux и FreeBSD, консоль выглядит как несколько ttys (специальные комбинации клавиш переключают эти ttys); просто чтобы запутать дело, имя, данное каждому конкретному tty, может быть «консоль», «виртуальная консоль», «виртуальный терминал» и другие варианты.
См. Также Почему виртуальный терминал «виртуальный», и что / почему / где «настоящий» терминал? ,
Оболочка является основным интерфейсом , который пользователи видят , когда они войти, чья основная цель состоит в том, чтобы запускать другие программы. (Я не знаю, является ли первоначальная метафора тем, что оболочка является домашней средой для пользователя, или что оболочка - это то, в чем работают другие программы.)
В кругах Unix оболочка специализировалась на командной оболочке , сосредоточенной вокруг ввода имени приложения, которое нужно запустить, затем имен файлов или других объектов, с которыми должно работать приложение, и нажатия клавиши Enter. Другие типы окружений не используют слово «оболочка»; например, оконные системы включают « оконные менеджеры » и « окружение рабочего стола », а не «оболочку».
Есть много разных оболочек Unix. Популярные оболочки для интерактивного использования включают Bash (по умолчанию в большинстве установок Linux), zsh (что подчеркивает мощь и настраиваемость) и fish (что подчеркивает простоту).
Оболочки командной строки включают конструкции управления потоком для объединения команд. Помимо ввода команд в интерактивном режиме, пользователи могут писать сценарии. Наиболее распространенные оболочки имеют общий синтаксис, основанный на Bourne_shell . При обсуждении « программирования оболочки », оболочка почти всегда подразумевается как оболочка в стиле Борна. Некоторые оболочки, которые часто используются для написания сценариев, но не имеют расширенных интерактивных функций, включают оболочку Korn (ksh) и множество вариантов золы . Практически в любой Unix-подобной системе установлена оболочка в стиле Борна, как /bin/sh
правило, ash, ksh или bash.
В системном администрировании Unix оболочка пользователя - это программа, которая вызывается при входе в систему. Обычные учетные записи пользователей имеют оболочку командной строки, но пользователи с ограниченным доступом могут иметь ограниченную оболочку или какую-либо другую конкретную команду (например, для передачи файлов). только счета).
Разделение труда между терминалом и оболочкой не совсем очевидно. Вот их основные задачи.
\e[D
). Оболочка преобразует управляющие последовательности в команды (например, \e[D
→ backward-char
).M-x shell
в Emacs.foo
», «переключение цвета переднего плана на зеленый», «перемещение курсора на следующую строку» и т. Д. Терминал действует в соответствии с этими инструкциями.printk
имеет достаточный приоритет (например, паника ядра). Это устанавливается передачей console=DEVICE,...
в командной строке ядра (например, console=ttyS0,115200
для первого последовательного порта со скоростью 115 200 бит / с). Обычно по умолчанию используется виртуальный терминал, но это можно изменить при компиляции ядра.
Терминал или консоль представляет собой часть аппаратных средств, с помощью которого пользователь может взаимодействовать с хостом. В основном клавиатура в сочетании с текстовым экраном.
В настоящее время практически все терминалы и консоли представляют собой «виртуальные».
Файл, представляющий терминал, традиционно называется tty- файлом. Если вы загляните в каталог «/ dev» системы UNIX, вы найдете множество tty- файлов, подключенных к виртуальным консолям (например, tty1 в Linux), виртуальным терминалам (например, pts / 0) или физически подключенному оборудованию (например, ttyS0 является физическим последовательным терминалом, если таковой имеется, подключенным к первому последовательному порту хоста).
Консоль должна быть часть оборудования физически подключен (или часть) хозяина. Он играет особую роль в системе: он является основным пунктом доступа к системе для технического обслуживания, и некоторые специальные операции могут выполняться только с консоли (например, см. single user mode
). Терминал может быть, и обычно, удаленной часть аппаратных средств.
Наконец, что не менее важно, оболочка - это специальная программа, которая взаимодействует с пользователем через управляющий tty и предлагает пользователю способ запуска других программ (например, bash, csh, tcsh).
Эмулятор терминала является программой , которая эмулирует физический терминал (например , Xterm, гном-терминал, MiniCom).
Поэтому, когда вы смотрите на «текстовое окно» в вашей системе Linux (под X11), вы видите: эмулятор терминала , подключенный к виртуальному терминалу , идентифицируемый tty- файлом, внутри которого запускается оболочка .
tty
в эмуляторе терминала, таком как KDE Konsole, вывод будет / dev / pts / 0.
/dev/pts/0
- это tty-файл, обработчик программного интерфейса, предоставляемого ядром. С помощью этого обработчика программа (например, оболочка) может взаимодействовать с терминалом (реальным или виртуальным). Эмулятор терминала - это программа, которая эмулирует терминал. Эмулятор просит ядро создать обработчик, позволяющий программам взаимодействовать с самим собой (см. man openpty
). Таким образом, информация поступает из терминала (эмулятора) в обработчик ядра tty, в программу (и наоборот). Программы и терминалы не общаются друг с другом напрямую, а только через tty-файл (обработчик).
КРАТКОЕ объяснение:
Консоль - это терминал. Система имеет одну консоль и, возможно, несколько терминалов. Консоль обычно является основным интерфейсом для управления компьютером, например, когда он еще загружается.
Терминал - это сеанс, который может принимать и отправлять ввод и вывод для программ командной строки. Консоль является частным случаем этого.
TTY - это, по сути, псевдоустройство, называемое ресурсом ядра, которое используется процессами для доступа к определенному терминалу. TTY могут быть привязаны к оборудованию, такому как последовательный порт, или могут быть виртуальными, например, созданы, когда пользователь входит в сеть через сеть
Оболочка - это программа, которая используется для управления и запуска программ. Он часто используется в интерактивном режиме, через терминал. Существует несколько программ оболочки, Bash, пожалуй, наиболее часто используемая оболочка сегодня. Другие оболочки, в произвольном порядке, включают Bourne Shell, C-shell, Dash, Tsch, Ksh и все более популярную Zsh. Есть много других.
Когда у вас есть графический интерфейс, вы можете использовать терминальную программу, чтобы нарисовать красивую границу с изменяемым размером, добавить полосы прокрутки, отформатировать текст и т. Д. Для сеанса терминала. Часто они называются терминальными эмуляторами, а иногда они могут обрабатывать несколько сеансов через концепцию TAB. Эмулятор терминала часто запускает оболочку, чтобы вы могли интерактивно работать в командной строке.
TTY (т.е. T Эле TY pewriter) представляет собой специальное устройство , которое позволяет людям , которые глухие, слабослышащие, или речи слабослышащих пользоваться телефоном для связи, позволяя им набирать текстовые сообщения. TTY требуется на обоих концах разговора, чтобы общаться.
ИЛИ
TTY - это терминал, который используется для ввода текстового сообщения.
Скорлупа : внешняя защитная покровная часть семени, т.е. ядра.
ИЛИ
каркас или внешняя структура центральной или существенной части системы.
Консоль означает клавиатуру и монитор физического прикрепления к компьютеру.
Уже есть два отличных ответа, но я бы хотел добавить информацию о фразе «виртуальный терминал» . Обычно это означает то, что обеспечивает внешний вид / функциональность терминала, т.е. е. терминал-эмулятор в широком смысле. Но в первые дни Linux (1994–95) использовался некоторыми разработчиками как синоним «виртуальной консоли» (несколько несвязанных пользовательских интерфейсов) . Это использование сохраняется в документации; два разных термина использовались (и используются) для обозначения tty1, tty2… штуковины. В настоящее время (начиная с 1996 года) «виртуальный терминал» может также относиться к эмуляторам терминала на основе pty .
Linux vt
(драйвер системной консоли в текстовом режиме) был первым компонентом ядра. Первоначально он использовался для подключения к мэйнфреймам, и в этом смысле это «виртуальный терминал», отсюда и название. Код, управляющий виртуальными консолями, также находится в немvt.c
. Инженеры ядра Linux последовательно используют слово «консоли» для обозначения tty1, tty2… и используют для них префикс «vc_». Например, есть vc_allocate
функция. С другой стороны, разработчики таких инструментов пользовательского пространства, как kbd
и console-tools
«виртуальная консоль» (VC) и «виртуальный терминал» (VT), взаимозаменяемы. And связался с Андриесом Е. Брауероми попросил его уточнить терминологию, использовавшуюся ранними разработчиками (1994–95). Андриес любезно предоставил некоторые ответы. Он утверждает, что VT и VC являются синонимами и «неделимыми» сокращениями. -> В общем, виртуальная консоль - это виртуальный терминал, но обратное неверно. Те «виртуальные терминалы», которые не являются виртуальными консолями, действительно являются псевдотерминалами (как утверждает Андриес, это не VT ). В отличие от виртуальных консолей, где ядро обеспечивает функциональность терминала для консольного приложения, псевдотерминалы используют «устройства» PTY для организации связи между консольными приложениями и программой создания терминалов, которая выполняется в пользовательском пространстве . Примерами являются эмуляторы терминала на основе X иsshd
, который выделяет псевдотетию для каждого сеанса входа в систему. Псевдотти нельзя назвать «консолью» - это ошибка.
Терминал = Интерфейс, который обеспечивает отображение для вывода и клавиатуры для ввода в сеансе оболочки.
Shell = интерпретатор, который выполняет команды, напечатанные в виде строки
Консоль: На самом деле мы используем два типа консоли
Физическая консоль = аппаратный дисплей и клавиатура, используемые для взаимодействия с системой
Виртуальная консоль = одна из нескольких логических консолей, каждая из которых может поддерживать независимый сеанс входа в систему.
tty (телетайп т.е. терминал). Терминал - это в основном просто устройство пользовательского интерфейса, которое использует текст для ввода и вывода.
Вам нужно погрузиться в историю.
Были пишущие машинки с бумагой и клавиатурой. Их называли телетайпами (что означает «тип удаленно», так как «теле» означает «удаленный») или сокращенно ttys . В 70-х годах их устарели устройства с ЭЛТ-монитором, называемые стеклянными ттысами .
Любому компьютеру нужен какой-то способ сообщить о своем состоянии и ошибках (и, возможно, принять команды). Это делается через консоль, которая почти всегда подключена напрямую к компьютеру. Итак, для консоли есть два значения : то, что используется для сообщения о состоянии, и то, что связано напрямую.
UNIX - это интерактивная система: к ней могут подключиться несколько пользователей и запускать приложения. Первые компьютеры использовали для этого телетайпы ( tty ): каждому пользователю был подключен телетайп к машине с последовательным соединением. Такой телетайп называется терминалом . UNIX также получил специальную подсистему для обработки «пользователей, сидящих за терминалами», которая также называется tty, потому что первые терминалы были телетайпами. Каждый процесс может быть связан с tty в Unix. Это означает, что где-то рядом с терминалом сидит пользователь. Смотрите http://www.linusakesson.net/programming/tty/ для получения дополнительной информации.
Пользователям нужен какой-то способ сообщить ядру о запуске приложения. для этого используется shell (sh, bash, csh, ksh и т. д.). shell работает на tty , принимает команды от пользователя и просит ядро запустить какое-то приложение.
Но терминалы не всегда физически связаны с машиной. Может быть какое-то приложение, которое «эмулирует» терминал, принимающий нажатия клавиш от пользователя и отправляющий их куда-то (xterm и ssh являются хорошими примерами). Для этого в Kernel есть API, называемый псевдо-терминал . Таким образом, ваш tty может быть действительно подключен к какому-либо приложению, а не к реальному терминалу. Xterm использует X11 для отображения текста, а ssh использует для этого сетевое соединение.
У IBM PC есть клавиатура и видеокарта (их также иногда называют консольными ). Linux может делать с ним разные вещи:
Он также может прекратить эмуляцию терминала на консоли и передать его в какое-либо приложение. Приложение может переключать свой режим видео и использовать его исключительно (X11 или svgalib могут сделать это).
Итак, вот современные значения:
/dev/console
) или физическая клавиатура и видеодисплей, подключенные к компьютеру.Вот краткий ответ -
Ядро - самая внутренняя часть любой современной операционной системы, которая напрямую взаимодействует с реальным оборудованием.
Оболочка - обертка вокруг самого ядра. Всякий раз, когда мы запускаем команду, мы фактически общаемся с оболочкой, которая, в свою очередь, вызывает соответствующие инструкции ядра. Помимо этого, оболочка способна выполнять некоторые другие вещи, такие как поиск подходящей программы, в то же время имея команды, некоторые сокращения имени файла, команды конвейеризации и т. Д.
Терминал - в эпоху более ранних вычислений компьютеры (известные как мейнфреймы) были гигантскими. Таким образом, было легко иметь один процессор и подключать его из разных мест. Терминал - это фактическое оборудование с клавиатурой и устройствами вывода, подключенными к мэйнфрейму.
Консоль - Специальный тип терминала, который напрямую подключен к мэйнфрейму для администрирования ОС.
tty - TeleTypewriter, используемый для отправки и получения данных на мэйнфрейм и с него. Использовался до того, как стали доступны видеотерминалы. Но условно это все еще назвали как tty. Даже командирstty
Подробный подробный ответ здесь - Терминал, Консоль, Оболочка, Ядро, Команды - Различные части компьютера
root
учетной записи только через sudo
или через консольный вход в систему. Консоли часто имеют особое привилегированное положение, поскольку тот, кто имеет к ним доступ, обязательно имеет физический доступ к компьютеру, с которым общается. Они также являются методом доступа последней инстанции. Если ОС находится в частично неисправном состоянии (например, неисправен драйвер Ethernet), вы все равно можете получить доступ к консоли. Это единственное интерфейсное устройство, которое должно быть доступно ВСЕГДА, независимо от того, в каком состоянии находится система.
Помимо принятого ответа и демистифицированной статьи TTY , мне очень понравилось читать эти две статьи:
Этот основан на NetBSD.
В каменные века Unix компьютерные системы состояли из мэйнфрейма, большого блока мигающих огней, в котором были память, запоминающее устройство и вычислительные устройства, и которые запускали процессы, запускаемые пользователями или операторами. Поскольку оборудование было очень дорогим, системы использовались как настоящие многопользовательские системы, и многие люди одновременно взаимодействовали с системой. В отличие от современных рабочих станций Unix, у него обычно не было стационарного монитора и клавиатуры. Вместо этого, выдача команд на аппарат и извлечение выходных данных выполнялась по последовательным линиям, сначала с использованием телетайперов, а позже с терминалами CRT (электронно-лучевая трубка). Teletypers - вот откуда берутся «ttys» в Unix - это электронные пишущие машинки, которые посылают ключи, нажатые по последовательной линии, на хост,
Этот основан на Linux.
Терминалы - это устройства, которые предоставляют расширенные возможности ввода / вывода сверх того, чего можно достичь, используя только обычные файлы, каналы и сокеты. Эти функции предназначены для облегчения взаимодействия людей с компьютерами и бесполезны для программ, пытающихся общаться друг с другом.
Позвольте мне в этом разобраться ... Я буду использовать Unix и Linux более или менее как синонимы. Если я имею в виду нечто историческое, которое предшествовало существованию Linux, я обычно буду писать «Unix», и если я говорю о чем-то более новом, или о чем-то специфическом для разновидности Linux Unix, я обычно буду писать «Linux» ».
Единственная вещь в вашем списке, которая является дискретным понятием, которое не пересекается с другими, это «оболочка». Оболочка - это программа, целью которой является общение с пользователем и выполнение операций операционной системы от его имени.
В наиболее распространенных оболочках используется метод, называемый «командной строкой», который заключается в отправке пользователю какого-либо запроса, ожидании ввода пользователем текстовой команды и выполнении этой команды. Но существуют основанные на меню оболочки и даже графические оболочки (такие как Windows File Explorer), хотя ни один уважающий себя человек из Unix никогда бы не назвал такую вещь «оболочкой».
В Unix, если кто-то называет что-то «оболочкой», он почти наверняка подразумевает некоторую форму интерфейса командной строки, как я только что описал. И в мире Unix очень странно называть что-либо «оболочкой», если она не общается с пользователем, используя модель tty, которую я опишу далее.
Это сбивает с толку, потому что это может относиться к нескольким видам вещей.
В Linux есть устройство под названием «tty». Это абстрактное устройство, которое, как ожидается, будет использоваться для двунаправленной связи с чем-то, что либо является пользователем, либо каким-либо образом принимает информацию от пользователя. Иногда это абстрактное устройство может напрямую соответствовать какому-то физическому устройству. Иногда это может быть программа, которая представляет кому-то окно, в котором появляется сообщение и в который пользователь может ввести текст.
Но причина, по которой существует это абстрактное устройство, и причина, по которой его называют «tty», заключается в том, что «tty» означает «телетайп», то есть реальное физическое устройство с принтером, который печатался на бумаге в сочетании с клавиатурой. Модель, которую абстрактное устройство 'tty' представляет программам, которые его используют, в основном заключается в том, что на другом конце есть телетайп. Вы отправляете ему символы, и эти символы появляются на телетайпе. Когда вы читаете из него символы, эти символы представляют собой клавиши, которые были набраны на клавиатуре.
Старые tys на бумажном принтере были быстро вытеснены с ttys видео. На тех, конечно, нет рулона бумаги. И, собственно, можно перезаписать любой символ на экране. Но вместо того, чтобы представлять какой-то абстрактный «экранный» интерфейс для программ, от программ ожидается, что они будут отправлять специальные потоки символов, называемые escape-последовательностями, которые выполняют различные задачи. Обычно существует абстрактная вещь, называемая «курсор», которую можно перемещать по экрану, и любой отправленный символ заменит все, что находится у курсора, а курсор переместится еще на один символ. Часто вы можете изменить цвет персонажа, который также будет напечатан с escape-последовательностями.
Есть «стеклянные тты», которые не следуют этой модели и, следовательно, плохо обрабатываются в мире Unix. Семейство видеотерминалов IBM 3270 попадает в эту категорию.
То, что люди в Linux / Unix обычно называют «окном оболочки», является эмуляцией стекла с использованием графического интерфейса пользователя. Внутри программы, работающие внутри окна оболочки, общаются с виртуальным tty-устройством, которое иногда называют псевдо-tty или псевдо-терминалом (aka pty).
Терминал - это просто место, где компьютер и человек должны взаимодействовать. Терминалы могут быть полностью графическими и никоим образом не следовать модели tty, даже если программа может использовать их возможности для эмуляции этого. Все фактические физические данные (стеклянные или иные) являются терминалами.
Консоль - это особый вид терминала, который, как правило, предполагается подключать каким-либо прямым безопасным способом к оборудованию, на котором работает операционная система.
В Linux консоль виртуализирована небольшим образом, что позволяет использовать специальное нажатие клавиши для переключения между виртуальными консолями. Но эта виртуализация осуществляется с помощью реального аппаратного обеспечения программным обеспечением в ядре.
Существуют способы использовать Linux через так называемую «последовательную консоль», которая представляет собой консоль, подключенную к компьютеру через последовательный порт, такой как порт USB (или, на некоторых очень маленьких и / или очень старых компьютерах, порт RS-232). в некотором роде) и следует довольно старой модели старого телетайпа.
Опять же, идея заключается в том, что эта консоль напрямую подключена к компьютеру, а не через какую-то сеть, которая может позволить любому подключаться.