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

Windows 10 Fall Creators UpdateのWSLの新機能

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

Windows 10 Fall Creators Update(RS3)の一般提供が来週の17日に迫ってきたことも有り、RS3でのWSLの変更についてまとめられています。

以下は私のメモ程度の簡約なので、正確な記載については上の情報源を参照ください。

WSLはもはやベータ版ではありません!

Fall Creators Update(2017年10月17日出荷)では、WSLは完全にサポートされたOS機能になります。

つまり、WSLに関する予期しない問題や問題が発生した場合は、マイクロソフトサポートに連絡して、通常のチャネルで管理されるサポートチケットを提出することができます。

また、エンジニアリングチームとコミュニティは、WSL Github Issues RepoとWindows 10のFeedback Hubを介して引き続きサポートを提供します。これらのチャネルを介してコミュニティが提供するすべてのサポートに感謝します。

Windowsストア経由でLinuxディストリビューションをインストールする

RS2まではUbuntuがWSLで使用できる唯一のディストリビューションでしたが、RS3よりはWindowsストアより複数のディストリビューションがインストール可能となります。現在はUbuntu, openSUSE, SUSE Linux Enterprise Server(SLES)が用意されており、Fedoraやその他ディストリビューションについては今後数ヶ月で登場する予定です。

RS3以降のインストール手順は、以下のようにコンロールパネルのプログラムと機能よりWindowsの機能の有効かまたは無効化を選択し、以下の図のようにチェックを付けてWSLの基本機能をインストールし、再起動します。再起動しないとWSLのコンポーネントが動作しません。

再起動後、ストアで「Linux」検索し、Linuxバナーのボタンをクリックします。

次に、インストールしたいディストリビューションを選択します。

製品ページのインストールボタンをクリックします。

WSLは複数のディストリビューションを同時に実行可能となりました

Fall Creators UpdateのWSLの最大の改善点は、Windows Storeから1つ以上のLinuxディストリビューションをインストールするだけでなく、それらを同時に実行できることです。

これで、Ubuntu、openSUSE、SUSE Linux Enterprise Serverを並行してインストールして実行できます。お気に入りのWindowsツールやCmdやPowerShellなどのシェルも一緒にインストールできます。

各ディストリビューションは互いに独立して動作しますが、Windowsのホストファイルシステム、ネットワーキングスタックなどにもアクセスできます。

異なるディストリビューションが動作することで、Ubuntu上のApacheでホストされたWEBアプリケーションをWindowsのEdgeやChromeで表示テストし、同時にSUSE上で動作しているRESTクライアントのテストが可能です。ローカルでテストするときには、これらすべてのプロセスは、ファイアウォールの上に並んで実行されます。

また、注意点としては、RS2までのUbuntuのイメージは正常に動作し続けますが、廃止予定と見なされ正式にサポートされません。ファイルをいままでのインスタンスから、ストアよりインストールされたインスタンスに移し、既存のインスタンスは廃棄することが推奨されます。

WSLはWindows ServerとそのMicrosoft Azure VMにも付属するようになります

WSL arrives on Windows Server!を参照。

WSLはUSBシリアルポート、USBストレージ・ネットワーク共有のマウントをサポートします

WSLではUSBシリアルポートをサポートし、USBストレージやネットワーク共有のマウントをサポートします。以下の記事を参照してください。

Bash/WSL Insiders build now supports usb/serial comms and mounting removable storage & network shares

マウントできるUSBストレージはWindowsのファイルシステム経由となるため、現在はFAT/FAT32/NTFS形式のストレージデバイスのマウントのみがサポートされていることに注意してください。

その他の修正と改善

詳細は16170から16288までのビルドのWSLリリースノートを確認ください。

改善点の一部は以下になります。

  • 改良されたTCPソケットオプションinc。IP_OPTIONS、IP_ADD_MEMBERSHIP、IP_MULTICASTなど
  • /etc/hostsはWindowsホストファイルからエントリを継承するようになりました
  • xattr関連のシステムコールサポート
  • いくつかのファイルシステムの機能と機能を修正
  • 改善されたPTRACEサポート
  • 改善されたFUTEXサポート

RS3より以下のシステムコールが初めてサポートされます。

  • Prlimit64
  • getxattr、setxattr、listxattr、removexattr

“Bash on Windows”と言う呼び方を非推奨とします

もともと、「Linux用Windowsサブシステム」という名前は、一般に、Linuxバイナリを実行するWindowsカーネルインフラストラクチャを指していました。これが意味することとエンドユーザーエクスペリエンスを伝えたいので、エンドユーザーの機能を「WindowsのUbuntuのBash」、または単に「WindowsのBash」と呼んでいます。

この名前付けスキームは、少なくともWSLが提供するものの本質を伝えるのに役立ちましたが、「Bash on Windows」はWSLのしくみを実際には説明していません。

だから、今後は機能名「Bash on Ubuntu on Windows」を使用しなくなります!

代わりに、「Windows Subsystem for Linux」(WSL)を使用して、Windows上でLinuxバイナリを実行できるようにするカーネルとWindowsツールを含むMicrosoftのテクノロジスタックを参照します。ディストリビューションは、Ubuntu、openSUSE、SUSE Linux Enterprise Serverなどの名前で知られています。

だから将来、会話は 「LinuxはWindows / WSL上でうまく動作する」、あるいは 「私はWSL上でUbuntuを実行する」、または 「WSL上でopenSUSEを試してみた」のようなものになります。

次は?

WSLエンジニアリングチームには長い改善と新規機能のリストが有り、これに取り組んでいます。今後Insider PreviewのFirst Ring向けには開発の都度新機能や改善を提供していきます。

Windows 10 Fall Creators UpdateでのWindows Consoleについて

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

Windows 10 Fall Creators Update(RS3)の一般提供が来週の17日に迫ってきたことも有り、RS3でのコンソール機能の変更についてまとめられています。

以下は私のメモ程度の簡約なので、正確な記載については上の情報源を参照ください。

Windowsコンソールのアクセシビリティの向上

長らくWindowsのコンソールはスクリーンリーダーに対応していませんでしたが、RS3からはWindows UI Automationインフラストラクチャ(UIA)を使用するスクリーンリーダーでコンソールの内容が読み取れるように改善されました。

これについての詳細は今後まとめられるようです。

テキストレンダリングとVTシーケンスのサポートの改良

Windows 10 Creators Update(RS2)にてVTシーケンスのサポートなどの改善が行われましたが、より表示がLinuxあるいはMacのコンソールと同じように動作するよう改善されました。

また、Windowsコンソールの今後のリリースでは、いくつかの重要な入力、テキスト、その他のVTの改善が計画されています。

新しいデフォルトカラースキーム

コンソールのカラースキームが下図の上から下に変更されました。現代の高解像度LCDパネルでわかりやすいカラースキームに変更されています。

ColorToolを使用したカスタムカラースキーム!

カスタムカラースキームの正式なサポートにはまだ時間がかかるものの、最近リリースしたOSSのColorToolを使用することでカラースキームのインポートが可能になりました。

コンソールのオーバーホール

コンソールチームはWindowsのコンソールを近代化し、より信頼性の高いものにするようオーバーホールしています。

この作業は続行されますが、主要なアーキテクチャ変更作業の終わりに近づいています。あなたにふさわしい世界最高レベルのコンソールエクスペリエンスを提供するように努めています。

Consoleの今後の計画

RS4のInsider Previewに今後数週間で新しいコンソールがが登場し、数ヶ月後の正式リリース時には改良されたコンソールがリリースされる予定です。改良点等についてはWindows ConsoleチームのブログRich TurnerのTwitterでお知らせします。

問題が見つかった場合には以下のGitHubへ登録をお願いします。

https://github.com/microsoft/console

Learn About Bash on Windows Subsystem For Linux – Windows Command Line Tools For Developers

情報源:Learn About Bash on Windows Subsystem For Linux – Windows Command Line Tools For Developers

とりあえずWSLの情報がCreators Updateリリース時の状態で止まっている人は、正式リリースとなるFall Creators Updateに備えて予習しておきましょう。

ディストリビューションはUbuntu, SUSE, Fedoraの中から選べるようになりますし、カーネルの互換性も上がっていて、パフォーマンスも改善されています。

ただし、余り欲張りな期待を持つのは禁物です。Linuxカーネルの全てのシステムコールにはまだ対応していません。WSLはLinuxサーバーの代わりにはなりませんし、しても行けません。X Windowsのアプリケーション実行も正式サポートにはなりません。

あくまでもWSLは「Windowsではこんなのも動かないの?」対策であることにFall Creators Updateでも変わりはありません。

Windows Subsystem for Linux on Windows Server

The Windows Subsystem for Linux (WSL) is available in Windows Insider builds of Windows Server. Now developers and application administrators can run tools they use in Linux environments alongside Cmd and PowerShell. If you want to jump straight in, the installation guide is available here. Why include WSL on Windows Server? We want Windows, including […]

情報源: Windows Subsystem for Linux on Windows Server – Building Apps for WindowsBuilding Apps for Windows

Windows ServerにWSLを組み込む理由

Windows Serverを含むWindowsを開発者にとって最適な場所にしたいと考えています。開発者、システム管理者、サービス管理者、サービス構築者は、Linux上で利用可能なツールを必要とすることがあります。利便性の問題として、Linuxツールをワークフローの一部として実行したいと考えている人がさらにいます。

LinuxツールをWindows Server上で使う方法には二つの方法がありました。一つはCygwinなどを使ってWindowsへ移植されたツールを使う方法ですが、しばしばこれはGemやライブラリの互換性の問題に直面し上手く行かないことが有ります。またそもそも移植されていないツールを使用することは出来ません。二つ目の方法はWindows Server上で仮想マシンを使う方法ですが、これではホストのWindowsとは切り離されすぎています。

WSL上でLinuxを動かすことで、この二つの方法での問題を改善できます。WSLは変更されていないLinux(ELF64)バイナリをネイティブに実行します。この事によりWindowsに統合された環境でほぼ全てのLinuxコマンドラインツールをインストールして実行できます。

あなたがサーバーエンジニアで、Linuxの環境、ファイルレイアウトを前提とするnode.js, Ruby, Python, Shell Script, その他のツールを実行させる必要があるなら、WSLを使用してLinuxをインストールして実行する機能により、Windows Server上で自由にツールを拡張できます。

WSLはLinuxサーバーでは無い

Windowsクライアント上のWSLと同様に、MySQL、PostgreSQL、sshdなどのデーモンやジョブを対話型シェルで実行できますが、WSLを使用して永続的なLinuxサービス、デーモン、ジョブなどをバックグラウンドタスクとして実行することはできません。

Windowsで永続的にLinuxのサーバーアプリケーションを動作させたい場合については、Build 2017の発表からHyper-V分離コンテナ上でのLinux実行について参照してください。

Windwos Server上でWSLを使用するにはどうすれば良いか?

WSLはWindows Server Insider Build 16237から追加されました。

次のインストール手順に従ってインストールすることが出来ます。

Install the Linux Subsystem on Windows Server

Windows Subsystem for LinuxからBetaが外れました

情報源: Windows Subsystem for Linux out of Beta! – Windows Command Line Tools For Developers

Windows 10 Insider Preview #16215にてWSLからBetaが外れました。

これでまた一段製品に近づいたことになります。またBetaが取れることで、フィードバックHUBを使用してフィードバックやサポートを得ることが出来るようになります。

ここで、WSLについておさらいしましょう。

WSLがサポートするもの

  • ソフトウェア開発と(基本的な)システム管理のためのコマンドラインツールの実行
  • Linux環境から同一マシンのWindowsファイルシステムへのアクセス
  • LinuxからWindowsプロセスの起動。 例:

  • WindowsコマンドラインからLinuxプロセスの起動。 例:

WSLがサポートしないもの

  • WSL上で動作するLinuxディストリビューションは、対話型のユーザーシナリオ用であり、Apache / nginx / MySQL / MongoDB / etcでの運用ワークロードの実行用ではありません。
  • LinuxファイルにはWindowsからアクセスできません(私たちはこのシナリオを時間の経過とともに改善するよう努めています)
  • 現時点では、X / GUIアプリケーション、デスクトップ、サーバーなどをサポートする現在の計画はありません

サポート

マイクロソフトとディストリビューターの役割分担

  1. マイクロソフトはWSLインフラストラクチャとツールをサポートします。
  2. ディストリビューターは自らのディストリビューションの内部構造を担当します。

期待通りに動作しない場合、WSLのGitHub issueにフィードバックを送ってください。フィードバックを送る際にはコントリビューションガイドライン新しいテンプレートに沿って記述しissueに登録してください。

WSLにSUSEが追加されました

情報源: SUSE’s Linux distros for WSL now available in the Windows Store – Windows Command Line Tools For Developers

WSLのディストリビューションにUbuntuに続き、SUSEが追加されました。しかもSUSEはOpen SUSE Leap 42とSUSE Enterprise 12両方です。

Windows Storeよりインストールします。インストールにはWindows 10 Insider Preview #16215以上が必要で、且つそれらでWindows Subsystem for Linux(WSL)をインストールしておく必要があります。

Ubuntuとの共存も可能です。残りはFedoraという事になります。

追記(2017/07/23 19:43)

openSUSE Leap 42をGUIアイコンでなく、コマンドラインより起動する場合にはコマンドラインより、「openSUSE-42」とタイプします。

また、ディストリビューション毎の起動コマンドは以下のようにFall Creator Updateより追加される「wslconfig」コマンドで確認することが出来ます。

LegacyはFall Creators Update(RS3)前までのubuntuのディストリビューションなので、「lxrun /uninstall」コマンドにて削除してしまった方が良いです。(私の環境で残してしまっていた)

また、(規程)となっているディストリビューションが、「bash」コマンドで起動されるディストリビューションとなり、変更は「wslconfig /setdefault」コマンドにより行います。

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派のみなさんも安心ですね!