こわくない 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自体はネットでググって普通にインストール。動かすにはその後下記を実施する。
- 「Windows の機能の有効化または無効化」を起動
- 「Windows Susbystem for Linux」にチェックをつけて[OK]
- リブート
- 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
がサポートされ属性を変更すればシステムファイルも編集できるようになる(はず)
フィードバックお願いします
その他リンク
- WSL Release Notes 結構良いことが書かれている
- Windows Command Blog 楽しい
まとめ
- Microsoft ❤ Linux
おまけ
-
Win + F フィードバックHubが起動。 問題点があれば報告してください。
-
複数ディストリビューションをインストールした場合どちらが起動する 基本的に先勝ち 選んで起動したい場合はストアアプリを起動
-
Ubuntu 200MB ぐらい 小さい!
-
Edgeあんまり好きじゃない サーバに実装されていないのには理由があるはず