Perché così tante console virtuali?


26

Qual è il motivo per avere così tante console virtuali?

Capirei se ce ne fosse uno nel caso in cui la GUI si arresti in modo anomalo ma altri 6 oltre a quello predefinito? A cosa servono? Non vedo nemmeno alcun utilizzo per nessuno di essi tranne quando la GUI si blocca.


Sono d'accordo con la risposta di Mateo di seguito. Perché non di PIÙ? Mi ritrovo ad avere tutti e 6 aperti e desiderare di più (e la GUI spesso rimane "spenta" nella schermata di accesso).
Haziz

Risposte:


16

Risposta breve : perché no? (sorriso implicito, per favore)

Più lungo : suppongo sia principalmente una storia. C'erano 6 console virtuali configurate con gettyil primo Linux che ho avviato con il supporto VC, mi sono davvero dimenticato quando (era verso il 1990, credo). Quindi, quando hai iniziato l'ambiente grafico (a mano, constartx ) si è aperto sul primo VC libero, che era il 7 °. E all'epoca continuavo a fare gran parte del mio lavoro sui VC: gli editor erano molto più veloci e a volte usavo più VC rispetto ai sei standard, e il mio laptop non era esattamente un mostro grafico ...

Ad esempio, eseguivo tre editor (un programma, i suoi dati di input, un file TeX che lo descriveva), un VC per la compilazione, un altro per leggere un manuale e un altro collegato via telnet al mio server di posta.

Ho il sospetto che la logica per continuare a usare sei console virtuali sia quella di lasciare il VC grafico su # 7 per tutti, in modo da poter scrivere sui manuali " Ctrl-Alt-F7" e non " Ctrl-Alt-Fxdov'è xil primo VC gratuito".

Come nota a margine, puoi (suppongo che non abbia mai provato) tagliare i VC. Semplicemente

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

per interrompere VC # 6, seguendo il manuale di avvio .


È possibile ridurre il numero di tty attivi , ma non i file del dispositivo stessi (a meno che le persone non vogliano ricompilare i kernel). Vedi la mia risposta di seguito
Sergiy Kolodyazhnyy,

9

Perché non di più? Esegui topo htopin uno (fornisce statistiche sugli usi della CPU / memoria), sshad altri sistemi in 2 o 3, esegui un'attività automatizzata in un altro, mantieni uno libero nel caso in cui, accedi a più utenti in pochi altri, esegui cmatrixsu uno, avvia il GUI in un altro con -

startx -- :1

(alcuni grafici hanno dei bug con questo)

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

Quando inizi davvero a utilizzare questa funzione, 7 tty (il settimo è il valore predefinito) sembrano pochi - e puoi aggiungerne altri.

Per ridurre il numero: come posso ridurre il numero di TTY?


8

Tutte le /dev/tty*voci sono conosciute come device file, secondo la filosofia Unix. Servono come collegamento tra l'utente e il dispositivo reale, ma il loro scopo può differire leggermente.

Console virtuali

I file di dispositivo come /dev/tty123possono essere utilizzati per interagire con il sistema tramite una normale shell. Questi sono terminali virtuali. Il sistema Ubuntu è configurato per l'apertura di default da TTY 1 a 6, ma è possibile aprirne di più manualmente, ad esempio:

sudo openvt -c 9 -s "bash"

Si aprirà bashcome root su / dev / tty9 e passerà immediatamente a quel TTY (se fatto sul terminale locale, ma se lo fai tramite una sshsessione remota , nel qual caso potresti dover usare chvt 9, dove 9 è /dev/tty9in questo esempio). Per fare lo stesso senza sudonon-root, dovrai cambiare la proprietà di tty che vuoi aprire. Per esempio,

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

Ciò mi farebbe accedere con la mia shell predefinita su tty8. Nei miei test, tuttavia, sembra che funzioni solo tramite TTY, quindi se lo stai facendo tramite l'emulatore di terminale, potrebbe non funzionare (ho ricevuto un Couldn't get a file descriptor referring to the console errore e ha sudo openvt -c 8 -lfunzionato solo per me dall'emulatore)

Dal punto di vista storico, prima che fossero creati tutti i fantasiosi multiplexer terminali, questa era una funzione utile: potresti generare fino a 62 comandi (forse server) su quelle console e lasciarli funzionare mentre lavoravano al 63 °. Al giorno d'oggi, potrebbe non essere necessario.

Esistono più file di dispositivo creati per impostazione predefinita. Quelli attivi sono compresi tra 1 e 6, ma è possibile modificarne il numero modificando /etc/default/console-setup, in particolare questa parte:

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

dispositivi ttyS *

Si tratta di file di dispositivi utilizzati per console seriali, noto anche come UART (noto anche come RS-232). In passato molti sistemi informatici venivano forniti con porta seriale. Al giorno d'oggi, questo potrebbe essere trovato principalmente sul tipo di server di computer. Più dispositivi ttyS potrebbero essere utili con hub RS-232, che consentono la gestione di più dispositivi tramite USB o Ethernet.

Per gli ingegneri elettrici (che è ciò che mi sto laureando in un college), usiamo la porta seriale per interagire con i microcontrollori e le schede di sviluppo (Arduino, per esempio). Anche i computer a porta singola, come Raspberry Pi, lo usano. Al giorno d'oggi, la connessione seriale viene stabilita utilizzando il cavo da USB a UART e aprendo la console nel terminale in questo screenmodo:

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

Si noti che Arduino e Raspberry creeranno il proprio file del dispositivo per la connessione seriale, /dev/ttyUSB0oppure/dev/ttyACM0

dispositivi vcs *

Secondo man vcsquesti sono i dispositivi di memoria della console. In parole semplici, se lo fai sudo cat /dev/vcs1vedrai cosa c'è sullo schermo /dev/tty1, almeno fino al massimo numero di linee in quel terminale.

Diminuendo il numero di console

Ridurre il numero di file effettivi del dispositivo non è possibile senza alterare la tty.hlibreria e ricompilare il kernel ( Riferimenti e un altro ). Tuttavia, l'eliminazione di tali dispositivi può essere eseguita manualmente tramite questo comando:

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

Questo, tuttavia, è in qualche modo inutile: i file del dispositivo non occupano spazio e non influenzano le prestazioni del sistema.


I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
Terdon

6

La praticità è reale. Possono esserci più programmi in esecuzione simultaneamente nel sistema Linux veramente multiutente, ed è possibile accedere a ciascuno di essi per verificare se ognuno funziona nel proprio terminale virtuale. Quando si accede a ciascuno, è possibile accedere come utenti diversi, se necessario. Ora, garantito, molte persone arrivano a Linux con una prospettiva per singolo utente, ma poiché Linux è nato multiutente, questa capacità non è mai stata scartata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.