Стандарт ISO 6429¶
Стандарт ISO 6429 — это международный стандарт, определяющий управляющие функции для символьных кодировок, используемых в устройствах вывода информации (терминалах, принтерах, дисплеях). Официальное название — «Информационные технологии — Управляющие функции для кодированных наборов символов» (Information technology — Control functions for coded character sets). Стандарт устанавливает набор управляющих последовательностей, которые позволяют управлять положением курсора, режимами отображения (цвет, подчёркивание, мигание), очисткой экрана и другими параметрами текстового интерфейса, не являясь при этом отображаемыми символами. ISO 6429 является основой для широко распространённых стандартов ANSI escape-кодов, используемых в эмуляторах терминалов и текстовых консолях.
¶История
Разработка стандарта началась в 1970-х годах, когда возникла необходимость унификации управления текстовыми терминалами различных производителей. До этого каждый производитель (например, DEC, IBM, Lear Siegler) использовал собственные, несовместимые между собой управляющие последовательности. Первая версия стандарта была опубликована Международной организацией по стандартизации (ISO) в 1983 году под номером ISO 6429:1983. Впоследствии стандарт неоднократно пересматривался: в 1988, 1992, 1996 и 2001 годах. Текущая версия — ISO 6429:2001.
В 1990-х годах стандарт был адаптирован Американским национальным институтом стандартов (ANSI) как ANSI X3.64, а также принят как национальный стандарт в ряде стран (например, в России — ГОСТ Р ИСО/МЭК 6429). Наибольшее распространение стандарт получил в среде Unix-подобных операционных систем, где он лёг в основу протоколов эмуляции терминалов (xterm, VT100, VT220 и др.).
¶Структура и основные понятия
ISO 6429 определяет два типа управляющих последовательностей: управляющие символы (C0 и C1) и управляющие последовательности (escape-последовательности).
¶Управляющие символы C0
Это односимвольные коды в диапазоне 0x00–0x1F (0–31 в десятичной системе). К ним относятся:
- NUL (0x00) — пустой символ, часто используется для заполнения.
- LF (0x0A) — перевод строки (line feed).
- CR (0x0D) — возврат каретки (carriage return).
- BEL (0x07) — звуковой сигнал (bell).
- BS (0x08) — возврат на один символ (backspace).
- TAB (0x09) — горизонтальная табуляция.
¶Управляющие символы C1
Это двухсимвольные последовательности, начинающиеся с символа ESC (0x1B) и заканчивающиеся символом в диапазоне 0x40–0x5F. Например:
- ESC H — установка табуляции.
- ESC [ — начало управляющей последовательности CSI (Control Sequence Introducer).
¶Escape-последовательности
Наиболее важная часть стандарта — последовательности, начинающиеся с CSI (ESC [). Они имеют формат: ESC [ <параметры> <команда> где параметры — это числа, разделённые точкой с запятой (;), а команда — буква или символ. Примеры:
ESC [2J— очистка всего экрана.ESC [H— перемещение курсора в домашнюю позицию (левый верхний угол).ESC [1;1H— перемещение курсора на строку 1, столбец 1.ESC [31m— установка красного цвета текста.ESC [0m— сброс всех атрибутов.
¶Основные группы управляющих функций
Стандарт ISO 6429 классифицирует управляющие функции по назначению:
¶Управление курсором
- CUP (Cursor Position) — перемещение курсора в заданную позицию (строка, столбец).
- CUU (Cursor Up) — перемещение курсора вверх на N строк.
- CUD (Cursor Down) — вниз.
- CUF (Cursor Forward) — вправо.
- CUB (Cursor Backward) — влево.
- HVP (Horizontal and Vertical Position) — то же, что CUP, но с другим синтаксисом.
- DSR (Device Status Report) — запрос состояния устройства (например, позиции курсора).
¶Управление режимами отображения (SGR — Select Graphic Rendition)
Параметры SGR задаются после ESC [ ... m. Основные значения:
- 0 — сброс всех атрибутов.
- 1 — жирный шрифт (bold).
- 3 — курсив.
- 4 — подчёркивание.
- 5 — мигание.
- 7 — инверсные цвета (negative).
- 8 — невидимый текст (concealed).
- 30–37 — цвета текста (чёрный, красный, зелёный, жёлтый, синий, пурпурный, голубой, белый).
- 40–47 — цвета фона (аналогично).
- 90–97 — яркие цвета текста.
- 100–107 — яркие цвета фона.
¶Очистка и прокрутка
- ED (Erase Display) — очистка экрана: 0 — до конца, 1 — с начала, 2 — всё.
- EL (Erase Line) — очистка строки: 0 — до конца, 1 — с начала, 2 — вся строка.
- SU (Scroll Up) — прокрутка экрана вверх на N строк.
- SD (Scroll Down) — прокрутка вниз.
¶Управление режимами терминала (SM/RM)
- SM (Set Mode) — включение режима (например, режим автоматического перевода строки).
- RM (Reset Mode) — выключение режима.
¶Дополнительные функции
- DA (Device Attributes) — запрос идентификационных данных терминала.
- DEC private modes — расширения, специфичные для терминалов DEC (VT100 и др.), не входящие в основную спецификацию ISO 6429, но широко используемые в эмуляторах.
¶Применение
ISO 6429 является основой для:
- Эмуляторов терминалов в Unix-подобных системах (xterm, GNOME Terminal, Konsole, iTerm2, PuTTY).
- Текстовых консолей Linux и FreeBSD (драйверы консоли поддерживают подмножество ANSI escape-кодов).
- Программного обеспечения для вывода цветного текста в командной строке (например, утилиты
ls --color,grep --color,git diff). - Языков программирования — библиотеки для работы с терминалом (ncurses, terminfo, Python
colorama, Node.jschalk). - Протоколов удалённого доступа (SSH, telnet) — передача escape-последовательностей через канал связи.
¶Примеры использования
| Последовательность | Действие |
|---|---|
ESC [31;42m | Красный текст на зелёном фоне |
ESC [1;4m | Жирный подчёркнутый текст |
ESC [2J | Очистка экрана |
ESC [5;10H | Курсор на строку 5, столбец 10 |
ESC [0m | Сброс всех атрибутов |
¶Критика и ограничения
Основные недостатки ISO 6429:
- Сложность и избыточность — стандарт содержит множество редко используемых функций.
- Неоднозначность реализации — разные эмуляторы терминалов по-разному интерпретируют одни и те же последовательности (особенно расширения DEC).
- Отсутствие поддержки в современных графических интерфейсах — стандарт ориентирован на текстовые терминалы, в GUI-приложениях не используется.
- Проблемы безопасности — некорректная обработка escape-последовательностей может приводить к уязвимостям (например, атаки с использованием управляющих символов в логах).
¶Интересные факты
- Стандарт ISO 6429 не является обязательным для сертификации; его соблюдение — дело добровольное.
- В России стандарт принят как ГОСТ Р ИСО/МЭК 6429-2001.
- Наиболее известная реализация — стандарт ANSI X3.64, который часто ошибочно называют «ANSI-кодами».
- В 2010-х годах появились расширения для поддержки 24-битного цвета (true color), не входящие в оригинальную спецификацию ISO 6429.
¶Источники
- ISO 6429:2001. Information technology — Control functions for coded character sets.
- ANSI X3.64-1979. American National Standard for Information Systems — Control Functions for Coded Character Sets.
- ГОСТ Р ИСО/МЭК 6429-2001. Информационная технология. Управляющие функции для кодированных наборов символов.
- ECMA-48. Standard for Control Functions for Coded Character Sets (основа для ISO 6429).
- Документация эмуляторов терминалов (xterm, VT100, VT220).
- Справочник по ANSI escape-кодам (ECMA-48, ISO 6429).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


