Windows 10 Creators Update:Bash / WSLおよびWindowsコンソールの新機能

Windows 10 Anniversary Update(AU)がリリースされたとき、Linux用のWindows Subsystem(WSL)サブシステムはまだ完全ではなく、特にnode.js、Javaなどの一般的な開発ツールとの多くの非互換性に悩まされていました。



ただし、このエキサイティングな新機能を実際のユーザーの手に移すことが重要でした。そうすれば、ユーザー-あなた-正確にWSLが必要なもの、機能するもの、機能しないものなどを見つけることができます。



そして、コミュニティは反応しました!



したがって、LinuxおよびBashコンソール用のWindowsサブシステムのこの新しいリリースは、あなた自身とあなたのために作成されました!



WSLおよびコンソール開発チームを代表して、過去12か月以上でBash / WSLを試したすべての人、特にGitHubリポジトリで問題を文書化し、 ツイート、UserVoiceで提案に投票した人に心から感謝します、 StackOverflowAskUbuntuReddit 、およびコマンドライン ブログ、WSLチームブログなどで質問をしています



Windows 10 Creators Updateに付属するBash / WSLおよびWindowsコンソールの大幅な改善は、大いに感謝しています!



WSLの新機能



Windows 10 Creators Update(CU)の開発中に、WSL開発チームは何百もの修正と改善を実施しました。そのほとんどはWSLリリースノートに記載されていますCommand-Lineブログで、最も注目すべきコンソールとWSLの機能をいくつか取り上げました。 最も重要な機能と改善点の要約が役立つと思いました。



Windows 10 Creators UpdateのBash / WSLおよびコンソールの新機能は次のとおりです。



より多くの互換性



Win10 CUの主な目標は、 Linux System Call Interface(SCI)カーネルインターフェイスとのWSL互換性の深さと完全性を大幅に改善することでした。 システムコールの実装を拡張および改善することにより、ユーザーが実行する必要のあるツール、プラットフォーム、実行ツールなどの数を増やしました。



結果? Win10 CUでは、次のようなほとんどの一般的な開発ツールが期待どおりに機能します。





:皆さんの1人が先に進み、大胆不敵にWSLでX / GUIアプリケーションとデスクトップを実行できます。 WSLでX / GUIアプリケーション/デスクトップを明示的にサポートしていませんが、それらの起動をブロックしたり妨害したりすることはありません。 したがって、お気に入りのエディター、デスクトップ、ブラウザーなどを実行することができれば、それはすばらしいことです。 ただし、コンソールで必要なすべての開発ツールを実行できるように、コマンドラインの非常に高品質な作業を確保することに全力を注いでいることに留意してください。



Ubuntu 16.04のサポート



Win10 Anniversary UpdateにはUbuntu 14.04がサポートされていましたが、新しいWin10 CUアップデートでは、WSLがUbuntu 16.04をサポートするようになりました。 Win10 CUにインストールされたすべての新しいBashインスタンスは、Ubuntu 16.04をインストールします。



Ubuntuのどのバージョンが機能するかを知りたい場合は、WindowsコンソールのUbuntuのBashコンソールで次のコマンドを入力します。



$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.2 LTS Release: 16.04 Codename: xenial
      
      





重要な注意 :既存のUbuntu 14.04インスタンスは16.04に自動的に更新されません。 次の2つの方法のいずれかで、Ubuntu 16.04上のインスタンスを手動でアップグレードする必要があります



  1. 取り外しと交換(推奨)
  2. 一括アップグレード


取り外しと交換



現在Ubuntu 14.04インスタンスを実行している場合は、それを削除して、新しいUbuntu 16.04インスタンスに置き換えることをお勧めします。



警告: 次の手順は、既存のディストリビューションと、Linuxファイルシステムに保存したすべてのファイルを破壊します 。 したがって、インスタンスを削除および置換する前に、 保存するLinuxファイルを Windowsフォルダー(/ mnt / c / temp / wslbackup / ...)などにコピー/転送してください。



Ubuntuインスタンスをアンインストールして再インストールするには、Cmd / PowerShellコンソールから次のコマンドを実行します。



 C:\> lxrun /uninstall /full /y ... C:\> lxrun /install
      
      





lxrun /install



コマンドは、マシンにUbuntu 16.04の新しいコピーをダウンロードしてインストールします。



一括アップグレード



Ubuntuインスタンスの構成が特に複雑な場合は、ローカルでアップグレードできますが、結果は最適ではない場合があります。



インスタンスをインプレースでアップグレードする場合は、Ubuntuの指示に従って既存のインスタンスを更新します。



 $ sudo do-release-upgrade
      
      





Ifconfigおよびネットワーク接続リストのサポート



Win10 AUの最大の欠点の1つは、ネットワーク接続のリストがないことであり、ifconfig、gulp、npmなどのツールが正常に機能しませんでした。



これはWin10 CUバージョンで修正されたため、ifconfigを使用して接続を一覧表示し、利用可能なネットワークアダプターの構成を調べることができます。







ネットワークPingおよびICMPサポート



Win10 AUユーザーがよく遭遇する別の問題は、ネットワーク管理者が端末ネットワーク機器にpingできないことです。 これは、Win10 CUでも修正されました。







ファイル変更通知(INOTIFY)のサポート



別の求められている改善は、ファイルの変更の通知に登録するツールの機能でした。 これは、Web、Node.js、Ruby、Python、その他多くの開発者がよく使用する重要な機能です。



たとえば、node.js Webサイトで作業している場合、vim、Emacs、Sublime Text、VS Codeなどのソースを編集した後、保存するたびにサーバーに更新されたソースをダウンロードさせたい場合があります。すぐに表示されます。



今、あなたはそれをすることができます! WSLはinotifyをサポートします。これにより、アプリケーションはファイルシステムへの変更の通知を登録でき、プロジェクトの再構築やローカルWebサーバーの再起動などのアクションのトリガーになります。 これは、DrvFSとLxFsファイルシステムの両方で機能します。



これらのファイル変更通知がWindowsファイルシステムでサポートされるようになったことは重要です。 そのため、VSCode、Visual Studio、SublimeText、Notepad ++などのWindows GUIを備えたエディターを使用して、Windowsファイルシステムに保存されているプロジェクトのソースコードを編集し、同時にnode.jsが環境で機能する場合ローカルサイト発行用のBash / WSLを使用すると、通常、ソースファイルの変更直後にすべての変更が表示されます。







Windows互換性<-> Linux



WSLを作成する主な目的は、コマンドラインツールとLinux環境の隣でWindowsツールを実行するときの感覚の「ギャップ」を減らすことでした。 Windows 10 AUでWSLをリリースしたとき、LinuxとWindowsを並べて配置しましたが、依然として大きな「ギャップ」がありました。 。



ユーザーは、WindowsアプリケーションとBashコンソールを実行し、LinuxアプリケーションとWindowsアプリケーションを実行できるようにしたいと頻繁に言っていました。 そこで、この機能を追加しました!



Windows 10 Creators Updateでは、BashコンソールからWindowsアプリケーションとツールを実行できます。







...そして、WindowsからLinuxバイナリ/コマンド/スクリプトを実行できます:







この機能については、 別のブログ記事で詳しく説明しています。



UNIXおよびNetlinkソケットの機能強化



UNIXソケットとNetlinkソケットのいくつかの側面は、アニバーサリーアップデートではサポートされていませんでした。



WSL Creators UpdateはUNIXデータグラムソケットとNetlinkソケット、オプション、およびプロパティを追加するため、多くの最新ツールはWSLの下でさまざまな形式のプロセス間通信を受け取ります。



詳細については、 WSLリリースノートを参照してください。



IPv6およびTCPソケットの機能強化



Creators Updateの準備において、WSLとWindows Core Networkingグループは協力して、いくつかの追加のTCPソケットとIPv6ソケットのオプションとプロパティに対するWSLサポートを実装しました。 これにより、IPv6などのサポートが、さまざまなネットワークソケット機能に依存するさまざまなツールやテクノロジーに拡張サポートされます。



詳細については、 WSLリリースノートを参照してください。



さまざまなWSLの機能強化



上記のWSLの機能強化は、最も注目すべき重要な変更のほんの一部に過ぎませんが、Creators Updateには数百の他のWSLの機能強化が含まれています。 それらのいくつかに言及しますが、詳細についてはリリースノートを検討することを忘れないでください。





Windowsコンソールとコマンドラインの機能強化



Windowsコンソールは、オペレーティングシステム全体の最も基本的な部分の1つであり、数十年にわたってWindowsの一部でした。 約2年前、新しいWindowsコンソール開発チームが結成され、30年以上でWindowsコンソールの最も重要な再構築が行われました。



コンソールの根本的なアップグレードの主な理由の1つは、LinuxコマンドラインツールとWSLで実行されているアプリケーションの出力を表示することになっていたことです。 また、開発チームは、コンソールの内部構造に非常に必要なアップグレードと変更を行いました。これにより、将来、新機能をより迅速かつ簡単に展開できるようになります。



それでは、Win10 CUのコンソールの新機能は何ですか?



多くのVTエスケープシーケンスの改善



コンソールは元々NIXサポートなしで作成されたため、NIXコマンドラインツールおよびアプリケーションによって生成されたさまざまな動作と出力フォーマットコード( ANSIおよびVTエスケープシーケンス )を処理できませんでした。



これで問題は解消されました。



Windows 10 Anniversary Updateによりコンソールが完成し、最も一般的なVTシーケンスを処理でき、ほとんどのテキストを簡単なフォーマットで正しく表示できるようになりました。 ただし、一部の高度なシナリオはサポートされていません。



Windowsコンソールの新しいバージョンでは、VTシーケンスのサポートがさらに拡張され、より複雑なVTシーケンスを正しく処理できるようになりました。そのため、コンソールは、複雑なテキストインターフェイスvimemacsMidnight Commandertmuxhtopおよびその他のプログラムの多くの高度な機能をサポートするようになりました。







24ビットカラーのサポート



コミュニティからのもう1つの一般的な要求は、16色以上のコンソールサポートでした。 256色以上のサポートは、現代のますます複雑でリッチなコマンドラインツール、シェルなどを使用する場合に非常に重要です。



Win10 Creators Updateでは、コンソールが更新され、完全で美しい24ビットカラーがサポートされています!







詳細については、 24ビットカラーのサポートの発表とともに 、対応するブログ投稿を参照してください。



マウスのサポート



リッチテキストUIの数は常に増加しており、ユーザーはMidnight Commander、Htopなどのツールのマウスサポートを取得したいので、Win10 CUにマウスサポートを追加しました。





イラスト目的のための著者の芸術的なレンダリング。



管理者権限のないWindowsのシンボリックリンク



シンボリックリンク(symlink)-Linuxで広く使用されている重要なツールですが、Windowsではそれほどアクティブではありません。シンボリックリンクを作成するには管理者権限が必要であるためです。 シンボリックリンクが作成されるコンソールは、管理者特権に昇格する必要がありました。これはユーザーがめったにしないことです。



Windows 10 Creators Updateでは、 開発者モードアクティブにしたユーザーの権利の下でのシンボリックリンクの作成に関する制限が削除されたため、コンソールからシンボリックリンクが作成されます。



シンボリックリンクの詳細と例について発表をご覧ください。



次は?



それで、私たちは終わりましたか? いや! 近くさえ終わっていない!



WSLとWindowsコンソールの両方には、将来の改善、新機能、そして私たちが本当に取り組みたい機能の全ラインナップがあります。



さらに、Creators UpdateではコンソールとWSLが大幅に改善されていますが、ここではWSLがベータ版の状態を保持していることに注意することが重要です。ただし、いくつかの大まかなエッジと鋭い角をカットし、主要な機能と機能の一部も改善しています。



私たちは、計画された多くの改善と素晴らしい新機能を継続して進めています。 Windows 10の将来のリリースでは、多くの興味深いことが期待されます。Windows10の次のリリースで最初にアクセスし、計画されている改善を確認したい場合は、Windows Insiderプログラムに参加し、 Windows Update Insider Update Ringを高速モードに設定してください。



いつものように、 フィードバックを残してくださいGitHubのWSLリポジトリでWSLを使用する際に問題が見つかった場合は、気軽にTwitter質問しUserVoice新機能を提案しRedditStackOverflowSuperUserおよびその他のサイトで素晴らしい議論を行い、 コマンドラインブログにコメントを残してくださいとWSLチーム



どうぞ!



All Articles