Build 14936の変更点
2016年9月28日にリリースされた「Build 14936」の「WSL」に関する変更点です。なんと言っても目玉は、「Ubuntu 16.04」が利用可能になったことです。
「Ubuntu on Windows」新規インストール時に「Ubuntu 16.04」がインストールされるようになります。
また現在「Ubuntu 14.04」を利用している人は、「Ubuntu」と同じ方法で「Ubuntu 16.04」へアップグレードすることも出来ます。
リリースノート
変更点の詳細は、リリースノートを参照してください。機能の追加や改善
「Build 14936」で行われた機能の追加や改善です。リリースノートに記述されていない機能の改善も行われています。
1.Ubuntu 16.04対応
「WSL」は今まで「Ubuntu 14.04」をインストールしていましたが、これからは「Ubuntu 16.04」がインストールされるようになります。この変更は、「Insider Preview」を利用しており、かつ、「Ubuntu on Windows」新規インストール時に適用されます。
新規インストール時とは、「lxrun.exe /install」を実行した時や、「Ubuntu on Windows」がインストールされていない状態で初めて「bash.exe」を初めて実行した時のことです。
すでに「Ubuntu 14.04」がインストールされている環境では、自動的に「Ubuntu 16.04」へのアップグレードが行われることはありません。
Ubuntu 14.04からUbuntu 16.04へアップグレードするには
「Ubuntu 14.04」から「Ubuntu 16.04」へアップグレードするには、以下のコマンドを実行します。
sudo do-release-upgrade
これは「Ubuntu」の作法と同じです。
アップグレードに関する注意事項は「Ubuntu on Windows」でも同じですので、以下を参考にしてください。
リンク先で紹介している「Ubuntu 16.04」のリリースノートにも目を通しておきましょう。
アップグレードの具体的な方法については、以下を参考にしてください。
2.chrootシステムコールの実装
「chroot」システムコールが実装されました。3.inotifyの改善
「DrvFs(Windowsのボリュームのこと)」上でWindowsアプリから行われたファイルシステムの変更を、「inotify」で検出できるようになりました。4.IPv6へのソケットバインディング
「IPV6_V6ONLY」をサポートしました。これにより改善する問題は、以下を参照してください。
- Nginx not start
- Cannot create SSH Tunnel
- PHP and nginx is not working
- sockets: bind to non-local address succeeds
- Error binding local socket for ssh port forward; seems IPv6 related
- On local server start error says the port is already in use
- IPV6_V6ONLY socket option should fail if the socket is bound
- qpidd unable to bind any port
5.WNOWAITフラグのサポート
WNOWAITフラグがサポートされました。これにより改善する問題は、以下を参照してください。
6.IPソケットオプションのサポート
IPソケットオプションの「IP_HDRINCL」と「IP_TTL」をサポートしました。7.epollの/dev/nullサポート
「epoll」が「/dev/null」をサポートしました。8.Bash.exeがリダイレクト先にファイルを指定可能に
「Bash.exe -c」にて、リダイレクト先にファイルを指定できるようになりました。不具合の修正
「Build 14936」で行われた不具合の修正です。リリースノートに記述されていない不具合の修正も行われています。
1.0バイトのread時にハングする問題の修正
0バイトのread時にハングする問題が修正されました。2.ファイル名の扱いに関する修正
tarファイルにて、NULL終端を含まないファイル名とファイル名のプレフィックスを正しく扱うように修正されました。3./dev/alarmの修正
「/dev/alarm」のタイムソースに関する問題を修正しました。システムコール
「Build 14936」で行われたシステムコールに関する変更です。以下のシステムコールが新たにサポートされました。
- chroot
システムコールのすべてのパラメーターとの組み合わせがサポートされているとは限りません。
「WSL」がサポートしているSyscallの一覧は、以下を参考にしてください。
既知の問題
「Build 14936」ですでに明らかになっている不具合や問題です。1.ソケットの実装に関する問題
「WSL」はソケットの実装に関する問題をいくつか抱えています。バグチェックも「ATTEMPTED EXECUTE OF NOEXECUTE MEMORY」エラーが発生しクラッシュします。
この問題の最も共通的な兆候は、SSH使用時にクラッシュすることです。
根本的な原因は内部的なビルドで修正されており、「Insider Preview」利用者に早々に修正が提供される予定です。
Linux Test Projectのテスト結果
「Linux Test Project(LTP)」は、「Linux Kernel」やカーネルに関連した機能の信頼性、頑健性、安定性のテストを行うテストスイートを開発しているプロジェクトです。「WSL」は「Linux Kernel」相当の機能を提供するソフトウェアであり、「Linux Test Project」で「WSL」のテストを行った結果が公開されています。
- テストに合格した項目数:664(前回:651)
- テストに失敗した項目数:264(前回:258)