Текстовый интерфейс пользователя
Материал из Википедии — свободной энциклопедии
Текстовый интерфейс пользователя (англ. Text user interface, TUI) — система средств взаимодействия пользователя с компьютером, основанная на использовании текстового (буквенно-цифрового) режима дисплея или аналогичных — например, командная строка.
Содержание |
[править] Особенности текстового интерфейса
На программном уровне, для ввода и вывода информации консольные программы используют стандартные устройства ввода-вывода (stdin, stdout, stderr), хотя могут открывать и другие файлы, сетевые соединения и совершать иные действия, доступные в выполняющей их среде. Вывод печатных символов в stdout и stderr приводит к появлению этих символов на устройстве вывода, т.е. к их получению пользователем.
В простейшем случае, консольная программа использует интерфейс командной строки, однако, многие из них, с помощью управляющих последовательностей терминалов, создают более дружественный интерфейс, приближающийся к графическому (см. меню (информатика)).
Некоторые консольные программы пригодны лишь для определённой реализации текстового интерфейса, например текстовые программы DOS. Однако, консольные программы для более продвинутых операционных систем, особенно UNIX, как правило, способны работать на достаточно широком классе реализаций интерфейса с пользователем. Для упрощения написания таких программ широко применяется библиотека ncurses.
[править] Реализация текстового интерфейса
В принципе, консольная программа не обязана заботиться о реализации самого взаимодействия с пользователем, ограничиваясь вводом-выводом на стандартные устройства, использованием библиотек типа ncurses или иных программных интерфейсов. Собственно взаимодействие с пользователем обычно осуществляет операционная система или иное программное обеспечение.
Классической реализацией текстового интерфейса, восходящей к первой половине XX века, является алфавитно-цифровое устройство ввода-вывода, например комплект из клавиатуры и АЦПУ (телетайпа). Впоследствии вместо АЦПУ стали применять мониторы, снабжённые знакогенератором, что позволило быстро и удобно организовывать диалог с пользователем. Подобными устройствами снабжён, или может быть снабжён, почти каждый современный компьютер. Такие комплекты из монитора и клавиатуры (иногда с добавлением мыши) называются консолью компьютера.
В соответствии с традицией использования консольными программами клавиатуры и АЦПУ для ввода и вывода соответственно, взаимодействие таких программ с пользователем свелось к чтению из stdin и выводу на stdout. Таким образом, появилась возможность перенаправлять потоки ввода-вывода, осуществляя взаимодействие с пользователем посредством иных устройств, в т.ч. подключенных через сеть, а также при помощи специальных программ-эмуляторов терминала, например рисующих окно с текстом в графическом интерфейсе пользователя (текстовое окно).
В 1970-х гг. и позднее выпускались даже специальные устройства, реализующие текстовый интерфейс — текстовые терминалы, подключаемые через последовательный порт к компьютеру, напрямую или через модем. С распространением персональных компьютеров функции текстового терминала как правило выполняет компьютер, тот на котором выполняется консольная программа или другой. Программы Telnet и ssh (а также PuTTY для Windows) позволяют пользователю взаимодействовать с консольной программой, запущенной на удалённом компьютере (как правило под управлением UNIX), через Интернет или локальную сеть. Программы xterm, rxvt и konsole реализуют текстовый интерфейс посредством текстового окна в среде X Window.
Альтернативный подход к консольному выводу был использован в персональных компьютерах, в частности (хотя не только) IBM PC под управлением DOS. Программа может не только выводить данные через stdout, но и прямо изменять содержимое определённой области памяти, связанной со знакогенератором монитора, приводя к немедленному изменению видимых на мониторе данных. Такие программы могут также работать в среде Microsoft Windows. Более того, Windows имеет поддержку текстовых окон, во многом превосходящую имевшуюся в DOS, в т.ч. и для приложений собственно Windows.
Linux предоставляет ещё бо́льшие возможности для консольных программ. В частности, даже безо всякого графического интерфейса несколько одновременно запущенных программ могут бесконфликтно взаимодействовать с пользователем, создавая иллюзию наличия в системе нескольких консолей (виртуальные консоли).
[править] Примеры консольных программ
- Любая программа, осуществляющая получение данных от пользователя путём чтения stdin и отправку данных пользователю путём записи в stdout, по определению является консольной программой. Однако, такие программы могут обходиться и безо всякого пользователя, например обрабатывая данные из файлов.
- Текстовые программы для DOS, осуществляющие вывод в видеопамять EGA/VGA. Подобные программы работают также в среде GUI Microsoft Windows.
- Unix shell, а также все утилиты, предназначенные для работы в этой среде.
- Midnight Commander (UNIX), FAR Manager (Windows).