Por que tantos consoles virtuais?

26

Qual o motivo de ter tantos consoles virtuais?

Eu entenderia se houvesse um caso a GUI travasse, mas mais 6 além do padrão? Para que servem? Eu até não vejo uso para nenhum deles, exceto quando a GUI congela.

Hinklo
fonte
Eu concordo com a resposta de Mateo abaixo. Por que não MAIS? Encontro-me tendo todos os 6 abertos e desejando mais (e a GUI geralmente permanece "desligada" na tela de login).
haziz 10/03

Respostas:

16

Resposta curta : por que não? (sorriso implícito, por favor)

Mais longo : suponho que seja principalmente uma história. Havia 6 consoles virtuais configurados gettyno primeiro linux que inicializei com suporte a VC, eu realmente esqueci quando (era por volta de 1990, eu acho). Então, quando você iniciou o ambiente gráfico (manualmente, comstartx ), ele se abriu no primeiro VC gratuito, que era o número 7. E eu ainda fazia a maior parte do meu trabalho em videocassetes na época: os editores eram muito mais rápidos e, em algum momento, usei mais videocassetes que os seis padrão, e meu laptop não era exatamente um monstro gráfico ...

Por exemplo, eu costumava executar três editores (um programa, seus dados de entrada, um arquivo TeX que o descrevia), um VC para compilar, outro para ler um manual e outro conectado via telnet ao meu servidor de correio.

Eu suspeito que a lógica de ainda usar seis consoles virtuais é deixar o VC gráfico em # 7 para todos, para que você possa escrever nos manuais " Ctrl-Alt-F7" e não " Ctrl-Alt-Fxonde xestá o primeiro VC grátis".

Como uma observação lateral, você pode (suponho --- nunca tentei) reduzir os VCs. Simplesmente faça

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

para interromper o VC # 6, seguindo o manual inicial .

Rmano
fonte
É possível reduzir o número de tty ativos , mas não os arquivos do dispositivo (a menos que as pessoas queiram recompilar kernels). Veja minha resposta abaixo #
Sergiy Kolodyazhnyy 28/08
9

Por que não mais? Execute topou htopem um (fornece estática de uso de CPU / memória), sshpara outros sistemas em 2 ou 3, execute alguma tarefa automatizada em outro, mantenha uma livre apenas por precaução, faça login em vários usuários em mais algumas, execute cmatrixem um, inicie o GUI em outro com -

startx -- :1

(alguns gráficos têm erros com isso)

http://mostlylinux.wordpress.com/trou Troubleshooting/ttysessions/

Quando você realmente começa a utilizar esse recurso, 7 tty (o sétimo é o padrão) parece muito pequeno - e você pode adicionar mais.

Para reduzir o número: Como posso reduzir o número de TTYs?

Mateo
fonte
8

Todas as /dev/tty*entradas são conhecidas como device file, de acordo com a filosofia do Unix. Eles servem como um link entre o usuário e o dispositivo real, mas seu objetivo pode ser um pouco diferente.

Consoles virtuais

Os arquivos do dispositivo /dev/tty123podem ser usados ​​para interagir com o sistema por meio do shell comum. Esses são terminais virtuais. O sistema Ubuntu está configurado para abrir por padrão TTY 1 a 6, mas é possível abrir manualmente mais, por exemplo:

sudo openvt -c 9 -s "bash"

Isso abrirá bashcomo root em / dev / tty9 e imediatamente o levará para esse TTY (se feito no terminal local, mas se você fizer isso por meio de uma sshsessão remota , nesse caso, poderá ser necessário usar chvt 9, onde 9 está /dev/tty9neste exemplo). Para fazer o mesmo sem sudoser não raiz, você precisará alterar a propriedade do tty que deseja abrir. Por exemplo,

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

Isso me conectaria com meu shell padrão no tty8. Nos meus testes, no entanto, parece que isso funciona apenas via TTY; portanto, se você estiver fazendo isso através do emulador de terminal, isso pode não funcionar (eu estava recebendo Couldn't get a file descriptor referring to the console erro e só sudo openvt -c 8 -lfuncionava para mim no emulador)

Do ponto de vista histórico, antes da criação de todos os sofisticados multiplexadores de terminal, esse era um recurso útil - você podia gerar até 62 comandos (talvez servidores) nesses consoles e deixá-los rodar enquanto trabalhava na 63ª. Atualmente, pode não ser tão necessário.

Existem vários arquivos de dispositivo criados por padrão. Os ativos são de 1 a 6, mas é possível alterar seu número editando /etc/default/console-setup, especificamente esta parte:

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

dispositivos ttyS *

Esses são arquivos de dispositivo usados ​​para consoles seriais, também conhecidos como UART (também conhecido como RS-232). No passado, muitos sistemas de computadores vinham com porta serial. Atualmente, isso pode ser encontrado principalmente no tipo de servidor de computadores. Vários dispositivos ttyS podem ser úteis com os hubs RS-232, que permitem conectar vários dispositivos a serem gerenciados via USB ou Ethernet.

Para engenheiros elétricos (que é o que eu estou estudando na faculdade), usamos porta serial para interagir com microcontroladores e placas de desenvolvimento (Arduino, por exemplo). Os computadores de porta única, como o Raspberry Pi, também o usam. Atualmente, a conexão serial é estabelecida usando o cabo USB para UART e abrindo o console no terminal da seguinte screenmaneira:

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

Observe que o Arduino e o Raspberry criarão seu próprio arquivo de dispositivo para conexão serial /dev/ttyUSB0ou/dev/ttyACM0

dispositivos vcs *

De acordo com man vcsestes são os dispositivos de memória do console. Em palavras simples, se você sudo cat /dev/vcs1ver o que está na tela /dev/tty1, pelo menos até a quantidade máxima de linhas nesse terminal.

Diminuindo o número de consoles

Diminuir o número de arquivos de dispositivos reais não é possível sem alterar a tty.hbiblioteca e recompilar o kernel ( Reference e outro ). No entanto, a exclusão desses dispositivos pode ser feita manualmente através deste comando:

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

Isso, no entanto, é um pouco inútil - os arquivos do dispositivo não ocupam espaço e não influenciam o desempenho do sistema.

Sergiy Kolodyazhnyy
fonte
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
terdon 8/01
6

A praticidade é real. Pode haver vários programas em execução simultaneamente no sistema Linux verdadeiramente multiusuário, e você pode verificar cada um deles, se cada um deles é executado em seu próprio terminal virtual. Ao fazer login em cada um, você pode fazer login como usuários diferentes, se necessário. Agora, concedido, muitas pessoas chegam ao Linux com uma perspectiva de usuário único, mas desde que o Linux nasceu multiusuário, esse recurso nunca foi descartado.

K7AAY
fonte