今回は、前回紹介したWin32相互運用性を実現している仕組みを見ていくことにしよう。驚いたことにこの機能は、Windows Subsystem for Linux(WSL)内にインストールされたLinuxをほとんど変更することなく実現されている。 本文に入る前に1つ訂正させていただきたい。前回の最後でbash.exeがパイプを受け付けないとしていたが、現在のインサイダープレビューでは、正しく動作する。つまり、 dir | bash -c "grep test" として、Windows側のdirコマンドの出力をLinuxのgrepで処理することができる。 Win32アプリかLinuxの実行ファイルかを区別する仕組み まず、bash側でWin32アプリを判別して起動する仕組みが必要になる。しかし、WSL内では標準のUbuntuがそのまま動作しており、/bin/bashを改良するわけにはいかない
![Windows Subsystem for LinuxにおけるWin32相互運用性のメカニズム](https://cdn-ak-scissors.b.st-hatena.com/image/square/17d82fcc7799574bac06462f7da9e8ec41798978/height=288;version=1;width=512/https%3A%2F%2Fascii.jp%2Fimg%2F2017%2F02%2F05%2F1611555%2Fl%2F041af18e4b85b9f2.jpg%3F20200122)