このドキュメントでは、このスペース内の特定の単語と語句の定義を提供し、このドキュメント セット全体で参照として使用します。
コマンド ライン アプリケーション
コマンド ライン アプリケーション(コンソール アプリケーション)、またはコンソール サブシステムの "クライアント" と呼ばれることもあります。これは、主にテキストまたは文字情報のストリームで動作するプログラムです。 一般に、独自のユーザー インターフェイス要素は含まず、出力/表示ロールと入力/対話ロールの両方をホスティング アプリケーションに委任します。 コマンド ライン アプリケーションは、ユーザーのキーボード入力を表す標準入力 STDIN
ハンドルでテキストのストリームを受け取り、その情報を処理した後、ユーザーのモニターに表示するために標準出力 STDOUT
上のテキストストリームで応答します。 もちろん、これは追加の入力デバイスやリモート シナリオで時間の経過と同時に進化してきましたが、同じ基本理念は変わりません。コマンドライン クライアントはテキストを操作し、他のユーザーが表示/入力を管理します。
標準ハンドル
標準ハンドルは、起動時のプロセス領域の一部として導入された、シリーズ、 STDIN
、 STDOUT
、および STDERR
です。 これらは、途中で情報を受け入れて、途中で送り返す場所を表します (エラーを報告する特別な場所を含む)。 コマンド ライン アプリケーションの場合、これらはアプリケーションの起動時に常に存在する必要があります。 これらは、親から自動的に継承されるか、親によって明示的に設定されるか、どちらも指定または許可されていない場合はオペレーティング システムによって自動的に作成されます。 従来の Windows アプリケーションの場合、起動時に空白になる場合があります。 ただし、親から暗黙的または明示的に継承することも、アプリケーション自体によって実行時に割り当て、アタッチ、解放することもできます。
標準ハンドルは、特定の種類の接続デバイスを意味するものではありません。 ただし、コマンド ライン アプリケーションの場合、デバイスは最も一般的にコンソール デバイス、ファイル (シェル内のリダイレクトから)、またはパイプ (1 つのユーティリティの出力を次のユーティリティの入力に接続するシェルから) です。 ソケットまたはその他の種類のデバイスでもかまいません。
TTY/PTY
Windows 以外のプラットフォームでは、TTY デバイスと PTY デバイスはそれぞれ、Windows コンソール セッションと同じ概念である、真の物理デバイスまたはソフトウェアで作成された擬似デバイスを表します。コマンド ライン クライアント アプリケーションとサーバー ホストの対話機能アプリケーションまたは物理キーボード/ディスプレイ デバイス間の通信でテキスト ベースの情報を交換できるチャネルです。
クライアントとサーバー
この領域では、"クライアント" を、情報の処理とコマンドの実行の処理を行うアプリケーションと呼びます。 "サーバー" アプリケーションは、ユーザー インターフェイスを担当し、クライアントに代わって入力と出力を標準フォームに変換するワーカーです。
コンソール サブシステム
これは、コンソール操作とコマンド ライン操作に影響を与えるすべてのモジュールを表すキャッチオール用語です。 具体的には、移植可能な実行可能ファイル ヘッダーの一部であるフラグを参照します。このフラグは、起動するアプリケーションがコマンド ライン/コンソール アプリケーション (および開始する標準ハンドルが必要) か、Windows アプリケーション (および必要ありません) かを指定します。
コンソール ホスト、コマンド ライン クライアント アプリケーション、コンソール ドライバー、コンソール API サーフェス、擬似コンソール インフラストラクチャ、ターミナル、構成プロパティ シート、プロセス ローダー内のメカニズムとスタブ、およびこれらの形式のアプリケーションの動作に関連するすべてのユーティリティは、このグループに属すると見なされます。
コンソール ホスト
Windows コンソール ホスト ( conhost.exe
) は、すべての Windows コンソール API のサーバー アプリケーションと、コマンドライン アプリケーションを操作するための従来の Windows ユーザー インターフェイスの両方です。 このバイナリの完全な内容 (API サーバーと UI の両方) は、これまで重要なシステム プロセスである Windows csrss.exe
に属し、セキュリティと分離の目的で分岐していました。 今後も、 conhost.exe
は引き続き API 呼び出しのサービスと翻訳を担当しますが、ユーザー インターフェイス コンポーネントは、疑似コンソールを介してターミナルに委任することを目的としています。
Pseudoconsole
これは、他のプラットフォームからの擬似終端または "PTY" の Windows シミュレーションです。 PTYs の一般的なインターフェイス理念に一致するように試み、テキスト ベースの通信の単純な双方向チャネルを提供しますが、この設計理念の変更の前に記述された Windows アプリケーションの幅を従来のコンソール API サーフェスから単純なテキスト チャネル通信フォームに変換するために、大きな互換性レイヤーで Windows 上でそれを補完します。 ターミナルは、擬似コンソールを使用して、ユーザー インターフェイス要素の所有権をコンソール ホストから取り除き、 conhost.exe
、API のサービス、翻訳、互換性の作業を担当したままにすることができます。
ターミナル
ターミナルは、コマンド ライン アプリケーションのユーザー インターフェイスと対話モジュールです。 現在、かつてはディスプレイ、キーボード、双方向シリアル通信チャネルを備えた物理デバイスだったものが、ソフトウェアとして表現されています。 ユーザーからの入力をさまざまな形式で収集し、それを変換して特殊なコマンド情報を 1 つのテキスト ストリームにエンコードし、コマンド ライン クライアント アプリケーションの STDIN
チャネルに送信するために PTY に送信します。 また、クライアント アプリケーションの STDOUT
チャネルから取得した PTY を介して情報を受信し、ペイロード内の特別な情報をデコードし、すべてのテキストと追加のコマンドをレイアウトし、それをエンド ユーザーにグラフィカルに表示する役割も担います。