Почему так много виртуальных консолей?
В чем причина наличия такого количества виртуальных консолей?
Я бы понял, если бы был один в случае сбоя GUI, но еще 6, кроме по умолчанию? Для чего они? Я даже не вижу никакого использования для любого из них, за исключением случаев, когда графический интерфейс зависает.
4 ответа
Краткий ответ: почему нет? (подразумеваемая улыбка, пожалуйста)
Более длительный: я полагаю, это в основном история. Там где 6 виртуальных консолей настроены с getty
в первом linux, который я загрузил с поддержкой VC, я действительно забыл, когда (это было около 1990 года, я думаю). Затем, когда вы начали графическое окружение (вручную, сstartx
) он открыл себя на первом свободном VC, который оказался № 7. И я по-прежнему выполнял большую часть своей работы над венчурными капиталистами в то время: редакторы были намного быстрее, и иногда я использовал больше венчурных капиталистов, чем стандартная шестерка, и мой ноутбук не был точно графическим монстром...
Например, я использовал три редактора (программу, ее входные данные, описывающий ее файл TeX), один VC для компиляции, другой для чтения руководства и другой, подключенный через telnet к моему почтовому серверу.
Я подозреваю, что обоснование для того, чтобы по-прежнему использовать шесть виртуальных консолей, состоит в том, чтобы позволить графическому VC на #7 для всех, чтобы вы могли писать руководства ".Ctrl-Alt-F7
" и не "Ctrl-Alt-Fx
где x
это первый бесплатный ВК ".
Как примечание стороны, вы можете (я полагаю - никогда не пытался) обрезать VC. Просто делай
sudo bash -c "echo 'manual' >> /etc/init/tty6.override"
чтобы остановить VC#6, следуя инструкции выскочки.
Все /dev/tty*
записи являются чем-то известным как device file
в соответствии с философией Unix. Они служат связующим звеном между пользователем и фактическим устройством, но их назначение может немного отличаться.
Виртуальные консоли
Файлы устройства, такие как /dev/tty123
Может использоваться для взаимодействия с системой через обычную оболочку. Это виртуальные терминалы. Система Ubuntu настроена на открытие по умолчанию TTY с 1 по 6, но можно вручную открыть больше, например:
sudo openvt -c 9 -s "bash"
Что откроется bash
от имени пользователя root на /dev/tty9 и немедленно переключите вас на этот TTY. Сделать то же самое без 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'
Это, однако, несколько бессмысленно - файлы устройств не занимают места и не влияют на производительность системы.
Почему не больше? Бежать top
или же htop
в одном (дает статика использования процессора / памяти), ssh
к другим системам в 2 или 3, запустите какое-то автоматическое задание в другом, оставьте одно на всякий случай свободным, войдите к нескольким пользователям еще через несколько, запустите cmatrix
на одном запустить GUI в другом с помощью -
startx -- :1
(некоторые графики имеют ошибки с этим)
http://mostlylinux.wordpress.com/troubleshooting/ttysessions/
Когда вы действительно начнете использовать эту функцию, 7 tty (седьмой по умолчанию) кажутся немногим - и вы можете добавить больше.
Чтобы уменьшить количество: Как я могу уменьшить количество TTY?
Практичность реальна. В действительно многопользовательской системе Linux может быть одновременно запущено несколько программ, и вы можете проверить каждую из них, работает ли она в своем собственном виртуальном терминале. Когда вы входите в каждый из них, вы можете войти как разные пользователи, если это необходимо. Теперь, само собой разумеется, многие люди приходят в Linux с однопользовательской точки зрения, но с тех пор, как Linux родился многопользовательским, эта возможность никогда не отбрасывалась.