こわくない WSL 入門

スピーカー

mihochannel さん(Microsoft エヴァンジェリスト)

概要

どこかで聞いたことあるけど、正直よくわからないという技術や製品について「こわくなくなる」ための勉強会です。 今回のテーマは WSL=Windows Subsystem for Linux ( Windows 10 の Anniversary Update から登場した OS の新しい機能で、Linux のシェルを Windows 10 上で動作させることができるもの)です。

目標

WSL の基本的なしくみ、実装、何ができるのかを実際のデモを交えてこわくなくなるまでご紹介。

前提知識

Windows10の基本操作

環境

Windows 10 Fall Creators Update (RS3)

資料

https://www.slideshare.net/mihochannel1/wsl-86741467 

内容

Windows Subsystem for Linux とは

背景

かつてマイクロソフト=悪の帝国というイメージがあった。  ↓ ここ数年

  • Microsoft ❤ Linux

  • Microsoft ❤ OSS

  • 2年前 The Linux Foundation に join

  • Azure で利用可能なテクノロージーは MS 製品だけじゃない

  • Azure cloud 以前は Windows + Office で市場を独占していたためだまっていても売れていた

  • Azure cloud からは売り切りからサブスクリプションにシフト

Windows は Git 最大のリポジトリ

WindowsのソースコードはGitで管理されていて「The largest Git repo on the planet」と言われている。

Azure の WM の OS は Windows < Linux

Windows Subsystem for Linux

歴史

  • Windows 10 Anniversary Update で追加された
  • Windows 10 Insider Preview build 14316 で初めて実装された
  • Bash on Windows
  • 当時 Ubuntu 14.04 LTS ベース

現在

  • Windows Store から Ubuntu、openSUSE Leap 42、SUSE Linux Enterprise を選択可能
  • Fall Creator Update(FCU) から正式機能になった

Windows 10 について(要るかな?)

WSL のしくみ

WSL は仮想マシンではありません! Drawbridge という仕組みで動作する。 →コンテナに近い実装 Pico processの中で init が起動しそこから /bin/bash が fork される。 WSLを実行するためにLxss managerというサービスが動作している。 WSLでは Linux のシステムコールを実装している。 現在の対応状況 235/384 件。 ※WSL上のディストリビューションからインストールするパッケージでシステムコールが未対応で動作しないものがあるかも。

Microsoft のソフトはほとんどマルチプラットフォームに移植されている。 その方法がソフトによって異なっている。

  • Office や Skype は ReactXP
  • SQL Server は Drawbridge SQL Server は元々 SQL OS で実装されていて仕組み的に Drawbridge に移行しやすかった

Drawbridge関連の参考資料:

実際にさわってみよう

WSL のインストール

WSL自体はネットでググって普通にインストール。動かすにはその後下記を実施する。

  1. 「Windows の機能の有効化または無効化」を起動
  2. 「Windows Susbystem for Linux」にチェックをつけて[OK]
  3. リブート
  4. Microsoft Store から ディストリビューションを選択してインストール

WSL 起動

コマンドプロンプト等から bash を実行。

$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS" $ uname -a Linux PC 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux

できること、できないこと

  • WSL から notepad.exe を実行してファイルを編集できる
touch wsl.txt notepad.exe wsl.txt
  • WSL から vi を実行してファイルを編集できる
  • システムファイルは現時点ではアクセスできなくなっている Permission deniedと怒られる。
  • 次のバージョンではchmod/chownがサポートされ属性を変更すればシステムファイルも編集できるようになる(はず)

フィードバックお願いします

その他リンク

まとめ

  • Microsoft ❤ Linux

おまけ

  • Win + F フィードバックHubが起動。 問題点があれば報告してください。

  • 複数ディストリビューションをインストールした場合どちらが起動する 基本的に先勝ち 選んで起動したい場合はストアアプリを起動

  • Ubuntu 200MB ぐらい 小さい!

  • Edgeあんまり好きじゃない サーバに実装されていないのには理由があるはず