kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。

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...

これにより改善する不具合は、以下を参照してください。


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)

テスト結果

「LTP」のテスト結果は、以下で参照できます。



関連記事一覧
オプション