SlideShare a Scribd company logo
Bash on Ubuntu on Windows
ちょっとだけWindows Subsystem for Linux
猪股健太郎 (@matarillo )
2016/05/21 C#ユーザー会 //build/ 2016振り返り 勉強会
1
Bash on Ubuntu on Windowsとは?
 MicrosoftとCanonicalの
提携の成果の一つ
 http://aka.ms/wsldocs
 一般的なコマンドライン
ツールが動く
 ファイルシステムを操作で
きる
 Bashのシェルスクリプトが
動かせる
2
インストール (0/4)
3
インストール (1/4)
4
インストール (2/4)
!?
5
インストール (3/4)
6
インストール (4/4)
7
コードページの問題でした。
8
バージョンを表示してみる
9
バージョンを表示してみる
 Ubuntuのアップグレードはできませんでした。
10
SSHとSSHD
 ごく普通にsshでリモートサーバーにつなげる
 sshdは×
11
LAMPとかMEANとか
 apache2は、
/run/lockディレクト
リを作っておくと、
何かいろいろ出るけ
ど動く
 mysqlも、なんかい
ろいろ出るけど動く
らしい
12
その他
 top動く
13
動いた、動かない、雑な報告
 動いた
 ネットワーク機能の一部
 いろいろな言語開発環境
(Ruby, Perl, PHP, etc…)
 一部のサーバー
 単純なGUIアプリケーション
(ただしWindowsでXサー
バーを動かしておく)
 まだ?動かない
 ping (ICMP)
 screen, tmux
 名前付きパイプ
 プロセス間通信
 グラフィックス関連
(Xサーバーとか)、
サウンド関連、
その他デバイスもの
 低レイヤーの機能とか
14
動いたとか動かないとか、まあおちつけ
 基本、preview機能です
 動いたといっても……
 あくまで開発目的
 本番運用はサポートされない(特にサーバー)
 動かないといっても……
 フィードバック次第ではどうなるかわからん
 開発目的でどうしても必要な何かがあるなら
 https://github.com/Microsoft/BashOnWindows/issues
 https://wpdev.uservoice.com/forums/266908-command-prompt-console-
bash-on-ubuntu-on-windo/category/161892-bash
15
話かわって
 ファイルシステム
 Windows Subsystem for Linux Overview
 https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/
16
ファイルを表示してみる
 ルートフォルダ
( / )
 VolFSの世界
 シンボリックリンクも
 chmodも
17
ファイルを表示してみる
 Windows側のファイル( /mnt/c/ )
 DriveFSの世界
 chmodは×
 シンボリックリンクは△
18
ファイルを表示してみる
 Linux側のファイルをWindowsから見てみる
 %USERPROFILE%¥AppData¥Local¥lxss¥rootfs
 Linux側で作成したファイルは見えない
19
バイナリ起動の相互運用性は……
 Linux→Win 不可能
 Win→Linux 不可能(bash.exeに引数を渡すことはできる)
20
Bash on Ubuntu on Windowsは●●ではない
 「Bashぐらいこれまでだって動いてただろ。」
 その通りです。
 でも、違いはあります。
 でもでも、これまでできなかったすごいことが
できるようになったのかというと……うーん。
 とある利用シーンでは便利にはなったと思います。
21
似て非なるテクノロジー
 GNU on Windows
 Git for Windows
 MinGW&MSYS / MSYS2
 Cygwin
 POSIXサブシステム / SFU / SUA
 coLinux
 VM (Hyper-VやVirtualBoxなど) でLinuxを動
かす
技術はこれの仲間
使用感はこれに近い、
かな。
Windowsバイナリの壁
Linuxバイナリの壁
22
時間があれば補足 (主観強め)
 GNU on Windows
 コマンドプロンプトで生きる。あとちょっとだけスクリプティング
 Git for Windows
 Gitメイン。対話シェルとしてのbashも。
 MinGW&MSYS / MSYS2
 bashで生きつつ、コマンドプロンプトもほどほどに
 Win32バイナリをビルドしたい
 Cygwin
 なんとかしてWindowsにUnixライク環境を実現したい
 あれもこれも動かしたい
 コマンドプロンプトなんか使わない
23
どうしてこうなった?
 開発者による開発者のための
コマンドラインインターフェース文化
 (自由な|オープンソース)ソフトウェアのエコシステム
 Windowsには移植されない or されても地雷多め問題
24
コマンドラインインターフェースの世界
 端末エミュレーター
 シェル(対話モード/バッチモード)
 内部コマンド
 外部コマンド
 パッケージマネージャ
 開発環境
 Cコンパイラとlibc (glibc)
 ※ オフトピ:PowerShell に見るWindows文化とUnix哲学の違い
ここだけは改善するから
これより下は
Linuxの世界を
そのまま持ってきたい
25
Windows 8.1までのコマンドプロンプト
26
Windows 10のコマンドプロンプト
編集オプションと
テキスト選択
フォントの選択肢
(描画品質も?)
背景透過
27
ANSI / VT100エスケープシーケンス対応中
 色は、16色は出るみたい
28
おまけ(Ubuntu 14.04にOpenJDK8を入れる途中)
29
Windowsとサブシステム
 今日は浅い話しかできません。
ごめんなさい。
 Windowsサブシステム基礎勉強会とかあるなら
濃い人たちからぜひ話を聞きたい
30
OSとは?
出典 Armadillo開発者サイト
「 Armadillo実践開発ガイド 第1部」
出典 Wikipedia
「オペレーティングシステム」
Bash on ubuntu on windows
32
インサイドMicrosoft Windows 第4版 上 第2章
 @ITに転載記事が。
 小さくて見えない……
 http://www.atmarkit.co.jp/fwin2k/bookprevi
ew/insidewin4/insidewin4_04.html
33
インサイドMicrosoft Windows 第4版 上 第2章
 @ITに転載記事が。
 小さくて見えない……
 http://www.atmarkit.co.jp/fwin2k/bookprevi
ew/insidewin4/insidewin4_04.html
34
大きくしてみました。
ユーザーアプリケーション
サブシステムDLL
カーネルモードの壁
Ntdll.dll
Systemプロセスとか
カーネルとか
(API非公開)
35
Windowsも。
Win32アプリケーション
WindowsサブシステムDLL
(Win32API)
カーネルモードの壁
Ntdll.dll
Systemプロセスとか
カーネルとか
(API非公開)
36
SUAも。
SUAアプリケーション
Subsystem for Unix Application
(POSIX互換APIなど)
カーネルモードの壁
Ntdll.dll
Systemプロセスとか
カーネルとか
(API非公開)
Windowsから起動
することもできる
バイナリ形式だっ
たとか。
37
Winows Subsystems for Linuxも?
Linuxアプリケーション (ELF)
Winows Subsystems for Linux
(Llinux API)
カーネルモードの壁
Ntdll.dll
Systemプロセスとか
カーネルとか
(API非公開)
?
38
 サブシステムはユーザーモードで動作する……
 そんな風に考えていた時期が
俺にもありました
39
!?
 Bash on Ubuntu on Windows
 https://msdn.microsoft.com/en-us/commandline/wsl/about
40
!?
 Windows Subsystem for Linux Overview
 https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/
41
Drawbridge
42
Drawbridge
 Microsoft Research発の技術
 http://research.microsoft.com/en-us/projects/drawbridge/
 ピコプロセス
 ライブラリーOS
 プロセスベース
コンテナ
 安全で高速
43
続きはWebで
 https://speakerdeck.com/ntddk/an-introduction-to-drawbridge-ja
44
5/24(日本時間)続報キタ!
 Pico Process Overview
 https://blogs.msdn.micros
oft.com/wsl/2016/05/23/pic
o-process-overview/
 fork()やファイルパスの扱
いの改善のため、NTカー
ネルにも手が入った模様
やはり
Linux Subsystemは
カーネルモード!
45
雑なまとめ
 Ubuntu環境が高速に起動するのがよい
 コンテナっぽさ
 ただし1ユーザーに1環境のみ、再利用のしくみもない
 コマンドラインツールとか、
一時的なサーバー利用とか
 Bash窓を全部閉じたらLXSSもシャットダウンするよ
 Windows ServerがLinux化する
……みたいな方向にはいかないはず(Azureあるし)
 DrawBridgeがアツい

More Related Content

PDF
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
PDF
VPSもDesktopもYaSTを使ってLinuxをらくらく設定―ファイルサーバー構築・管理編
PDF
TUI作業で便利なソフト2題
PDF
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる
PDF
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
PDF
Flameにfirefox os2.1を入れてみた+α
PDF
openSUSEの紹介とサーバ構築
PPTX
FreeBSDのススメ
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
VPSもDesktopもYaSTを使ってLinuxをらくらく設定―ファイルサーバー構築・管理編
TUI作業で便利なソフト2題
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
Flameにfirefox os2.1を入れてみた+α
openSUSEの紹介とサーバ構築
FreeBSDのススメ

What's hot (20)

PDF
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
PPTX
Windows7移行のエトセトラ(ちょびっと)
PDF
openSUSE におけるパッケージ管理入門
PPT
FreeBSDで行こう for small server
ODP
シェルスクリプトを極める
ODP
PHP With Windows binary
PDF
クラウドインフラのゲスト OS は openSUSE で—今までの&新しい openSUSE 活用法の紹介
PDF
Osc201703 tokyo-clonezilla-v1.2 j
PDF
opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)
PPTX
DEXCS2015のWindows10 PCへのインストール
ODP
マルチプラットフォーム開発導入
PDF
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
PDF
サーバーだけじゃない! Linux デスクトップを使い倒そう! その1
PDF
DEXCS 2018 for OpenFOAM ,How to install
PDF
いまどきのLinuxインストールバトル(新型PC編) OSC2015 Nagoya LT
ODP
ここんとーく in 大分 (opencoconのご紹介と次期バージョンの予告)
PDF
全文検索くん(Search++)簡単導入の手引き
PDF
勉強会資料 LT会 zfsで遊んでみた_公開版
POTX
LinuxをインストールしてWebサーバーを立ち上げてみよう
PDF
AzureでopenSUSE Leap42.1が使えるよ!
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
Windows7移行のエトセトラ(ちょびっと)
openSUSE におけるパッケージ管理入門
FreeBSDで行こう for small server
シェルスクリプトを極める
PHP With Windows binary
クラウドインフラのゲスト OS は openSUSE で—今までの&新しい openSUSE 活用法の紹介
Osc201703 tokyo-clonezilla-v1.2 j
opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)
DEXCS2015のWindows10 PCへのインストール
マルチプラットフォーム開発導入
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
サーバーだけじゃない! Linux デスクトップを使い倒そう! その1
DEXCS 2018 for OpenFOAM ,How to install
いまどきのLinuxインストールバトル(新型PC編) OSC2015 Nagoya LT
ここんとーく in 大分 (opencoconのご紹介と次期バージョンの予告)
全文検索くん(Search++)簡単導入の手引き
勉強会資料 LT会 zfsで遊んでみた_公開版
LinuxをインストールしてWebサーバーを立ち上げてみよう
AzureでopenSUSE Leap42.1が使えるよ!
Ad

Viewers also liked (6)

PDF
イマドキのUbuntu活用法
PDF
Azureで実現簡単クラウドアプリケーション
PPTX
はじめませんか? Bash on Windows
PPTX
Visual studioとそのライバル
PPTX
Windows環境でのgitまとめ(2016.1)
PPTX
ハードディスクの正しい消去(2015.7)
イマドキのUbuntu活用法
Azureで実現簡単クラウドアプリケーション
はじめませんか? Bash on Windows
Visual studioとそのライバル
Windows環境でのgitまとめ(2016.1)
ハードディスクの正しい消去(2015.7)
Ad

Similar to Bash on ubuntu on windows (8)

PPTX
その後のBash on windows
PPTX
今だから知りたい Bash on Windows
PDF
Windows Subsystem for Linux 2
PPTX
windows terminal入門
PPTX
Unix と windows 世界の融合
PDF
20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン
PPTX
Windows10上にWSL2環境を構築する
PDF
monoでWindowsアプリを動かす
その後のBash on windows
今だから知りたい Bash on Windows
Windows Subsystem for Linux 2
windows terminal入門
Unix と windows 世界の融合
20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン
Windows10上にWSL2環境を構築する
monoでWindowsアプリを動かす

More from Kentaro Inomata (20)

PDF
『アプリケーション アーキテクチャ ガイド2.0』のガイド
PDF
Agile Software Development (In Japan)
PPTX
Extreme Programming
PPTX
富山合同勉強会2015 ジェネリクス談義 C#編 補足
PPTX
富山合同勉強会2015 ジェネリクス談義 C#編
PDF
UIデザインパターンをSilverlightでやってみた part1
PDF
.NETの業務向けOSSフレームワーク鼎談
PDF
RESTful Webサービス
PPTX
Azureといえば
PPTX
ASP.NET MVCとEntity Frameworkで作ってみた
PDF
MacintoshでSilverlight開発
PDF
仮面ライダー勉強会LT06 響鬼についていろいろと
PDF
18-D-5 MVP & .NET Community Members Lightning Talks
PDF
パズルをコンピュータに解かせる
PDF
GUIのアーキテクチャ
PPTX
Silverlightと業務アプリ
PDF
コミュニティの壁を越える
PDF
釣りの楽しみ
PDF
業務システムを使いやすく! .NET Webアプリケーションの現在
PDF
解題:私がJavaからCsharpに乗り換えた10の理由
『アプリケーション アーキテクチャ ガイド2.0』のガイド
Agile Software Development (In Japan)
Extreme Programming
富山合同勉強会2015 ジェネリクス談義 C#編 補足
富山合同勉強会2015 ジェネリクス談義 C#編
UIデザインパターンをSilverlightでやってみた part1
.NETの業務向けOSSフレームワーク鼎談
RESTful Webサービス
Azureといえば
ASP.NET MVCとEntity Frameworkで作ってみた
MacintoshでSilverlight開発
仮面ライダー勉強会LT06 響鬼についていろいろと
18-D-5 MVP & .NET Community Members Lightning Talks
パズルをコンピュータに解かせる
GUIのアーキテクチャ
Silverlightと業務アプリ
コミュニティの壁を越える
釣りの楽しみ
業務システムを使いやすく! .NET Webアプリケーションの現在
解題:私がJavaからCsharpに乗り換えた10の理由

Bash on ubuntu on windows