Линукс VT поддерживает 8 цветов, но в действительности существует 16 районных. Почему так?

Согласно статье Вики https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit, существует 8 «Стандартных цветов» и 8 «Цветов высокой интенсивности». Когда я проверил возможности терминала виртуальной консоли Linux (tty) по tput colors он показал 8. Однако, если я печатаю их в VT, я получаю 16 различных цветов. Почему так?

Вот скриншот:

введите описание изображения здесь

Я вижу, что нет поддержки 256 цветов. Консоль просто смешивает существующие, вызывая такой «эффект». Поэтому я не спрашиваю, почему он не поддерживает X или что-то подобное.

Согласно статье Вики https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit, существует 8 «Стандартных цветов» и 8 «Цветов высокой интенсивности». Когда я проверил возможности терминала виртуальной консоли Linux (tty) по цветам tput, он показал 8. Однако, если я печатаю их в VT, я получаю 16 различных цветов. Почему так?

Если вы присмотритесь, вы увидите, что цвета 0-7 – более темные версии от 8 до 15.

Эта схема основана на раннем оборудовании текстового режима, которое использовало 4 бита для определения красного, зеленого, синего и интенсивности, например:

 ----------------- | 8 | 4 | 2 | 1 | ----------------- | I | R | G | B | ----------------- 

Сложите значения для того, что вы хотите. Светло-красный = 8 + 4 = 12, например.

Биты расположены по-разному в вашем примере, выглядит как 1 = красный, 2 = зеленый, 4 = синий.

В этой схеме есть 3 цветовых бита, поэтому 8 разных цветов (000 или черный – это цвет) с 1 выбираемым битом яркости или интенсивности. Это то, что подразумевается под «8 стандартных цветов и 8 цветов высокой интенсивности».

(Эти биты были сохранены в разделе памяти, называемом «память атрибутов» – остальные 4 бита могли выбирать цвет фона и включать / выключать режим мигания.)

Что касается того, почему вы не видите 256 цветов, ваш терминал, вероятно, не находится в режиме 256 цветов или что-то в этом роде.