Почему UNIX/Linux предоставляет несколько терминалов?

Почему UNIX/Linux предоставляет несколько терминалов?

В 1970-х годах у нас был аппаратный терминал с интерфейсом CUI (символьный пользовательский интерфейс) для ввода/вывода.

Теперь в мире Unix/Linux есть эмуляторы терминала ( Ctrl+ Alt+ ).Fn

В ОС Ubuntu я вижу семь эмуляторов терминала, где графический интерфейс занимает седьмой эмулятор терминала ( Ctrl+ Alt+ F7).

Например, это мой первый эмулятор терминала ( Ctrl++ Alt)F1

$ tty
/dev/tty0

Почему Unix/Linux предоставляет несколько эмуляторов терминала?

решение1

Почему UNIX/Linux предоставляет несколько эмуляторов терминала [на консоли]?

По той же причине ваш GUI-эмулятор терминала, скорее всего, поддерживает вкладки (например, GNOME Terminal), а если нет (например,rxvt), то по той же причине запуск второго экземпляра приложения терминала с графическим интерфейсом не просто выводит первый на передний план и не завершает работу, заставляя вас использовать первый экземпляр.

В своей работе я обычно использую не менее трех окон терминала, а часто и больше:

  1. Текстовый редактор для серверной части системы, над которой я работаю

  2. Текстовый редактор для клиентской части той же системы

  3. Командное окно для запуска сервера

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

Раньше, до того, как sudoэто стало популярным, я rootпостоянно держал терминал открытым.

В последнее время я редко использую Unix/Linux-боксы интерактивно на консоли без графического интерфейса, но я часто запускаю их безголовыми и получаю к ним доступ через SSH. Мой выбранный клиент терминала SSH поддерживает вкладки, настроенные, как указано выше.

Один из моих текущих хобби-проектовзаставляет меня использовать очень старыйстеклянный терминалиногда, что означает, что у меня больше нет нескольких окон терминала, так что я наконец-то немного узнаю оГНУscreen, программа, которую я никогда не использовал раньше, так как у меня было либо несколько консольных терминалов, либо несколько терминалов GUI. А что делаетscreen ? Среди прочего, вы можетенастроить его так, чтобы он предоставлял вам несколько виртуальных терминаловна одном экране, как это делает Linux с Ctrl- Alt- .Fx

решение2

Это функция, предоставляемая почти всеми, если не всеми Unix и Unix-подобными системами, работающими на оборудовании x86. Интересно, что виртуальные консоли были впервые представлены в Unix компанией Microsoft Xenix в начале восьмидесятых, а также были доступны в параллельном CP/M.

Позднее эта функция была интегрирована в AT&T SVR4 Unix, Solaris и заимствована BSD и Linux.

Почему UNIX/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соответственно.

решение3

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

Поправьте меня, если я ошибаюсь, но разве нельзя запустить несколько команд от имени разных пользователей из одного эмулятора терминала?

решение4

Первое, о чем вы спросили, это особенность ядра Linux. Не Unix в целом и не Gnu.

Почему, вам придется спросить у авторов. Однако я предполагаю, что это позволяет администратору несетевого устройства (здесь я включаю RS232 как тип сети) войти в систему и выполнить некоторую административную работу, не выводя из системы другого пользователя.

Связанный контент