
Windows開発者・Linuxユーザーにとって嬉しいニュースが発表されました。Microsoftが提供する「Windows Subsystem for Linux(WSL)」がついに完全オープンソース化です!エンジニアコミュニティにも大きな可能性のある発表です。
WSLとは?LinuxとWindowsのいいとこ取りを実現する技術
WSLは、Windows上でLinuxのカーネルをネイティブに動作させ、UbuntuやDebianといったメジャーなLinuxディストリビューションをそのまま利用できる環境を提供しています。WindowsのGUIとLinuxの強力なコマンドラインツールや開発環境をシームレスに使用できる点が大きな特徴です。Macでの開発のほうがかなり進んでいましたが、WSLが出たことで同様につかえるようになったなと当時思ったものです🤩
WSLはWSL1(エミュレーション層)とWSL2(フルLinuxカーネル仮想マシン)がありますが、特にWSL2はフルLinuxカーネルを搭載しているため、ファイルシステム性能やDockerのようなコンテナ技術のサポートが格段に向上しました。WindowsのHOMEエディションでDockerが簡単に使用できる様になったことも、かなり嬉しかった記憶があります🤩🤩🤩
オープンソース化の衝撃!
今回MicrosoftがWSLのソースコードをGitHubに公開したことで以下のようなことが起こりそうです。
ソースコードの公開で透明性が飛躍的にアップ! WSLのコア部分だけでなく、WSL2のLinuxカーネルのソースコードも含まれているため、「中身はブラックボックス」という状態から脱却。トラブルシューティング、パフォーマンスチューニングが格段アップする?
開発者コミュニティが活発化! バグ修正や新機能追加、独自機能の拡張の提案できるようになります。改良のサイクルも早まり、ユーザーニーズに合った機能が増えていく期待大です。
自由なカスタマイズと拡張が実現 自分の使いたいLinuxカーネルモジュールの追加やWSLの動作修正など、カスタマイズが可能になるでしょう。対応するディストリビューションも増えるかも。
Dockerやコンテナ環境のパフォーマンスの向上
WSL2のLinuxカーネルはコンテナ技術との親和性がありますが、オープンソース化でさらなるチューニングや機能アップも期待できます。
対象になっているコード
公開されているものは以下のものになります。
| 項目 | 説明 | ファイル名・実行可能ファイル |
|---|---|---|
| WSLと対話するためのエントリポイント | コマンドライン実行可能ファイル | wsl.exe, wslconfig.exe, wslg.exe |
| WSLサービス | WSL VMの起動、ディストロの起動、ファイルアクセス共有のマウントなどを行うWSLサービス | wslservice.exe |
| Linux init およびデーモンプロセス | WSL機能を提供するためにLinuxで実行されるバイナリ。initによる起動、gnsによるネットワーク、localhostによるポート転送など | wslservice.exe |
| plan9サーバー | WSLのplan9サーバー実装によるWindowsへのLinuxファイル共有 | plan9 |
具体的にどうなってほしい?
私も実はWindowsでの開発はWSLしか使用していない状態です。オープンソース化によって、クロスプラットフォーム開発が進むといいなあと想像しています。また、WSLのディストリビューションの管理環境がCLIベースなので、そのあたりがGUI化され使用が簡単になるといいなと思っています。イメージのバックアップとリストアが面倒なんですよね。
まとめ
今回のWSLのオープンソース化は、WindowsとLinuxの垣根を取り払い、両者の強みを最大限に活せる大きな判断なのかなと思います。WSLが自分たちの手で育てていけるプロジェクトに変わった喜ばしいニュースでした。
参考