Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Bash on Ubuntu on Windows ちょっとだけ Windows Subsys...
Search
INOMATA Kentaro
May 21, 2016
Technology
4
3.2k
Bash on Ubuntu on Windows ちょっとだけ Windows Subsystem for Linux
2016/05/21 C#ユーザー会 //build/ 2016振り返り 勉強会
INOMATA Kentaro
May 21, 2016
Tweet
Share
More Decks by INOMATA Kentaro
See All by INOMATA Kentaro
F# Design and Trade-offs: Functional Paradigm on .NET
matarillo
6
560
関数型プログラミングの設計テクニック
matarillo
9
4.6k
Talk about C-Sharp
matarillo
0
4
A guide for "Microsoft Application Architecture Guide, 2nd Ed."
matarillo
0
7
Other Decks in Technology
See All in Technology
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
170
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
260
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
9
73k
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
4
570
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
410
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
220
共有と分離 - Compose Multiplatform "本番導入" の設計指針
error96num
2
510
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
280
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
180
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
120
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
180
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Scaling GitHub
holman
463
140k
Fireside Chat
paigeccino
39
3.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Typedesign – Prime Four
hannesfritz
42
2.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Building Applications with DynamoDB
mza
96
6.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Transcript
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 「オペレーティングシステム」
None
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がアツい