Build 14986の変更点
2016年12月7日にリリースされた「Build 14986」の「WSL」に関する変更点です。リリースノート
変更点の詳細は、リリースノートを参照してください。機能の追加や改善
「Build 14986」で行われた機能の追加や改善です。リリースノートに記述されていない機能の改善も行われています。
1.カーネルバージョンの変更
「WSL」がソフトウェアに返す「Linux Kernel」のバージョンが、「4.4.0-43」に変更されました。このバージョンは「Ubuntu 16.04」のメジャーバージョンに合わせたバージョンになります。
2.inotify_add_watchのサポート改善
「inotify_add_watch」で「IN_UNMOUNT | IN_Q_OVERFLOW | IN_IGNORED | IN_ISDIR」フラグがサポートされました。これにより改善する不具合は、以下を参照してください。
3.システムコールのサポート改善
以下のシステムコールがサポートされました。- timer_create
- timer_delete
- timer_gettime
- timer_settime
これにより、GHCが利用可能になります。
また改善する不具合は、以下を参照してください。
不具合の修正
「Build 14986」で行われた機能の追加や改善です。リリースノートに記述されていない不具合の修正も行われています。
1.バグチェックの修正
NetlinkとPtyのIOCTLのバグチェックが修正されました。2.標準入力にnulが指定された時にbash.exeがエラーになる問題を修正
以下のように、標準入力にnulが指定された時にbash.exeがエラーになる問題が修正されました。
c:\empty>bash -c "touch blah" < nul:
Erreur : 0x80070006
Press any key to continue...
Erreur : 0x80070006
Press any key to continue...
これにより改善する不具合は、以下を参照してください。
3.スレッドIDが正常に報告されるように修正
「procfs」からスレッドIDが正常に読み込めるようになりました。これにより改善する不具合は、以下を参照してください。
4.pingの不具合修正
「ping」が「0.000ms」で返ってくる問題が修正されました。これにより改善する不具合は、以下を参照してください。
5.エラーコードの修正
大量のファイルを開いた時に、正しいエラーコードを返すように修正されました。6.Netlinkに関する不具合の修正
ネットワークインターフェースのアドレスが、Teredoインターフェースのように32バイトだった場合、Netlinkのネットワークインターフェースデータの要求がEINVALエラーになってしまう不具合が修正されました。注意事項
「WSL」が32バイトのアドレスを返すとLinuxの「ip」ユーティリティーがクラッシュする不具合があります。この不具合はLinuxの「ip」の不具合であり、「WSL」の不具合ではありません。
「ip」は、32バイトのアドレスを処理するのに十分なバッファーを確保していないため、この現象が発生します。
システムコール
「Build 14986」で行われたシステムコールに関する変更です。以下のシステムコールが新たにサポートされました。
- timer_create
- timer_delete
- timer_gettime
- timer_settime
すべてのパラメーターとの組み合わせが現時点でサポートされているとは限りません。
「WSL」がサポートしているSyscallの一覧は、以下を参考にしてください。
Linux Test Projectのテスト結果
「Linux Test Project(LTP)」は、「Linux Kernel」やカーネルに関連した機能の信頼性、頑健性、安定性のテストを行うテストスイートを開発しているプロジェクトです。「WSL」は「Linux Kernel」相当の機能を提供するソフトウェアであり、「Linux Test Project」で「WSL」のテストを行った結果が公開されています。
- テストに合格した項目数:669(前回:664)
- テストに失敗した項目数:258(前回:263)