Windows 11では、Windows Terminalを標準コンソールにすることが可能になった。これにより、直接コマンドプロンプトやWindows PowerShellをスタートメニューから起動してもWindows Terminalが開くようになる。
そもそも標準コンソールとはなんぞや?
Windowsのアプリケーションには大きく分けて2つある。1つは、自分でウィンドウを開いて表示するもの。GUIアプリケーションなどとも言う。もう1つは、自分ではウィンドウを開かず、コンソールウィンドウの中で動作するもの。コンソールウィンドウという汎用のウィンドウを開くWindowsアプリケーションと言えなくもないが、一般的には、コマンドやコンソールアプリケーションなどと呼んで、GUIアプリケーションと区別する。
このコンソールアプリケーションを起動するとコンソールウィンドウが開く。これはWindows 10/11では「conhost.exe」というプログラムが行なう。コンソールアプリケーションは、コンソールAPIを通じてコンソールに文字を表示できる。このAPIを処理するのがconhost.exeだ。このあたりについては過去の記事を参照されたい(「Windows 10までほとんど手が入れられてこなかったWindowsのコンソール機能」)。
ただし、Windows 10 Ver.1809(RS5、Windows 10 October 2018 Update)からは、conhost.exeに「ConPTY」という機能が搭載された。これは外部のターミナルエミュレータープログラムを接続するためのインターフェースだ。
ConPTYを使うことで、conhost.exeが表示する「コンソールウィンドウ」の代わりにWindows Terminalなど外部のコンソールプログラムでの表示が可能になる。なぜ、この機能がconhost.exeにあるのかというと従来のコンソールプログラム(たとえばcmd.exeやPowerShellなど)はWindowsのコンソールAPIを使っているため、直接コンソールプログラムを起動したときに自動的にconhost.exeと接続されるからだ(「Windows 10に“まとも”に使えるコンソール「Windows Terminal」が登場する」)。
Windows 11の標準コンソールウィンドウの切り替え機能はConPTYを使い、ウィンドウを表示するプログラムを選択できるようにしているのだと考えられる。Windows 11で、標準コンソールをWindows Terminalに切り替えた場合、cmd.exeからconhost.exeが起動するのは同じだが、同時にWindowsTerminal.exeが起動する。
Windows Terminalは、Windows 10のときに開発されたため、conhost.exe/ConPTYを使わずにcmd.exeなどのコンソールアプリケーションを表示する機能を持っている。というのも、Windows Terminalに含まれる「OpenConsole.exe」が、コンソールAPI処理しているためだ。
Windows Terminal内でプロファイルからcmd.exeを起動するとconhost.exeは起動せず、コンソールAPIは、OpenConsole.exeが処理するようになる。これは、Windows 10でも11でも同じ
この仕組みは、Windows 11でも同じ。OpenConsole.exeはWindows Terminalの本体とでも言うべきプログラムで、UWPアプリであるWindowsTerminal.exeはユーザーインターフェース側だけを受け持ち、実際の処理はOpenConsole.exe側で行なっている。なお、WSLの場合、実際のLinux側プロセスは仮想マシン内になるため、wsl.exeからwslhost.exeが起動され、ここからconhost.exeが起動する仕組みになっているようだ。おそらくWindows 10でも、WSLの場合にはConPTYを使って、Windows Terminalがウィンドウとして接続していると考えられる。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ














