В 1970-х у нас был аппаратный терминал с интерфейсом CUI (символьный пользовательский интерфейс) для ввода / вывода.
Теперь у нас есть эмуляторы терминала ( Ctrl+ Alt+ Fn) в мире Unix / Linux.
В ОС Ubuntu я вижу семь эмуляторов терминала, где GUI занимает 7-й эмулятор терминала ( Ctrl+ Alt+ F7).
Например, это мой первый эмулятор терминала ( Ctrl+ Alt+ F1)
$ tty
/dev/tty0
Почему Unix / Linux предоставляет несколько эмуляторов терминала?
Ответы:
По той же причине, что ваш эмулятор терминала с графическим интерфейсом, вероятно, поддерживает вкладки (например, терминал GNOME), а если нет (например
rxvt
), то по той же причине запуск второго экземпляра приложения терминала с графическим интерфейсом не просто выводит первый на передний план и завершается, заставляя вас использовать первый экземпляр.Я обычно использую по крайней мере 3 окна терминала в своей работе, и часто больше:
Текстовый редактор для серверной части системы, над которой я работаю
Текстовый редактор для клиентской части той же системы
Командное окно для запуска сервера
Мне редко нужен четвертый терминал для запуска клиентской программы, поскольку он обычно запускается где-то еще (веб-приложение, собственное приложение с графическим интерфейсом, мобильное приложение и т. Д.), Но если бы я разрабатывал клиент CLI для своего серверного приложения, у меня был бы отдельный терминал открыт для этого тоже.
Раньше, прежде чем
sudo
стать популярным, я все время держалroot
терминал открытым.В настоящее время я редко использую блоки Unix / Linux в интерактивном режиме на консоли без графического интерфейса, но я часто запускаю их в автономном режиме и обращаюсь к ним по SSH. Мой клиент SSH-терминала по выбору поддерживает вкладки, настроенные как указано выше.
В одном из моих текущих хобби-проектов я иногда использую настоящий старый стеклянный терминал , что означает, что у меня больше нет нескольких окон терминала, поэтому я наконец-то немного узнал о GNU
screen
, программе, которой я никогда раньше не пользовался, поскольку или несколько консольных терминалов или несколько терминалов GUI. А что делаетscreen
? Помимо прочего, вы можете настроить его так, чтобы на одном экране было несколько виртуальных терминалов , как это делает Linux с Ctrl- Alt- .Fxисточник
Это функция, предоставляемая почти всеми, если не всеми Unix и Unix, такими как работа на оборудовании x86. Интересно, что виртуальные консоли были впервые представлены в Unix Microsoft Xenix в начале восьмидесятых годов, а также были доступны в параллельной версии CP / M.
Позже эта функция была интегрирована в AT & T SVR4 Unix, Solaris и заимствована BSD и Linux.
Когда они были впервые представлены, графической среды для машин, на которых выполнялись эти реализации Unix, не было. Хотя физический терминал, подключенный к центральному Unix-серверу через линии RS232, был стандартом, подключение нескольких терминалов к стандартному ПК, на котором работает Xenix, было излишним, если целью было только для одного пользователя запустить несколько интерактивных программ одновременно. Виртуальные терминалы предоставили элегантное и удобное решение этой проблемы.
Другие реализации Unix позже предоставили ту же функцию для удовлетворения той же потребности.
Когда графические среды, особенно X11, распространились, возможность одновременного просмотра нескольких эмуляторов терминала на одном экране была значительным улучшением. Однако функция виртуальной консоли обычно сохранялась хотя бы потому, что все еще было удобно переключаться на консоль, если графическое окружение по какой-то причине зависло или не функционировало.
Обратите внимание, что утилиты, как
screen
иtmux
пришли намного позже, чем виртуальные терминалы, чтобы обобщить те же функции. Их преимущество в том, что они могут использоваться не только на локальной физической консоли, но и на любом сеансе, локальном или удаленном (напримерtelnet
,ssh
). При использовании на физической консоли виртуальные консоли все еще полезны, поскольку они функциональны в некоторых ситуациях, когдаscreen
/tmux
не может помочь, например, если X11 заморожен, или если окно захватило фокус и не отпускает его.Виртуализация на основе контейнеров, такая как зоны Solaris или Linux LXC, также предоставляет метод подключения к консоли контейнера через
zlogin -C zone
иlxc-console -t 0 -n container
соответственно.источник
Я полагаю, что одной из веских причин наличия дополнительных эмуляторов терминала является то, что если вы делаете что-то не так в своем графическом интерфейсе, и это становится непригодным для использования, вы можете быстро переключиться на эмулятор терминала и исправить все проблемы, которые возникают в графическом интерфейсе. На самом деле это случается довольно часто, когда вы вносите изменения в свой оконный менеджер или другие функции графического интерфейса. Я полагаю, было бы также полезно иметь еще пару терминалов, однако наличие 6 перегрузок основного графического интерфейса кажется излишним.
Также поправьте меня, если я ошибаюсь, но разве невозможно запустить несколько команд под разными пользователями из одного эмулятора терминала?
источник
Многие другие вопросы, кажется, отвечают, почему была введена эта функция.
Тем не менее, актуальный вопрос:
«делает», а не «сделал».
Итак, ориентируясь на текущее время, вот несколько текущих причин:
Например, я могу вспомнить, что Alt-Ctrl-F2 - это текстовый редактор, который просматривает один текстовый файл (например, документацию), а Alt-Ctrl-F3 используется для быстрого просмотра другого файла (например, файла конфигурации), и Alt-Ctrl-F4 используется для командной строки, в то время как графический рабочий стол может быть разделен между просмотром веб-страниц, электронной почтой, музыкальным проигрывателем и т. д.
Таким образом, нет особой причины не поддерживать это. Есть некоторая выгода, которую некоторые люди ценят, по крайней мере, несколько раз, и это не так дорого.
На самом деле, удаление поддержки для этого может быть больше работы, чем просто оставить поддержку там. Хотя удаление поддержки, вероятно, будет простым, если что-то сломается, то выявление и устранение проблемы может быть немного сложным. Таким образом, сокращение объема необходимых усилий (для разработки следующей версии операционной системы) является еще одной причиной, чтобы оставить все как есть. Это означает, что эта функция остается доступной.
источник
Первое, о чем вы спросили, - это особенность ядра под названием Linux. Не Unix вообще и не Gnu.
Что касается того, почему, вы должны спросить авторов. Однако я предполагаю, что он позволяет администратору устройства, не подключенного к сети (здесь я включаю RS232 как тип сети), войти в систему и выполнить некоторую работу администратора без выхода из системы другого пользователя.
источник