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

UbuntuがWindowsストアに登場しました

情報源: Ubuntu now available from the Windows Store! – Windows Command Line Tools For Developers

WSLでは、Ubuntu, SUSE, Fedoraのディストリビューションがサポートされ、ストア経由でインストールされることが発表されていますが、Ubuntuがストアに追加されました、その他のディストリビューションについても追加される予定です。

このUbuntuを使用するにはWindows Insiderプログラムに登録し、ビルド#16215以上のビルドがインストールされている必要があります。

Windows Subsystem for Linuxの仕様にあたり、開発者モードの設定が不要に

情報源: Developer Mode no longer required for Windows Subsystem for Linux – Windows Command Line Tools For Developers

Windows 10 Insider Preview Build 16215よりWSLの仕様に当たって開発者モードの設定をする必要がなくなります。

これは、開発中の不安定な機能を使用するものだったため、非技術ユーザーを保護する目的で設置されていましたが、昨年からの二つの大きな更新でMSとして自信が持てたので、このツールセットを多くのユーザーが利用できるよう、開発者モードの設定無しで使えるようにするということのようです。

このため、今後WSL自体の機能をWindowsに追加するには、Windowsの機能にて「Windows Subsystem for Linux(Beta)」を選択するだけです。

Windows 10 SでWSLは動くのか?

情報源: Will Linux distros run on Windows 10 S? – Windows Command Line Tools For Developers

教育分野用のWindows 10のエディションとして、Windows Sが先頃発表されました。このWindows SはWindowsストア経由でのアプリケーションのインストールが行えませんし、ストア経由でインストールしかアプリケーションを実行できません。また、先のBuild 2017ではWSLのユーザーランドがUbuntuだけでなくSUSE, Fedoraが追加され、それがストア経由で選択してインストール出来るようになることが発表されました。

そこで、誰もが疑問に思うのがそれだったらWindows SでWSLが動くんじゃ無いかって事です。

答えはNO

理由はWSLが前提としているデスクトップブリッジが広範な権限を必要とするため、Windows Sでは動かないから。記事では同様な理由でWindows Sは開発者向けではないとしています。

Surface LaptopのようなWindows SがプリインストールされたPCを入手した場合には、Pro等へのアップグレードが必要となります。

New distro’s coming to Bash/WSL via Windows Store – Windows Command Line Tools For Developers

Memo.

情報源: New distro’s coming to Bash/WSL via Windows Store – Windows Command Line Tools For Developers

WSLのディストリビューションを今までのUbuntuに加え、SUSE, Fedoraが追加され、その中から選択できるようになりました。これでyum派のみなさんも安心ですね!

File System Improvements to the Windows Subsystem for Linux

This is part of a series of blog posts on the Windows Subsystem for Linux (WSL). For background information you may want to read the architectural overview , introduction to pico processes , WSL system calls , and WSL file system blog posts.

情報源: File System Improvements to the Windows Subsystem for Linux

WSLでWindowsのファイルシステムをマウントし、差分を吸収する仕組みがDrvFsだが、mountコマンドでDrvFsを使用するための解説。SMBなシェアフォルダもマウントできるようです。

Windows Subsystem for Linuxでのシリアルポートサポート

情報源: Serial Support on the Windows Subsystem for Linux – Windows Subsystem for Linux

Windows 10 Insider Previewの最新ビルドで、WSL上からのCOMポート使用がサポートされたようです。これでTTYが必要なアプリケーションも動作させれるようになったほか、VT-100とかつなげられますね:P

仕組み的には以下の図のようになっているようです。

Lxcore.sys内部に持つttyS.libがWindowsのCOMポートを中継する黒魔術です。

WSLではWindowsのCOM1がLinuxの/dev/ttyS1にCOM2が/dev/ttyS2と言うようにマップされます。WSLから使用する際のCOMポートのボーレート、ストップビット、フロー制御などについてはデバイスマネージャもしくはレジストリにより設定するようです。

MSではWSL上からラズベリーPiのシリアルポートに対して、以下のシナリオで動作のテストをしているようです。

  • Hyper-V virtual COM port
  • FTDI USB to serial converter
  • Prolific USB to serial converter
  • Physical COM port

まぁターミナル繋ぐのは今となってはネタですが、シリアル接続が必要なデバイスはそれなりに今もあるので、そのようなデバイスのプログラミングやデバッグをするのには良いかもしれませんね。

Windows 10 Creators Update: Bash/WSL & Windows Consoleの新しい点

雑に要約しました。

情報源: Windows 10 Creators Update: What’s new in Bash/WSL & Windows Console – Windows Command Line Tools For Developers

Windowsクリエーターズアップデートでは、WSL, コンソールアプリケーションがアップデートされています。

WSLの新機能

互換性の向上

クリエーターズアップデートではLinuxシステムコールインターフェイス(CSI)との互換性が改善されました。

これにより、各種開発ツール、言語処理系、テキストエディタ、RDBMS等が期待通りに動作します。

詳細については情報源の記事を確認ください。

Linuxとの互換テストについては、以下の記事になっています。

Testing the Windows Subsystem for Linux – Windows Subsystem for Linux

Ubuntu 16.04のサポート

Ubuntuが16.04へアップデートされました。

Win10 AUからWin 10 CUへアップデートした場合、自動的にUbuntu 14.04から16.04へのアップデートは行われないので、管理者権限のあるコマンドプロンプトで、以下の要領でWSLのアンインストールとインストールを行います。

既存の環境を余り壊したくない場合には以下の要領でインプレースアップデートが可能です。

Ubuntuのバージョン確認は以下の要領で行います。

ifconfig, ネットワーク接続列挙のサポート

Win10 AUではネットワーク接続列挙の機能が不足していたため、ifconfig、gulp、npmのようなツールが正しく動作しませんでしたが、Win10 CUではこの部分が改善されました。

pingとICMPのサポート

Win10 AUでは管理者権限がないとpingが出来ませんでしたが改善されました。

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

Win10 AUでの不満点にINOTIFYの非サポートがありましたが、これも改善されました。

Windows, Linuxの相互運用

WSLのコンソールからWindowsアプリケーションの呼び出し、WindowsのコンソールからWSL上のLinuxアプリケーションを呼び出しができ、それだけで無く、パイプ、リダイレクトで接続することができます。

WindowsからLinuxコマンドを呼び出す場合、…\System32\Bash.exe経由で呼び出すので、Git for WindowsやCygwinでその他のbashにpathを通している場合には注意してください。

UNIXとNetlinkソケットの改善

Win10 AUではUnixソケットとNetlinkソケットの一部機能がサポートされていませんでしたが、改善され、多くのツールが動作するようになりました。詳しくは以下のリリースノートを確認ください。

https://msdn.microsoft.com/en-us/commandline/wsl/release_notes

TCPソケットとIPV6の改善

TCPソケットとネットワーク周りが改善され、様々なネットワークソケット機能、IPV6の使用が可能になりました。詳しくは以下のリリースノートを確認ください。

https://msdn.microsoft.com/en-us/commandline/wsl/release_notes

Windowsコンソールとコマンドラインの改善

Windowsコンソールは非常に長い歴史がありますが、長い間ほとんど顧みられること無く、機能改善はされないままで、それ故に多くのサードパーティが登場することになりましたが、長い間ユーザーの不満点として残っていました。

ところが、MSがOSSに配慮するようになって、要約その不満点を理解したのか、2年前よりWindowsコンソールチームがが出来、コンソールのオーバーホールが行われています。

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

以前のWindowsのコンソールは不十分なANSIシーケンスのサポートで有名でしたが、もはやそれは過去のものとなりました。

Win10 AUのコンソールではほとんど一般的なANSI, VTシーケンスがサポートされましたが、いくつかの高度な機能が欠落していました。Win10 CUではさらにVTシーケンスのサポートが改良され、いくつかの高度なVTシーケンスを正しく処理できるようになり、vim、emacs、Midnight Commander、tmux、htopなどの多くのリッチテキストUI機能をコンソールに表示できるようになりました。

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

コンソールで24ビットカラーがサポートされるようになりました。

マウスのサポート

コンソールでマウスがサポートされるようになりました。

Windowsのシンボリックリンクで管理者権限が不要に

Win10 CUで開発者モードをONにした場合、管理者権限無しでシンボリックリンクの作成が可能になりました。

これについては次の記事を参考にしてください。

https://blogs.windows.com/buildingapps/2016/12/02/symlinks-windows-10/#lHydFmMHvUPDUtk0.97

What’s Next?

Win10 CUにおいてもWSLはベータ版です。

Windows 10 Insider PreviewのFastリングに登録して、新しい追加機能を試すとともにフィードバックをして欲しいとのこと。

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!

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