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 11でも同じ。OpenConsole.exeはWindows Terminalの本体とでも言うべきプログラムで、UWPアプリであるWindowsTerminal.exeはユーザーインターフェース側だけを受け持ち、実際の処理はOpenConsole.exe側で行なっている。なお、WSLの場合、実際のLinux側プロセスは仮想マシン内になるため、wsl.exeからwslhost.exeが起動され、ここからconhost.exeが起動する仕組みになっているようだ。おそらくWindows 10でも、WSLの場合にはConPTYを使って、Windows Terminalがウィンドウとして接続していると考えられる。
この連載の記事
-
第436回
PC
Copilot+PCとともにWindowsのデバイス間連携に大きな変化!? Project ROMEの逆襲? -
第435回
PC
Windows Terminal Preview v1.21では、前回終了時のタブとその表示内容を復元できるように -
第434回
PC
AIの急速な導入がWindowsの予定を変えた!? Windows 12がすぐには出ない可能性 -
第433回
PC
Windows 11の2つのウィジェットを調べる -
第432回
PC
ウェブブラウザが切り開いたWindowsでのタブアプリケーション -
第431回
PC
Windows上でユニコードを「見る」方法 -
第430回
PC
WindowsからWordPadが廃止! RTF(Rich Text Format)はどうなる? -
第429回
PC
Windows Updateの「利用可能になったらすぐに最新の更新プログラムを入手する」はオンにした方がいいか? -
第428回
PC
Google/Bingで使える検索オプション -
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した - この連載の一覧へ