Bash on Windows!
Microsoftが開催する開発者むけのイベントで、Linuxなどで標準的に利用されているシェル、BashがWindowsで動作することができるようになるアップデートが公開されることを明らかにしました。
オープンソースのLinux開発を行っているUbuntuと協力し、WindowsのコマンドラインからBashを立ち上げ、Ubuntu Linuxと同じコマンドで同じ操作ができるようになります。
aptなどを利用してオープンソースのバイナリパッケージを取得したり、Bashでemacsやvimなどのメジャーなものを含むUbuntu Linuxで動作する様々なツールを利用することができます。
現在でもgccをapt-getで取得し、ソースコードをコンパイルしてBashから呼び出すことが可能になっているようです。
これは仮想マシンとは違い、Linux側からのOS機能の呼び出しをWindowsのOS機能呼び出しに変換しているということで、WindowsのサブシステムとしてLinuxが動いているということになります。
以前OpenSSHがWindows PowerShellでもサポートされる旨の発表があったのですが、一歩前へ進んだWindowsとLinuxの融合と言えるでしょう。
https://www.sys-cube.co.jp/blog/5154.html
Bash on Windowsの持つ意味
これはサーバーやクラウドの設定に最高のパフォーマンスを発揮します。
Linuxと同じ操作環境やツールを使ってWindowsをリモート操作できるからです。
Windowsからクラウド上のLinuxにSSHを使って安全にログインし、そのLinuxから同じクラウド上にあるWindowsサーバーにシームレスにログインしてリモート操作することができる。
Linuxサーバと同じ設定をWindowsにも境目なく設定することができることは大変な効率化になります。
LinuxはWindowsと比べても非常に先進的かつ堅牢な部分があり、Windowsはそれに互換性を持たない方針でした。
無償のOSである以上にその部分がネックになって、多くのWebサーバーではLinuxが大きなシェアを持っています。
その垣根がここまで大胆に取り払われることになるとは多くの方にとって想定外な出来事でしょう。
最近のMicrosoftはMS SQL ServerのLinux対応、
https://www.sys-cube.co.jp/blog/8556.html
Visual Studioのマルチプラットフォーム対応、.NETコアのマルチプラットフォーム対応など、非常にアグレッシブな動きを続けています。
従来の保守的なWindowsのためのWindowsの企業という枠組みを捨ててしまえば、様々なプラットフォームで良質なサービスとサポートを行える強力な企業としての存在感が様々な分野で出てきます。
ほとんどのWindowsユーザーにとっては小さな機能追加と思いますが、Windowsの方向性としては大きな変化だと感じています。
Eat own dog foodの精神
Microsoftの社内で、かつてEat own dog foodという言葉が社訓のように用いられていると聞いていました。
自分のドッグフードを食べろ、といういう直訳になるのですが、自分で作ったドッグフードでも自分で一度食べてから商品にしなさいという大まかな意味です。
このところのMicrosoftはユーザーの意向をあまり汲まない方向での製品づくりが主力のWindowsでも目立っていました。
憶測ですがMicrosoft社内でも、Linuxサーバ利用やWebプログラミングをするときはLinuxやMacで、簡単なWebサーバであればLinuxのサーバを利用して、などと自社製品Windowsを使わずに行うことがエンジニアの間で増えていたのかもしれません。
Windowsの開発元としてWindowsに無くて不便な部分を改善しようという思考を持つことは、再びEat own dog foodの精神を取り戻しているのではないかと考えるところです。