Почему системы Linux имеют несколько виртуальных консолей?

3574
peonicles

Мы можем переключиться на текстовую консоль, нажав Ctrl + Alt + F <1-7> на клавиатуре.

Для чего используются эти консоли, и почему существует несколько консолей?

3
Пожалуйста, уточните, как это трудно понять, что вы спрашиваете. dimo414 11 лет назад 0
Потому что это может. Обычно 1-6 используются для терминалов и 7-12 используются для графического интерфейса (xwindows). jman 11 лет назад 3
Они называются виртуальными консолями. Chris Stratton 11 лет назад 1

6 ответов на вопрос

6
duskwuff

Why multiple consoles? Because -- oddly enough -- Linux started out as a terminal emulator.

http://en.wikipedia.org/wiki/History_of_Linux#The_creation_of_Linux

As to "why 7"? That's not inherent to the operating system; you can actually have any number of virtual consoles, within reason. It's configurable in /etc/inittab on most distributions.

4
JdeBP

Потому что это то, что вы делали, если были многопользовательской операционной системой на ПК. Совместимо.

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

Таким образом, многопользовательские операционные системы поставляли виртуальные консоли, которые отображались на адаптере дисплея ПК, и та переключалась между ними с помощью сочетаний клавиш. Concurrent CP / M-86, еще в 1982 году, имел четыре виртуальные консоли, одна из которых переключалась между комбинациями клавиш Ctrl+ 1, Ctrl+ 2, Ctrl+ 3и Ctrl+ 4.

SCO Xenix в начале 1980-х имел то, что называлось Multiscreen . Как пользователь Linux, вы найдете его очень знакомым. Были первоначально 10 виртуальных терминалов, чей символ устройства файлы были названы /dev/tty01в /dev/tty10. Один из них переключался с Altпомощью функциональной клавиши - Alt+, например, F4для переключения на виртуальную консоль № 4. Можно также циклически их пролистывать, нажимая Control+ PrtSc. С выпуском Xenix 5 количество виртуальных консолей было увеличено с 10 до 12, чтобы отразить существование расширенной клавиатуры PC / AT с ее дополнительными F11и F12функциональными клавишами.

Вдали от мира MP / M и Unix, VMS-подобные и DOS-подобные мир совместимых с ПК операционных систем имели сходные идеи. Это было верно даже для не многопользовательских операционных систем. Например, в версии OS / 2 1.0 в 1987 году был диспетчер сеансов, из которого можно было запускать до 15 сеансов, отдельные виртуализированные комбинации вывода на дисплей и ввода с клавиатуры / мыши. Один циклически переключался между сеансами в порядке с Alt+ Escи переключался обратно в диспетчер сеансов (из которого можно было начинать новые сеансы или переключаться на существующие сеансы из меню) с помощью Control+ Esc.

В MS-DOS 5 было dosshellпереключение экрана между несколькими программами (хотя и без многозадачности, как в OS / 2) и знакомые Alt+ Tabи Alt+ Esc. У DR-DOS 6 было taskmaxгде Control+, Escчтобы добраться до диспетчера задач, и Ctrl+ 1, Ctrl+ 2и т. Д., Чтобы переключаться непосредственно на экраны отдельных задач, которые можно было переключать с диска или с расширенной / расширенной памяти (в зависимости от ограничения).

К тому времени, когда в 1990-х годах появился Linux, идея о том, что на дисплее (текстовый режим) и вводится с клавиатуры, была виртуализированная система ввода / вывода только одной из нескольких сессий / задач / терминалов / консолей, что можно переключаться между ними с помощью горячих клавиш, в значительной степени встроенных в мышление людей. Это было в мире PC-совместимых в течение почти десяти лет.

Что касается их использования, я приведу слова Робина Раскина и Кааре Кристиана:

Функция Multiscreen в Xenix - это дар для тех, кто любит делать несколько вещей одновременно. Одно нажатие клавиши переключает экран консоли и клавиатуру из одного сеанса входа в другой. Это как если бы у вас было несколько терминалов на вашем столе, но только с одним физическим экраном и клавиатурой. Приложения для этой функции быстро становятся очевидными. Например, при подготовке таблицы рисунков я использовал редактор на одном экране и программу настольного калькулятора на другом и предварительно просмотрел вывод на принтер на третьем. Переключение с одного на другое было тривиальным: Alt-F1 поднял экран редактора, Alt-F2 вывел калькулятор, а Alt-F3 показал мне предварительный просмотр принтера. Каждый переключатель экрана занимает доли секунды.
- Робин Раскин и Кааре Кристиан (август 1986). «Xenix System V: многопользовательский ответ для AT?». Журнал PC 5 (14). ISSN 0888-8507. Ziff Davis, Inc .. С. 253–266

В настоящее время, конечно, можно запустить графический интерфейс с несколькими эмуляторами терминала и переключаться между ними, не переключая весь буфер дисплея, и адаптер дисплея едва ли начинает работать в своем текстовом режиме. (Даже тогда это можно было сделать на рабочих станциях Unix, которые имели графические буферы кадров и систему X Window.) Таким образом, наличие нескольких виртуальных консолей кажется меньшей функцией. Но для тех, кто пришел из мира многопользовательских вычислений на мини - ЭВМ, только с реальными терминалами, где кластеризация вместе группу терминалов на своей столе был степенным пользователю, что нужно сделать, особенно если один не оторвал screenот comp.sources.unix( другой что нужно проделать опытным пользователям), это точно было в то время.

дальнейшее чтение

2
laurent

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

В системе с графическим интерфейсом это не очень полезно, но вот несколько ситуаций, когда я использую это:

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

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

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

1
LawrenceC

Это позволяет пользователю многозадачность удобно непосредственно с клавиатуры / монитора, подключенного к системе. Девять раз из десяти я удален в систему через систему sshи могу открыть столько «консолей», сколько захочу, но если вы не работаете в сетевой среде, это помогает. Хороший пример: установщик Debian использует несколько виртуальных консолей - одна имеет ncursesустановщик на основе, еще две имеют оболочку на случай, если что-то пойдет не так, или вы хотите запускать команды оболочки для просмотра оборудования и т. Д., И используется четвертая для отображения состояния и вывода ошибок от процессов установки.

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

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

Также можно использовать одну из консолей в качестве устройства вывода, чтобы вы могли просматривать журналы или отчеты и не загромождать вашу текущую консоль. /etc/inittabконтролирует, какие из них ttyили консолей gettyзапущены, что и обеспечивает приглашение для входа в систему.

0
Robbie Dee

If you have a long running job, you might want to look at the log file, the error file, the system load, the free work space, the free disk space, how many users are on the system etc etc.

The question becomes: not, why 7 - but why not more...

Потому что терминальные мультиплексоры были изобретены по причине! Rob 11 лет назад 0
0
vonbrand

В традиционных системах Unix допускается подключение только одного пользователя через (удаленный) терминал. Но вскоре пользователи искали способы «делать несколько вещей одновременно», т. Е. Иметь возможность запустить несколько сеансов. Хорошо, вы можете взять соседний терминал тоже ... но это не очень хорошо. Так что программы вроде бы screenпоявились.

Вскоре после запуска Linux была добавлена ​​возможность иметь несколько доступных сессий. Пока screenнет, и на ПК все еще обычно есть только один набор клавиатуры / экрана / мыши ...

В конце концов, если это можно сделать с (относительно) небольшими усилиями, почему бы и нет? Это очень удобно (хорошо, сегодня я рад, что под X открыта дюжина терминалов, но в старину X не было ).

Похожие вопросы