Perché un terminale virtuale è "virtuale" e cosa / perché / dove si trova il terminale "reale"?


170

Spero che la domanda si spieghi da sola.

Mi risulta che gnome-terminale konsolesono virtuali terminali, e sono fondamentalmente aventi lo stesso scopo, cioè un ambiente riga di comando per vari interpreti di comandi opzionali. (Non sono nemmeno sicuro che sia il modo giusto di vederlo.)

Suppongo che il vero e proprio terminale è dove sono teletrasportato a occasionalmente da mis-keying Ctrl+ Alt+ F1, F2ecc

Ma "Ci sono draghi" in quell'entroterra a schermo nero, quindi sono fuori di lì il più velocemente possibile premendo Ctrl+ Alt+ F7(l'ho imparato da qualche parte: "Quando tutto è nero e scuro: premi i tasti segreti per tornare :)

  • È / sono il terminale di "reale" (s) l'uno (s) che esistono dietro i Ctrl+ Alt+ F1, F2, chiavi ecc?
  • E cosa c'è di così "reale" in loro rispetto a quelli "virtuali"?
  • E come differiscono? È semplice come "nessuna GUI" vs "GUI"?

PS sono anche "console" e "terminale"?


22
Non temere la riga di comando. Può renderti la vita molto più semplice per alcune cose una volta che ne hai più familiarità.
Larry Coleman,


8
@Larry: Incoraggiato dalle tue parole, mi sono avventurato nella tana del drago (Ctrl + Alt + F1), e in realtà mi sono registrato in questo momento! ... Ci fu silenzio .. ma potevo vedere il mio prompt terminale personalizzato (dalla terra di X) .. Interessante ho pensato, e mi sono sentito coraggiosamente enfatizzato per chiamare la bestia: ho detto "echo $ TERM" ... ed ecco! mi ha risposto! Diceva "linux" ... Immediatamente mi sono reso conto che è un cugino di "gnome-terminal" e "konsole" che rispondono "xterm" .. Dopotutto non è un drago, ma piuttosto è un terminale virtuale emulare un terminale linux (reale).
Peter

5
Non temere la console Linux: è un drago molto potente ma addomesticato, ed è il tuo migliore amico quando si blocca il compiz;)
MestreLion

Inoltre, puoi chiamarlo cugino gnome-terminal, dopo tutto entrambi hanno lo stesso scopo. Un cugino che non dipende da alcun ambiente grafico ed è collegato a un dispositivo che gli conferisce un po 'più di potere.
MestreLion,

Risposte:


136

La mia comprensione è che i terminali virtuali hanno sostanzialmente lo stesso scopo: vale a dire. Un ambiente da riga di comando per vari interpreti di comandi opzionali

Questo non è strettamente vero. I terminali virtuali sono semplicemente programmi che inviano sequenze di tasti e ricevono output (questo si chiama Standard In, Standard Out [e Standard Error]) a un processo in background. Questo è un sistema di inputelaborazioneoutput di base ed è al centro del sistema operativo.


Un teletipo (o teleprinter)


Uomo che lavora in un terminale di computer

Vediamo se posso spiegarlo correttamente:

In un sistema simile a Unix come Linux c'è il concetto di "tutto è un file" . Ciò significa, ad esempio, che l'unità DVD è un file (/ dev / sdb1), la tastiera è un file (/ dev / input / keyboard) e così via.

Un altro set di quei file magici sono i TTY, dove TTY sta per Teletype. Una macchina da scrivere che invia sequenze di tasti a un computer, che a sua volta rimanda le lettere alla Type Ball . Ciò avrebbe rappresentato un dispositivo fisico, una macchina da scrivere remota, allo stesso modo in cui / dev / lp0 potrebbe rappresentare la tua stampante.


Un terminale hardware, il VT100

Le stazioni di lavoro Teletype sarebbero state chiamate "Console" o "Terminali", un terminale virtuale, al contrario di quello reale, quindi qualsiasi applicazione o macchinario che fornisce le stesse funzionalità di questa disposizione sul posto di lavoro - che accede al computer inviando sequenze di tasti e ricevere di nuovo l'output da esso, stampandolo su un pezzo di carta. Puoi immaginare che un modem funzioni in modo molto simile.

I terminali, come quello nella foto sopra, sono computer economici e semplici che emulano la funzionalità di un tipo di telefono. Quando diciamo emulatore di terminale in questi giorni, intendiamo a nostra volta di solito un programma che emula la funzionalità di tale macchina.

Sono ancora in uso sistemi informatici basati su terminali. Stanno infatti diventando sempre più popolari . In passato, la ragione dei terminali era che un computer su ogni scrivania era completamente ridicolo - dove i computer riempivano una stanza ed erano immensamente costosi. Ora risparmia denaro e semplifica l'amministrazione.


un "thin client" - l'equivalente moderno del VT100

Spero che questo sia di aiuto. Per favore avvisami se ho fatto un errore.


Ciò significa che Control-Alt-F1, F2, ecc. Sono anche terminali virtuali e l'unica differenza tra loro e "gnome-terminal" / "konsole" è che non hanno una GUI?

Sì, in pratica. La differenza tra TTY1-7 e gnome-terminal è che il sistema fornisce i tty, mentre gnome-terminal e konsole sono essi stessi in esecuzione su un tty (che esegue il sottosistema grafico). Questa astrazione può essere nidificata ancora più in profondità (ad es. Inoltro x, utilizzo del protocollo telnet per fungere da terminale, ...), dopotutto, l' interfaccia uomo-computer si comporta proprio come qualsiasi altro file. E può essere convogliato, sottratto e spostato allo stesso modo.


15
La tua risposta è stata utile? ...Assolutamente!! ... molto ben spiegato ... Non avevo mai pensato a una tastiera come a un file, ma ha senso (un file di sola lettura) ... e un "thin client" è un termine di cui avevo sentito parlare alcuni podcast, ma mi è appena passato per la testa e ho pensato che si riferisse a qualche nuova architettura della CPU (a-la RISC) .. ma in realtà significa che le buone idee non vanno via e che CICS (o almeno la sua progenie ) è ancora vivo e vegeto ... molto interessante ... Grazie (ora ho un po 'più di lettura da fare ... hai iniziato qualcosa :)
Peter.O

19
Questo è un po 'casuale e non ha molto a che fare con Linux, ma comunque: se vuoi imparare alcune delle basi di come funziona effettivamente un computer, ascolta twit.tv/sn - episodi 233, 235, 237, 239 e 241 . Una serie su "come funzionano i computer dalle basi assolute", dove base significa "basso livello". Non molte persone conoscono queste cose , è molto divertente.
Stefano Palazzo

1
@TokiTahmid whoops! Corretto, grazie mille. Non è stato intenzionale, solo un errore :)
Stefano Palazzo

4
Il mio ricordo è che il VT-100 era considerato un terminale (video), non un terminale virtuale o un emulatore di terminale. Molti dispositivi contenenti i propri microprocessori sono stati considerati terminali, indipendentemente dagli altri dispositivi emulati, purché progettati per fornire input e output direttamente a un utente. Se l'interfaccia computer / umana è implementata nel software su un dispositivo che non è dedicato ad essere un terminale, definirei tale interfaccia o software un terminale virtuale. Lo scopo del dispositivo complessivo è la differenza, non la tecnologia né il protocollo di comunicazione utilizzato.
John S Gruber,

2
@JohnSGruber Il tuo ricordo è corretto, il VT100, e i suoi simili, sono terminali "video", per distinguerli dal TTY su carta, la foto in alto in questa risposta. I tre vantaggi di un VT su un TTY erano molto più silenziosi, senza sprechi di carta (ma senza scorrimento che non era sempre buono) e velocità: il TTY era praticamente limitato a 110 baud (10 caratteri / sec) che i VT potevano andare fino a 19.200baud, Iirc. Successivamente hanno anche inventato "terminali intelligenti", un VT con la capacità di eseguire alcune elaborazioni sul segnale in entrata e aggiungere colore al testo e persino, a un prezzo, grafica.
Gypsy Spellweaver

14

Abbastanza sicuro chiamarlo "terminale virtuale" è un ritorno a quando c'erano terminali fisici collegati a server unix ...


Okay ... Ha senso ... "allora" prima che esistesse il multi-tasking, e l'idea stessa era astratta e "virtuale" ... Quindi è la stessa idea di una macchina virtuale contro un hardware " ".
Peter

2
Ciò significa che Control-Alt-F1, F2, ecc. Sono anche terminali virtuali e l' unica differenza tra loro e "gnome-terminal" / "konsole" è che non hanno una GUI?
Peter

@ fred.bear: dai un'occhiata a Wikipedia .
Jamie Schembri,

virtuale perché l'estremità di input / output umana del terminale si collega effettivamente a un processo in esecuzione (tramite / dev / pts / *). I terminali non virtuali sono cose come la console di testo Linux (backend fornito dal codice del kernel per trasformare le sequenze di tasti in caratteri di input del terminale e l'output del terminale in caratteri sullo schermo, incluso l'elaborazione di codici di escape per colore, movimento del cursore ecc.). O l'esempio più antico di un terminale non virtuale, le porte seriali. Gestione dei terminali fornita da tutto ciò che è stato collegato alla porta seriale. È possibile eseguire l'avvio con la console di testo su una porta seriale.
Peter Cordes,

13

Oltre alle risposte di cui sopra, vedere questa spiegazione completa dei terminali. Il TTY, nonostante la sua apparente semplicità, è concettualmente una parte piuttosto complicata di Linux.


1
Grazie Loevborg. È un articolo davvero interessante che spiega molto della terminologia "misteriosa" ... (es. Un processo "zombi";)
Peter.O
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.