Почему системы Linux имеют несколько виртуальных консолей?
Мы можем переключиться на текстовую консоль, нажав Ctrl+Alt+F<1-7> на клавиатуре.
Для чего используются эти консоли, и почему существует несколько консолей?
6 ответов
Потому что это то, что вы делали, если были многопользовательской операционной системой на ПК. Совместимо.
В мире миникомпьютеров у одного было несколько реальных терминалов, обычно подключенных через концентратор терминалов или что-то подобное, и у каждого пользователя мог быть терминал. Однако в мире компьютеров IBM PC вообще не было настоящих терминалов. В конце концов, это был персональный компьютер.
Таким образом, многопользовательские операционные системы поставляли виртуальные консоли, которые отображались на адаптере дисплея ПК, и та переключалась между ними с помощью сочетаний клавиш. Параллельно 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?". Журнал ПК 5(14). ISSN 0888-8507. Ziff Davis, Inc. с. 253–266
В настоящее время, конечно, можно запустить графический интерфейс с несколькими эмуляторами терминала и переключаться между ними, не переключая весь буфер дисплея, и адаптеру дисплея едва удается понюхать работу в его текстовом режиме. (Даже тогда можно было бы сделать это на рабочих станциях Unix, которые имели графические буферы кадров и систему X Window.) Таким образом, наличие нескольких виртуальных консолей кажется меньшей функцией. Но для тех, кто пришел из мира многопользовательских вычислений на миникомпьютерах только с реальными терминалами, где кластеризация группы терминалов на рабочем столе была делом опытного пользователя, особенно если он не тянул screen
от comp.sources.unix
(другой опытный пользователь), это определенно было в то время.
дальнейшее чтение
- SCO Xenix System V Операционная система. Санта Круз Операция Инк. 1987.
- Concurrent CP / M-86 Руководство пользователя. Цифровые исследования. 1982.
- Джадд Роббинс (1988). Основные OS/2. Paraninfo. ISBN 9780895884787. С. 10,92
Почему несколько консолей? Потому что, как ни странно, Linux начинал как эмулятор терминала.
http://en.wikipedia.org/wiki/History_of_Linux
Что касается "почему 7"? Это не присуще операционной системе; вы можете иметь любое количество виртуальных консолей, в пределах разумного. Это настраивается в /etc/inittab
в большинстве дистрибутивов.
Если вы запускаете сервер (без графического интерфейса пользователя) вместо настольной Linux (с графическим интерфейсом), таким образом вы можете одновременно открывать несколько терминалов без использования программного обеспечения, такого как экран, для управления несколькими терминалами.
В системе с графическим интерфейсом это не очень полезно, но вот несколько ситуаций, когда я использую это:
Вы можете использовать одну из консолей для входа в систему без загрузки графического интерфейса, например, для обновления или изменения графического интерфейса.
Если вам нужно только что-то сделать быстро (без ожидания полной загрузки графического интерфейса), например, запускать обновления на нескольких машинах. Быстрее открыть одну из консолей и использовать ее, чем загрузить графический интерфейс, открыть терминал и выйти из системы после завершения.
Я использовал его иногда для входа в систему компьютера (локально без использования ssh), в то время как другой пользователь также входил в систему с помощью графического интерфейса пользователя (без необходимости переключать пользователей или открывать терминал на своем экране)
Это позволяет пользователю многозадачность удобно напрямую с клавиатуры / монитора, подключенного к системе. Девять раз из десяти я удален в систему через ssh
и может открыть столько "консолей", сколько я хочу, но если вы не работаете в сетевой среде, это помогает. Хороший пример: установщик Debian использует несколько виртуальных консолей - одна имеет ncurses
- основанный установщик, еще двое имеют оболочку на случай, если что-то пойдет не так, или вы хотите запускать команды оболочки для просмотра оборудования и т. д., а четвертый используется для отображения состояния и вывода ошибок процессов установщика.
Системы графического интерфейса позволяют переключаться между запущенными программами и взаимодействовать с ними. Таким образом, пользователь может делать такие вещи, как запуск задания, размещать его окно в фоновом режиме и запускать дополнительные задачи, в то же время удобно отслеживая, что также выполняется.
Вы можете войти в одну консоль, запустить длинную команду, а затем переключиться / войти в другую консоль и заняться другими делами. Вы можете вернуться к первой консоли, чтобы следить за прогрессом. В качестве альтернативы вы можете войти в систему как разные пользователи, если хотите, чтобы проверить, как все работает под разными учетными записями или просто не использовать корневую учетную запись все время.
Также можно использовать одну из консолей в качестве устройства вывода, чтобы вы могли просматривать журналы или отчеты и не загромождать вашу текущую консоль. /etc/inittab
контролирует который tty
х или приставки getty
выполняется, что и обеспечивает приглашение к входу.
Традиционные системы Unix допускали только одного пользователя, подключенного через (удаленный) терминал. Но вскоре пользователи искали способы "делать несколько вещей одновременно", т. Е. Иметь возможность запустить несколько сеансов. Хорошо, вы можете взять соседний терминал тоже... но это не очень хорошо. Так что программы вроде screen
Пришел что бы быть.
Вскоре после запуска Linux была добавлена возможность иметь несколько доступных сессий. нет screen
все же, и ПК все еще обычно имеет только один набор клавиатуры / экрана / мыши...
В конце концов, если это можно сделать с (относительно) небольшими усилиями, почему бы и нет? Это очень удобно (хорошо, сегодня я рад, что под X открыта дюжина терминалов, но в старину X не было).
Если у вас долго выполняемое задание, вы можете посмотреть файл журнала, файл ошибок, загрузку системы, свободное рабочее место, свободное место на диске, сколько пользователей в системе и т. Д. И т. Д. И т. Д.
Возникает вопрос: нет, почему 7 - но почему не больше...