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がウィンドウとして接続していると考えられる。
この連載の記事
-
第428回
PC
Google/Bingで使える検索オプション -
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した -
第425回
PC
無料で使えるExcelにWord、Microsoft 365のウェブ版を調べた -
第424回
PC
Windowsの基本機能であるクリップボードについてあらためて整理 -
第423回
PC
PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? -
第422回
PC
Windows 11の目玉機能が早くも終了、Windows Subsystem for Android(WSA)を振り返る -
第421回
PC
進化しているPowerToys LANで接続したマシンでキーボード/マウス共有機能などが追加 -
第420回
PC
Windowsプレビュー版に搭載されたsudoを試す -
第419回
PC
Windows Insider Previewが変わって、今秋登場のWindows 11 Ver.24H2の新機能が見えてきた? -
第418回
PC
Windows 11のスマートフォン連携は新機能が追加されるなど、いまだ進化している - この連載の一覧へ