Perché gli emulatori di terminali Linux non supportano i colori pieni?


12

Ho appena aggiornato il mio terminale GNOME per usare 256 colori, ma sono un po 'perplesso sul motivo per cui un emulatore di terminale non può supportare l'intera tavolozza fornita da qualsiasi ambiente desktop moderno. Immagino che ci sia una ragione tecnica per questo, ma non ne sono consapevole.


2
"Terminale" è un po 'ambiguo ... Stai parlando dei " terminali virtuali " ("VT") trovati da F1 a F6 su molti sistemi Linux / Unix, un " emulatore di terminale " che usi sotto X, quindi non devi usare i VT, o intendi un vero "terminale" - una semplice combinazione schermo-tastiera (senza o con solo una potenza di elaborazione minima) che è agganciata al computer reale via cavo?
Baard Kopperud,

17
Sia i terminali virtuali che gli emulatori di terminali emulano terminali vecchio stile con funzionalità standardizzate (ad es. Vt100). Quando c'erano questi terminali, la memoria era molto più un problema; così puoi scegliere tra pixel grandi / lettere grandi e molti colori, oppure pixel piccoli / lettere minuscole e pochi colori - una combo occuperebbe la piccola memoria messa da parte per rappresentare i punti sullo schermo. Erano destinati a programmi di solo testo ed era più importante inserire molto testo (molte righe lunghe) rispetto a molti colori. Non hai bisogno di molti colori per "codificare" diversi tipi di testo (ad esempio grassetto / corsivo).
Baard Kopperud,

3
@BaardKopperud Dovrebbe essere una risposta.
un CVn

2
Sì, suggerirei a Baard di postare quel commento come una risposta, perché questo è fondamentalmente ciò che l'OP stava chiedendo. Alla fine, però, qualcuno avrebbe potuto sviluppare vt100 + (o qualsiasi altra cosa) e supportare ciò che voleva. Immagino che nessuno l'abbia fatto perché se vuoi una grafica impressionante probabilmente sarai più interessato a farla funzionare sotto X che sotto un terminale.
Bratchley,

3
Come vanno le domande, chiedendo "come posso ...?" invece di "perché non ...?" ha più senso per me. La risposta a "perché non lo fa?" può essere "non sei riuscito a farlo."

Risposte:


7

Non ci sono ragioni tecniche per non essere possibile. Tuttavia non ci sono molte ragioni per cui non è pratico. Con la quantità limitata di proprietà dello schermo che i personaggi rappresentano sullo schermo, faresti fatica a trovare un uso per più di 256 colori simultanei sullo schermo.

Per quanto ne so i client terminal usano lo spazio colore indicizzato. Uno dei motivi è che nella sua forma più semplice, 256 colori indicizzati possono essere descritti con un byte. Mentre lo spazio colore RGB richiede due o tre byte. Considerando come i colori sono codificati in un flusso terminale, ogni colore sarebbe almeno due byte + qualsiasi markup intelligente. Questo potrebbe non essere un grosso problema con la memoria, tuttavia quando su un flusso di rete in tempo reale potrebbe aumentare la latenza, specialmente (correggimi se sbaglio) ogni personaggio viene inviato nel suo pacchetto.


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.