Консоль Windows

редактировать
Консоль Windows
Консоль Windows с cmd.exe в Windows 8 Консоль Windows с cmd.exe в Windows 8
Другие именаКонсоль Win32
Разработчик (и) Microsoft
Репозиторий github.com / microsoft / terminal / tree / master / src / host
Написано наC ++
Операционная система Microsoft Windows
Платформа IA-32, x86-64, ARM64
Тип Эмулятор терминала
Лицензия Лицензия MIT
Веб-сайтdocs.microsoft.com / en-us / windows / console /

Консоль Windows - это инфраструктура для консольных приложений в Microsoft Windows. Экземпляр консоли Windows имеет экранный буфер и входной буфер . Он позволяет консольным приложениям запускаться внутри окна или в аппаратном текстовом режиме (чтобы занимать весь экран). Пользователь может переключаться между ними, используя комбинацию клавиш Alt+ ↵ Enter. Текстовый режим недоступен в Windows Vista и более поздних версиях. Однако, начиная с Windows 10, доступен собственный полноэкранный режим.

Экземпляры консоли Windows обычно используются для приложений, которым не нужно отображать изображения, но которые могут использовать цвет. Примеры включают Windows PowerShell, Far Manager и Midnight Commander.

. В 2019 году инфраструктура консоли Windows была с открытым кодом в рамках Лицензия MIT, вместе с Windows Terminal.

Содержание

  • 1 Оконный и полноэкранный режимы
  • 2 Подробности
  • 3 Реализации
    • 3.1 Windows 9x
    • 3.2 Windows NT и Windows CE
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки

Оконные и полноэкранные режимы

Windows PowerShell в Windows Vista Midnight Commander с использованием символы рисования прямоугольником

В Windows консольное приложение может работать в двух режимах.

Один режим помещает текст в окно и использует рендеринг шрифта операционной системы. В этом режиме взаимодействие приложения с пользователем контролируется оконной системой. Это аналогично приложениям X Window System, например, xterm.

Второй - полноэкранный режим. В Windows XP и ранее полноэкранная консоль использует аппаратный текстовый режим и загружает растровый шрифт в видеоадаптер. Это аналог текстовой системной консоли. Этот ранний полноэкранный режим поддерживает только VGA-совместимые текстовые режимы, обеспечивая максимальное разрешение символов из 80 столбцов на 28 строк. Этот режим объявлен устаревшим в Windows Vista. Эту проблему можно было обойти, установив драйвер дисплея Windows XP; однако Windows 8 и более поздние версии не принимают их. Windows 10 снова имеет полноэкранный режим, но в этой реализации используется собственная подсистема рендеринга Windows вместо текстового режима. Он может иметь столько столбцов и строк, сколько помещается на экране.

Приложения могут переключаться между двумя режимами с помощью комбинации клавиш Alt+ ↵ Enter.

Подробности

Буфер ввода - это очередь, в которой хранятся события (от клавиатуры, мыши и т. Д.). Буфер вывода представляет собой прямоугольную сетку, в которой хранятся символы вместе с их атрибутами. Окно консоли может иметь несколько буферов вывода, только один из которых активен (т. Е. Отображается) в данный момент. Приложения могут программно взаимодействовать с консолью Windows через Windows API, который предоставляет как функции высокого уровня (например, ReadConsoleи WriteConsole), так и функции низкого уровня (например, ReadConsoleInputи WriteConsoleOutput).

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

Консольные приложения Windows отличаются от приложений MS-DOS, даже если в Windows (особенно в Windows 9x ), они могут выглядеть не иначе. Консольные приложения Windows имеют доступ ко всему Windows API и не работают в MS-DOS или совместимых операционных системах. Однако приложения DOS не могут получить доступ Windows API и может работать только в 32-битных версиях Windows с помощью виртуальной машины DOS (VDM).

Реализации

До Windows 95, встроенной поддержки консолей нет. Поскольку Windows 3.1 и более ранние версии представляют собой просто графический интерфейс для MS-DOS, большинство текстовых программ, которые выполнялись в более ранних версиях Windows, на самом деле были программами MS-DOS, работающими в окне. Чтобы упростить перенос приложений в Windows, ранние версии Visual C ++ поставляются с QuickWin, библиотекой, которая реализует базовые функции консоли внутри обычного окна. Вызывалась аналогичная библиотека для Borland C ++.

Windows 9x

Command.com, работающая в консоли Windows на Windows 95

Windows 9x, относительно слабая поддержка по сравнению с Windows NT, поскольку окно консоли запускается в системе виртуальная машина DOS, и поэтому ввод с клавиатуры в консольное приложение Win32 должен был быть направлен ему conagent.exe, запущенным на виртуальной машине DOS, которая также используется для реальных приложений DOS, перехватывая прерывание клавиатуры. Затем conagent.exeвызывает Vcond (который является VxD ). Vcond затем должен был передать ввод с клавиатуры в системную виртуальную машину, а затем, наконец, в консольное приложение Win32. Помимо производительности, еще одна проблема с этой реализацией заключается в том, что диски, локальные для виртуальной машины DOS, не видны консольному приложению Win32. Это может вызвать путаницу.

В Windows 9x экранный буфер отражает структуру текстового буфера VGA с двумя байтами на символьную ячейку: один байт для кода символа, один байт для атрибутов (символ должен быть в Набор символов OEM, атрибут с ярким фоном / без мигания). Это значительно ускоряет работу, если используется фактический текстовый режим VGA.

Windows NT и Windows CE

Подсистема Windows для Linux работает Bash на Windows 10 Cmd.exe работает на Windows CE 3.0

Традиционно подсистема времени выполнения клиент / сервер (CSRSS) отвечает за управление окнами консоли в операционных системах семейства Windows NT.. В Windows 7 CSRSS порождает по одному conhost.exeдля каждого окна консоли, чтобы управлять им. В Windows 8 и более поздних версиях консольные приложения напрямую порождают свои процессы conhost.exe. Это изменение влияет как на безопасность, так и на удобство использования. Хотя CSRSS работает в контексте безопасности с высокими привилегиями, каждый conhost.exeработает в том же контексте безопасности, что и консольное приложение. Кроме того, в Windows 7 это изменение позволило консольным окнам использовать функции темы Aero Glass.

В Windows NT и Windows CE экранный буфер использует четыре байта на символьную ячейку: два байта для кода символа, два байта для атрибутов. Затем символ кодируется в 16-битном подмножестве Unicode (UCS-2 ). Для обратной совместимости консольные API существуют в двух версиях: Unicode и non-Unicode. Версии API, не поддерживающие Unicode, могут использовать переключение кодовой страницы для расширения диапазона отображаемых символов (но только если для окна консоли используются шрифты TrueType, тем самым расширяя диапазон кодов имеется в наличии). Даже UTF-8 доступен как «кодовая страница 65001» (отображается только из подмножества UCS-2 полного Unicode).

Начиная с обновления Windows 10 за октябрь 2018 г., консоль Windows имеет полную поддержку Unicode.

См. Также

  • Портал бесплатного программного обеспечения с открытым исходным кодом

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-21 10:43:48
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте