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

26

В чем причина наличия такого количества виртуальных консолей?

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

Hinklo
источник
Я согласен с ответом Матео ниже. Почему не БОЛЬШЕ? Я обнаружил, что все 6 открыты, и желаю большего (а графический интерфейс часто остается отключенным на экране входа в систему).
хазиз

Ответы:

16

Краткий ответ : почему нет? (подразумеваемая улыбка, пожалуйста)

Более длительный : я полагаю, это в основном история. В gettyпервом linux, который я загрузил с поддержкой VC, было настроено 6 виртуальных консолей , я действительно забыл, когда это было (я думаю, это было в 1990 году). Затем, когда вы запустили графическое окружение (вручную, с помощьюstartx ), оно открылось на первом свободном VC, который оказался №7. И я по-прежнему выполнял большую часть своей работы над венчурными капиталистами: редакторы работали намного быстрее, и иногда я использовал больше виртуальных консолей, чем стандартная шестерка, и мой ноутбук был не совсем графическим монстром ...

Например, я использовал три редактора (программу, ее входные данные, описывающий ее файл TeX), один VC для компиляции, другой для чтения руководства и другой, подключенный через telnet к моему почтовому серверу.

Я подозреваю, что обоснование для того, чтобы по-прежнему использовать шесть виртуальных консолей, состоит в том, чтобы позволить графическому VC на # 7 для всех, чтобы вы могли писать в руководствах " Ctrl-Alt-F7", а не " Ctrl-Alt-Fxгде xпервый бесплатный VC".

Как примечание стороны, вы можете (я полагаю - никогда не пытался) обрезать VC. Просто делай

sudo bash -c "echo 'manual' >> /etc/init/tty6.override"

чтобы остановить VC # 6, следуя инструкции выскочки .

Rmano
источник
Можно сократить количество активных tty, но не сами файлы устройства (если люди не хотят перекомпилировать ядра). Смотрите мой ответ ниже
Сергей Колодяжный
9

Почему не больше? Выполнить topили htopв одном (дает статистику использования процессора / памяти) sshдля других систем в 2 или 3, запустить какое-то автоматическое задание в другом, на всякий случай оставить одно свободным, войти еще нескольким пользователям, запустить cmatrixна одном, запустить GUI в другом с -

startx -- :1

(некоторые графики имеют ошибки с этим)

http://mostlylinux.wordpress.com/troubleshooting/ttysessions/

Когда вы действительно начнете использовать эту функцию, 7 tty (седьмой по умолчанию) кажутся немногим - и вы можете добавить больше.

Чтобы уменьшить количество: Как я могу уменьшить количество TTY?

Mateo
источник
8

Все /dev/tty*записи являются чем-то известным device fileв соответствии с философией Unix. Они служат связующим звеном между пользователем и фактическим устройством, но их назначение может немного отличаться.

Виртуальные консоли

Файлы устройств, такие как, /dev/tty123могут использоваться для взаимодействия с системой через обычную оболочку. Это виртуальные терминалы. Система Ubuntu настроена на открытие по умолчанию TTY с 1 по 6, но можно вручную открыть больше, например:

sudo openvt -c 9 -s "bash"

Он откроется bashкак root в / dev / tty9 и сразу переключит вас на этот TTY (если это сделано на локальном терминале, но если вы сделаете это через удаленный sshсеанс, в этом случае вам может понадобиться использовать chvt 9, где 9 /dev/tty9в этом примере). Чтобы сделать то же самое без sudoполномочий root, вам придется сменить владельца tty, который вы хотите открыть. Например,

$ sudo chown xieerqi:tty /dev/tty8 
$ openvt -c 8 -l 

Это будет входить в систему с моей оболочкой по умолчанию на tty8. В моих тестах, однако, кажется, что это работает только через TTY, так что, если вы делаете это через эмулятор терминала, это может не сработать (я получал Couldn't get a file descriptor referring to the console ошибку и sudo openvt -c 8 -lработал только для меня из эмулятора)

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

Есть несколько файлов устройств, созданных по умолчанию. Активными являются номера от 1 до 6, но их можно изменить , отредактировав /etc/default/console-setupэту часть:

# Setup these consoles.  Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"

устройства ttyS *

Это файлы устройств, используемые для последовательных консолей, или UART (также известный как RS-232). В прошлом многие компьютерные системы поставлялись с последовательным портом. В настоящее время это в основном можно найти на компьютерах серверного типа. Несколько устройств ttyS могут быть полезны с концентраторами RS-232, которые позволяют управлять несколькими устройствами через USB или Ethernet.

Для инженеров-электриков (это то, чем я занимаюсь в колледже), мы используем последовательный порт для взаимодействия с микроконтроллерами и платами разработки (например, Arduino). Однопортовые компьютеры, такие как Raspberry Pi, также используют его. В настоящее время последовательное соединение устанавливается с помощью кабеля USB-UART, и открывается консоль в терминале screenследующим образом:

screen /dev/ttyUSB0 115200 # the number is baud rate or speed

Обратите внимание, что Arduino и Raspberry создадут свой собственный файл устройства для последовательного соединения, /dev/ttyUSB0или/dev/ttyACM0

VCS * устройства

По данным man vcsэто консольные запоминающие устройства. Проще говоря, если вы это сделаете, sudo cat /dev/vcs1вы увидите, что на экране /dev/tty1, по крайней мере, до максимального количества строк в этом терминале.

Уменьшение количества консолей

Уменьшение количества актуальных файлов устройства невозможно без изменения tty.hбиблиотеки и перекомпиляции ядра ( справочного и другого ). Тем не менее, удаление этих устройств может быть сделано вручную с помощью этой команды:

sudo bash -c 'for num in $(seq 10 63 ) ; do MAKEDEV -v -d "tty$num" ; done'

Это, однако, несколько бессмысленно - файлы устройств не занимают места и не влияют на производительность системы.

Сергей Колодяжный
источник
Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
тердон
6

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

K7AAY
источник