¿Por qué los emuladores de terminal de Linux no admiten colores completos?

12

Acabo de actualizar mi terminal gnome para usar 256 colores, pero estoy un poco desconcertado sobre la razón por la cual un emulador de terminal no puede admitir la paleta completa que proporciona cualquier entorno de escritorio moderno. Supongo que hay una razón técnica para esto, pero no soy consciente de ello.

Stefano Borini
fuente
2
"Terminal" es un poco ambiguo ... ¿Estás hablando de los " terminales virtuales " ("VT") que se encuentran en F1 a F6 en muchos sistemas Linux / Unix, un " emulador de terminal " como el que usas en X para que no lo uses ¿No tiene que usar los VT, o quiere decir un "terminal" real, un simple combo de pantalla de teclado (sin o con una potencia de procesamiento mínima) que se conecta a la computadora real mediante un cable?
Baard Kopperud
17
Tanto los terminales virtuales como los emuladores de terminal emulan terminales antiguos con capacidades estandarizadas (por ejemplo, vt100). Cuando existían estos terminales, la memoria era un problema mucho mayor; para que pueda elegir entre píxeles grandes / letras grandes y muchos colores, o píxeles pequeños / letras pequeñas y pocos colores: cualquier combinación ocuparía la poca memoria reservada para representar los puntos en la pantalla. Estaban destinados a programas de solo texto, y era más importante ajustar mucho texto (muchas líneas largas) que muchos colores. No necesita muchos colores para "codificar" diferentes tipos de texto (por ejemplo, negrita / cursiva).
Baard Kopperud
3
@BaardKopperud Eso debería ser una respuesta.
un CVn
2
Sí, sugeriría que Baard publique ese comentario como respuesta porque eso es básicamente lo que pedía el OP. Sin embargo, en última instancia, alguien podría haber desarrollado vt100 + (o lo que sea) y haber apoyado lo que quisieran. Supongo que nadie lo hizo porque si quieres gráficos impresionantes probablemente te interesará más ejecutarlo bajo X que bajo un terminal.
Bratchley
3
A medida que van las preguntas, preguntando "¿cómo ...?" en lugar de "¿por qué no ...?" Tiene más sentido para mí. La respuesta a "¿por qué no?" puede ser "no lograste hacerlo".

Respuestas:

7

No hay ninguna razón técnica para que no sea posible. Sin embargo, no hay muchas razones por las cuales no es práctico. Con la cantidad limitada de espacio en la pantalla que los personajes representan en la pantalla, sería difícil encontrar el uso para más de 256 colores simultáneos en la pantalla.

Hasta donde yo sé, los clientes terminales usan espacio de color indexado. Una de las razones es que, en su forma más simple, se pueden describir 256 colores indexados con un byte. Mientras que el espacio de color RGB necesita dos o tres bytes. Teniendo en cuenta cómo se codifican los colores en una secuencia de terminal, cada color sería al menos dos bytes + cualquier marcado inteligente. Esto podría no ser un gran problema de memoria, sin embargo, cuando en una transmisión de red en tiempo real puede sumar latencia, especialmente (corríjame si estoy equivocado) cada carácter se envía en su propio paquete.

Fredrik Andersson
fuente
2

Realmente no hay una razón actual . Además de, tal vez, los códigos de escape se agregaron hace solo unos años para admitir el color verdadero. Muchos terminales tienen soporte de color de 24 bits ahora, consulte https://gist.github.com/XVilka/8346728

Kevin Tindall
fuente