4/09/2016

[PC] Bash on Windowsが本当に出て困惑

Bash on Ubuntu on WindowsがPreview Releaseされたそうですね。正直なところ何故?と困惑を否めませんでしたし、意義とか諸々の側面を鑑みるに本当に出るのかと疑わざるを得なかったわけですが、本当に出て驚きました。今でもあまり実感が湧きませんが、出たからには当然ながらそれなりに興味の対象にはなるわけです。皆も、と言ってもその方面限定ですが、色々と盛り上がっているようですね。

もっとも現時点では名前の通りシェルのみ、すなわちコマンドライン上のアプリが動くだけで、XはじめGUI周り一般は当然対象外だし、Previewテスターの報告を見る限り安定性は無論皆無、パフォーマンスも、桁違いのオーバーヘッドのかかるCygwinと比べても若干マシ程度とあって、現時点では大半の用途で丸ごと仮想化した方が良いだろう実質的には無意味なものらしいんですけれども。わざわざカーネルに専用のサブセットを用意までした割には如何にも中途半端に見えます。

それでも、完全に行き詰まって久しいCygwinや混沌としたmsys2(MinGW)の代替足りうる新たな希望として、一応は歓迎したいと思います。個人的にはメンテ終了してしまったgtk for windowsの代替が欲しかったんですけれども、この路線が継続されれば、将来的には当然その辺も復活する目もあるでしょうし。無論パフォーマンスもまだまだ改善の余地はあるでしょう。でも現時点では近い内に使い物になりそうな感じがしないんですよね。意義の薄さからすると、あっさり消える可能性の方が遙かに高そうですけれども、続いてくれるかなあ。。。と疑問が先に立つのも致し方無いところでしょうか。

将来的にはLinuxベースのプログラムがWindowsで動く、って言っても、そもそもLinuxのアプリを必要とするWindowsユーザなんて全体からしたらほぼ皆無に等しい位でしょうし。その割には大げさというか、開発やらにリソースが掛かり過ぎているような。。。Microsoftは人余りなんでしょうか?とか。主に開発環境周りでのOSX対抗って意図はわかるんですけれども、周知の通り元々Unix(BSD)ベースのOSXに、その方面でしかも後付で対抗しようとしても無理があるんじゃないかとも。開発向けというならなおさらパフォーマンスが十分に上がらないと使いようがないわけですしね。法人のLinuxサーバー需要取り込みとか連携とかの思惑もあるとしても、性能の期待値やら安定性面やら、諸々で話にならないでしょうし。うーん。まあ、とりあえず安定するまでは静観するとしますか。Ubuntu(Linux)ユーザとしては歓迎すべき話なのは確かなわけで。糠喜びしないよう、眉唾しつつ。

しかし、Bash上で動くsedとかpythonとかのLinuxネイティブアプリ類をUbuntuアプリと呼ぶのは違和感が半端ないですね。Linuxコマンドラインアプリだろうと。

Bash on Ubuntu on Windows

<追記:各所で行われたベンチマークについて>

リリースされてからしばらく経って、不安定性に悩まされつつもテスターの方々が頑張って詳細なベンチマークを行ってくれたようです。

The Performance Of Ubuntu Software Running On Windows 10 With The New Linux Subsystem

その結果を見る限り、CPU内部で完結する計算処理等については高々数十パーセント程度のオーバーヘッドで済んでいて、中々に優秀なようですね。と言ってもこの辺はOSよりもx86CPUの命令セットに依存する話なので、元々バイナリの形式はあまり関係しない部分ですから当然と言えば当然の結果とも言えるでしょう。

問題はファイルシステムのI/O周り。ここは文字通り桁違いに遅いとの結果が出ています。一番OSに依存する部分ですから仕方ないと言えば仕方ないのでしょうけれど、大半のアプリでのボトルネックもここにありますから、そこでのこれはやはり厳しいと言わざるを得ません。GUI等を除外してシェルに限定した理由もおそらくはこの辺のI/O周りの困難さにあるのではないでしょうか。無論実装を頑張れば解決出来なくもないんでしょうけれど、それはもう殆ど仮想化と変わらないような。うーん。