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

19

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

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

    
задан Hinklo 15.11.2013 в 01:33
источник

4 ответа

12

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

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

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

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

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

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

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

ответ дан Rmano 15.11.2013 в 02:23
источник
7

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

startx -- :1

(у некоторых графических объектов есть ошибки)

Ссылка

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

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

    
ответ дан Mateo 15.11.2013 в 01:59
7

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

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

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

sudo openvt -c 9 -s "bash"

Это откроет bash как root на / dev / tty9 и сразу же переключит вас на этот TTY. Чтобы сделать то же самое без sudo как non-root, вам придется изменить право собственности на tty, который вы хотите открыть. Например,

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

Это позволит мне войти в мою оболочку по умолчанию на tty8. Тем не менее, в моих тестах это работает только через TTY, поэтому, если вы делаете это через эмулятор терминала, это может не сработать (я получал Couldn't get a file descriptor referring to the console error и только 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). В прошлом многие компьютерные системы поставлялись с последовательным портом. В настоящее время это чаще всего можно найти на типах компьютеров на сервере. Для инженеров-электриков (это то, чем я занимаюсь в колледже) мы используем последовательный порт для взаимодействия с микроконтроллерами и платами разработки (например, Arduino). Однопортовые компьютеры, такие как Raspberry Pi, также используют его. В настоящее время последовательное соединение устанавливается с использованием USB-кабеля UART и открывает консоль в терминале через screen , например:

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

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

vcs * devices

В зависимости от 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'

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

ответ дан Sergiy Kolodyazhnyy 28.08.2016 в 18:08
4

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

    
ответ дан K7AAY 15.11.2013 в 01:55