「WSL」カテゴリーアーカイブ

Use Visual C++ for Linux to build and debug C++ code on the Windows Subsystem for Linux 

情報源: Use Visual C++ for Linux to build and debug C++ code on the Windows Subsystem for Linux – Windows Command Line Tools For Developers

むかしWSLではsshdなんて動かさないんだって読んだことがあるような気もしなくも無いのですが、sshを使って、WSL上で動作するLinuxのアプリケーションをVisual Studioでリモートデバッグできるようになるらしいです。組合せ的にはWindows 10 Creators UpdateのWSL+Visual Studio 2017(RTM)もしくはその最新プレビュー同士という事になりそうです。準備手順的には以下のURL

https://blogs.msdn.microsoft.com/vcblog/2017/02/08/targeting-windows-subsystem-for-linux-from-visual-studio/

また、先に行われたWindows Developer DayではJavaやPostgresSQLに関する発表もあったらしく、結局何でもありな感じになりそうです。

ただ、まぁWSLでサーバー運用しようとかは考えない方が絶対に良いとは思いますけどね。

Bash on Ubuntu on Windows @ Windows 10 Insider Preview Build 1502

Release Notes

情報源: Bash on Ubuntu on Windows – Release Notes

本日公開されたWindows 10 Insider Preview 15002ではWSLの多数の不具合点が修正されるも、コンソールでCtrl+Cが動作しない、システムスレッドでCPU負荷率が100%になってしまうことがあるという不具合があるようです。

Ctrl + Cに関してはBlogで解説(?)されています。

Bash in Windows Insider build 15002 – many fixes but a couple of bugs!

クリスマス休暇が有りチーム間で上手く連携が取れなかったそうで。。。

WSLでWindows側の%PATH%が$PATHに追加される

情報源: More easily invoke Windows apps and tools from Bash on Windows – Windows Command Line Tools For Developers

こちらも新しいIPよりWindowsで設定されたPATHが自動的にWSL側の$PATHに追加されるようになったようです。細かいところですが、WSLのコンソールでWindowsのアプリケーションが使いやすくなりますね。

WSL Antivirus and Firewall Compatibility

情報源: WSL Antivirus and Firewall Compatibility

WSLとアンチウイルス製品などとの関係のお話し。

基本的にサードパーティのアンチウイルス/ファイアウォール製品では、製品側でWSLへの対応が必要。WSL側ではAntivirus/Firewall用のAPIを用意する。と言うところ。

現状トラブルも多いようなのでWSLを使用する場合にはお使いの製品が対応するまではWindowsが初めから持っているDefenderとWindows Firewallを使用するようにした方が良さそうです。

問題は3rdがそこまで手間かけて対応するかですけど。特にコンシューマ向け製品。

WSL adds Ubuntu 16.04 Xenial support

情報源: WSL adds Ubuntu 16.04 Xenial support – Windows Command Line Tools For Developers

Insider Previewの新しいビルドでWSLが更新されたのは既にお伝えしていますが、Ubuntuがのバージョンが14.04から16.04にアップデートされています。普通に考えればUbuntuのアップデート手順でアップデートなのですが、この記事だとなんと、14.04から16.04へのアップデート出来ないから入れ直せと行っています。ちょっと何を言っているかわからない。だがそういう事らしい。製品版では素直にアップデートできると良いですね。

アンインストール・インストールとも管理者権限のapuコマンドプロンプトかPowerShellで実行してください。

アンインストール

インストール

そして、この記事のMSの開発チームの「目指していない物」リストが面白い。(意訳)

  • 私たちはこのリリースではGUI/X アプリケーションやデスクトップのサポートは目指していません。
  • 私たちはこのリリースではオーディオサーバーやストリーミングのサポートは目指していません。
  • 私たちはこのリリースではCUDAやGPUアクセラレーションによる計算のサポートは目指していません。
  • 私たちはこのリリースではリムーバブルデバイスあるいはネットワークドライブのマウントのサポートは目指していません
  • %localappdata%\lxss は直接触らないでくれる?

つまりボクらが無茶するので、お前ら落ち着けって事らしい。

WSL上でのWindowsアプリケーションの起動と相互運用

情報源: Windows and Ubuntu Interoperability – Windows Subsystem for Linux

今日公開されたInsider Previewのビルドに含まれるWSLでは、WSLのbash上からWindowsアプリケーションの起動が可能になったほか、WindowsプロセスとWSLのプロセスとの間でリダイレクト・パイプが使用できるようになりました。

それを実現する仕組みを示したのが下の図です。

当然WSLのプロセス空間の中でWindowsプロセスが作られるわけではなく、実際にはWSLのローダー側でWindowsのbinがロードされようとされたことを検知したら、それをbash.exeに通知して、Bash.exeに起動させます。また、WinプロセスとWSLのプロセス間でのリダイレクト・パイプを実現するために、その起動したWindowsプロセスの入出力とWSL側のプロセスの入出力をWSLのサービスとbash.exeが橋渡しをします。

どの様にリダイレクトを実現しているのか、Linux側のローダーをどのように設定変更しているかについては、元のBlogにもう少し細やかな説明がありますのでご確認ください。

実際にWSL上でどうWindowsバイナリを使っていくかについては、以下のmsdnライブラリの文書を参考にしてください。

Windows Interoperability

参考:リリースノート

Announcing Windows 10 Insider Preview Build 14936 for PC and Mobile

情報源: Announcing Windows 10 Insider Preview Build 14936 for PC and Mobile

PCでの変更・拡張点は以下のようになっています。

  • Edgeに新しい拡張が追加。
  • NASや他PCの共有フォルダを使用したり、ネットワークドライブとして接続するには、そのマシンとの間になるネットワークがプライベートもしくはエンタープライズであることが必須となりました。(NAS越しに共有できないとNATでネットワーク共有する仮想マシンで面倒なことが。これポリシーで変更できるんだろうか。)
  • Windows Subsystem for Linux (WSL)のUbuntuが16.04へアップデートされます。ただし、勝手にアップグレードされないので、ここの方法でアップグレードします。また自分で追加したレポジトリは消えちゃいます。
  • バグ修正

PC版での問題点。

  • いくつかの拡張機能が動作しなくなるかもしれず、その場合には “Turn Windows features on or off”より機能有効にすることで復旧出来ます。
  • Tencent appやゲームでバグチェック(BSOD)になる可能性があります。
  • SFC /scannowを実行して昇格しようとしたときに20%の確率で失敗します。

Mobileでの問題点。

  • Facebook Messenger等のアプリをSDカードにインストールしようとするとクラッシュします、