...

Консоль программы что это

Consoles

A console is an application that provides I/O services to character-mode applications.

A console consists of an input buffer and one or more screen buffers. The input buffer contains a queue of input records, each of which contains information about an input event. The input queue always includes key-press and key-release events. It may also include mouse events (pointer movements and button presses and releases) and events during which user actions affect the size of the active screen buffer. A screen buffer is a two-dimensional array of character and color data for output in a console window. Any number of processes can share a console.

A broader idea of consoles and how they relate to terminals and command-line client applications can be found in the ecosystem roadmap.

  • Creation of a Console
  • Attaching to a Console
  • Closing a Console
  • Console Handles
  • Console Input Buffer
  • Console Screen Buffers
  • Window and Screen Buffer Size
  • Console Selection
  • Scrolling the Screen Buffer

Определения

Этот документ содержит определения конкретных слов и фраз в этом пространстве и будет использоваться в качестве ссылки в этом наборе документов.

Приложения командной строки

Приложения командной строки или иногда называемые «консольными приложениями» и /или называемые «клиентами» подсистемы консоли, являются программами, которые работают в основном с потоком текстовой или символьной информации. Как правило, они не содержат собственных элементов пользовательского интерфейса и делегируют как выходные и отображаемые, так и входные и взаимодействующие роли размещенному приложению. Приложения командной строки получают поток текста на свой стандартный дескриптор ввода STDIN , который представляет ввод с клавиатуры пользователя, обрабатывает эти сведения, а затем отвечает потоком текста на их стандартных выходных данных STDOUT для отображения обратно на монитор пользователя. Конечно, это развивалось с течением времени для дополнительных устройств ввода и удаленных сценариев, но та же базовая философия остается прежней: клиенты командной строки работают с текстом, а кто-то другой управляет отображением и вводом.

Стандартные дескрипторы

Стандартные дескрипторы — это ряды , STDIN STDOUT и STDERR , представленные в рамках пространства процессов при запуске. Они представляют собой место для принятия информации на пути и отправки обратно на выходе (в том числе специальное место для сообщения об ошибках). Для приложений командной строки они всегда должны существовать при запуске приложения. Они либо наследуются от родительского элемента автоматически, явно задаются родительским элементом, либо автоматически создаются операционной системой, если ни один из них не указан или не разрешен. Для классических приложений Windows они могут быть пустыми при запуске. Однако они могут быть неявно или явно унаследованы от родительского или выделенного, присоединенного и освобожденного во время выполнения самим приложением.

Стандартные дескрипторы не подразумевают конкретный тип подключенного устройства. Однако в случае с приложениями командной строки устройство чаще всего является консольным устройством, файлом (из перенаправления в оболочке) или каналом (из оболочки, соединяющей выходные данные одной служебной программы с входными данными следующей). Это также может быть сокет или любой другой тип устройства.

TTY/PTY

На платформах, отличных от Windows, устройства TTY и PTY представляют собой либо истинное физическое устройство, либо созданное программными средствами псевдоустройство, которые являются тем же понятием, что и сеанс консоли Windows: канал, в котором обмен данными между клиентским приложением командной строки и приложением промежуточного узла сервера или физическим устройством клавиатуры или дисплея может обмениваться текстовой информацией.

Клиенты и серверы

В этом пространстве мы имеем в виду «клиенты» как приложения, выполняющие обработку информации и выполнение команд. Серверные приложения — это приложения, которые отвечают за пользовательский интерфейс и являются рабочими возможностями для преобразования входных и выходных данных в стандартные формы от имени клиентов.

Подсистема консоли

Это универсальный термин, представляющий все модули, влияющие на операции консоли и командной строки. В частности, он относится к флагу, который является частью заголовка переносимого исполняемого файла, который указывает, является ли начальное приложение либо приложением командной строки или консольным приложением (и должно иметь стандартные дескрипторы для запуска) или приложением Windows (и не требуется).

К этой группе относятся узел консоли, клиентские приложения командной строки, драйвер консоли, поверхность API консоли, инфраструктура псевдоконсолей, терминалы, таблицы свойств конфигурации, механизмы и заглушки в загрузчике процессов, а также все служебные программы, связанные с работой этих форм приложений.

Узел консоли

Узел консоли Windows или conhost.exe — это как серверное приложение для всех ИНТЕРФЕЙСов API консоли Windows, так и классический пользовательский интерфейс Windows для работы с приложениями командной строки. Все содержимое этого двоичного файла, как сервера API, так и пользовательского интерфейса, исторически принадлежало Windows csrss.exe , что является критически важным системным процессом, и было разорвано в целях безопасности и изоляции. В дальнейшем conhost.exe будет по-прежнему отвечать за обслуживание вызовов API и перевод, но компоненты пользовательского интерфейса предназначены для делегирования через псевдоконсоль терминалу.

Псевдоконсоль

Это имитация Windows псевдотерминала или «PTY» с других платформ. Он пытается соответствовать общей философии интерфейса PTYs, предоставляя простой двунаправленный канал обмена данными на основе текста, но дополняет его в Windows большим уровнем совместимости, чтобы преобразовать широкий спектр приложений Windows, написанных до этого изменения философии проектирования, с классической поверхности API консоли в простую форму обмена текстовыми каналами. Терминалы могут использовать псевдоконсоль, чтобы отобрать права владения элементами пользовательского интерфейса от узла консоли , conhost.exe при этом оставить его в качестве ответственного за обслуживание, перевод и совместимость API.

Терминал

Терминал — это пользовательский интерфейс и модуль взаимодействия для приложения командной строки. Сегодня это программное представление того, что раньше было физическим устройством с монитором дисплея, клавиатурой и двунаправленным последовательным каналом связи. Он отвечает за сбор входных данных от пользователя в различных формах, их перевод и кодирование их и любых специальных сведений о команде в один текстовый поток и отправку в PTY для передачи по каналу STDIN клиентского приложения командной строки. Он также отвечает за получение обратной информации через PTY, которая поступила из канала клиентского STDOUT приложения, декодирование любой специальной информации в полезных данных, выкладывание всего текста и дополнительных команд, а также представление их конечным пользователям в графическом виде.

Консолей

Консоль — это приложение, которое предоставляет службы ввода-вывода для приложений в символьном режиме.

Консоль состоит из входного буфера и одного или нескольких буферов экрана. Входной буфер содержит очередь входных записей, каждая из которых содержит сведения о входном событии. Входная очередь всегда включает события нажатия клавиши и нажатия клавиши. Сюда также могут входить события мыши (движения указателя, нажатия и отпускания кнопок), а также события, во время которых действия пользователя влияют на размер активного буфера экрана. Буфер экрана — это двумерный массив символов и данных о цвете для вывода в окне консоли. Консоль может совместно использовать любое количество процессов.

Более широкое представление о консолях и их связи с терминалами и клиентскими приложениями командной строки можно найти в стратегии развития экосистемы.

  • Создание консоли
  • Подключение к консоли
  • Закрытие консоли
  • Дескрипторы консоли
  • Входной буфер консоли
  • Буферы экрана консоли
  • Размер буфера окна и экрана
  • Выбор консоли
  • Прокрутка буфера экрана

При подготовке материала использовались источники:
https://learn.microsoft.com/en-us/windows/console/consoles?source=recommendations
https://learn.microsoft.com/ru-ru/windows/console/definitions
https://learn.microsoft.com/ru-ru/windows/console/consoles

Оцените статью