22
今今今今今今今今 Bash on Windows ※ 今今今今今今今今今今今今今今今 2016/9/14 今今今今今今今今今 今今 今今今今今今今今今今今今今 今今今今今今今今今今今今今 Twitter: @mihochannel Blog: http://aka.ms/miyamam

今だから知りたい Bash on Windows

Embed Size (px)

Citation preview

Page 1: 今だから知りたい Bash on Windows

今だから知りたいBash on Windows

※ 本セッションでお伝えする内容は 2016/9/14 時点の情報です。

山本 美穂

日本マイクロソフト株式会社テクニカルエバンジェリスト Twitter: @mihochannel

Blog: http://aka.ms/miyamam

Page 2: 今だから知りたい Bash on Windows

自己紹介 ( 山本 美穂)  SIer で雑食エンジニアの経験を経て、某ソフトウェアメーカーで 5 年間プリセールスと布教奉仕活動を行ったのち現職に至る。

著書(共著 / 監修)  VMware 徹底入門(第 3 版 , 第 4 版)  VMware vSphere クラスタ構築 / 運用の技法

ブログ: http://aka.ms/miyamam@mihochannel

Page 3: 今だから知りたい Bash on Windows

Bash on Windows とは?

Page 4: 今だから知りたい Bash on Windows

• Windows 10 Insider Preview build 14316 で初めて実装(要開発者モード)•Windows で Bash が起動するというも

の• Ubuntu 14.04.4 LTS ベース• これまでコマンドラインを使う場合、サード

パーティツールや仮想マシンを使う必要があった

• デフォルトで Python2.7.6 対応

Anniversary Update で追加された機能

もしかして? ACI Toolkit 動くかも?

Page 5: 今だから知りたい Bash on Windows

ちょっとおさらい

Page 6: 今だから知りたい Bash on Windows

Windows NT の設計使命と目標• 他の 32 ビット アーキテクチャへの容易な移植性を提供すること移植性

• 安定性およびマルチプロセッシング サポートを提供すること安定性

• 分散コンピューティングをサポートし、複数のコンピュータがリソースを共有できるようにすること共有性

• Portable Operating System Interface for UNIX( POSIX )が要求したアプリケーション プログラミング インターフェイス( API )をサポートすること

互換性

• 米国政府のクラス 2 ( C2 )セキュリティ機能を提供し、クラス B1 とそれ以降のパスを提供すること堅牢性

Page 7: 今だから知りたい Bash on Windows

Microsoft Windows NT System アーキテクチャの基礎 (1997)https://msdn.microsoft.com/ja-jp/library/cc429070.aspx

Windows と Linux の歴史NT3.51 以前

NT4 以降

Page 8: 今だから知りたい Bash on Windows

WSL はこれとは違います。

Page 9: 今だから知りたい Bash on Windows

• Linux tools• Linux ELF64 バイナリでモディ

ファイされていないもの

• Windows Subsystem for Linux (WSL)• Windows Kernel の新機能• Linux 互換のシステムコールを行う

レイヤとプロセスモデル• fork() などの Linux のシステム

コールをサポート• ユーザーモードとカーネルモードの

両方から構成

こんな仕組みで動いています。Ubuntu

Windows Kernel

Windows Subsystem for Linux

ユー

ザー

モー

ドカ

ーネ

Bash, GC++, etc.

Syscalls read write

open …fork

Page 10: 今だから知りたい Bash on Windows

Bash on Windows のはなし

※ 本セッションでお伝えする内容は 2016/9/9 時点の情報です。

山本 美穂

日本マイクロソフト株式会社テクニカルエバンジェリスト

Windows Subsystem for Linux

Page 11: 今だから知りたい Bash on Windows

こんな構成で動いています

ユーザーモード

カーネルモード

Linux (Ubuntu) インスタンス

LXCore / LXSS

Bash.ex

e

LX Session manag

er service

init /bin/bash

syscall

fork

ioctl

COM

bus

Win32 プロセス

Pico プロセス

Page 12: 今だから知りたい Bash on Windows

• Lxss manager関連するサービス

Page 13: 今だから知りたい Bash on Windows

ファイルシステムの特徴VolFS

• Linux ファイルシステム機能をフルで実装• Permission• シンボリックリンク• ファイル名特性• Windows 非互換

DriveFS• Windows 互換• 実態は OS のフォルダを

マウントしている

Page 14: 今だから知りたい Bash on Windows

$sudo apt-get git$sudo git clone https://github.com/datacenter/acitoolkit.git$sudo apt-get install python2.7-dev$sudo apt-get install python-setuptools$cd acitools$sudo python setup.py install

acitools をインストール

Page 15: 今だから知りたい Bash on Windows

ここまでやって気づいた

Page 16: 今だから知りたい Bash on Windows

ACI の環境がないと動作確認すらできない (´ ・ ω ・

` )

Page 17: 今だから知りたい Bash on Windows

マリオさん、あざっす!

Page 18: 今だから知りたい Bash on Windows

シミュレーターで動きました!

Page 19: 今だから知りたい Bash on Windows

GUI で取得した情報とも同じです。

Page 20: 今だから知りたい Bash on Windows

•動いた、動かない、シェル芸、なんでも OK

• UserVoice (Ideas & asks): https://aka.ms/winbashuv

•GitHub Issues: https://aka.ms/winbashgithub

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

Page 21: 今だから知りたい Bash on Windows

• Windows Subsystem for Linux Overviewhttps://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/

• Drawbridgehttps://www.microsoft.com/en-us/research/project/drawbridge/

参考 URL

Page 22: 今だから知りたい Bash on Windows

22

本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。 Microsoft は絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。

本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。 すべての当該著作権法を遵守することはお客様の責務です。 Microsoft の書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段

(電子的、機械的、複写、レコーディング、その他)、および目的であっても禁じられています。これらは著作権保護された権利を制限するものではありません。

Microsoft は、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。 Microsoft から書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。

© 2016 Microsoft Corporation. All rights reserved.Microsoft, Windows, その他本文中に登場した各製品名は、 Microsoft Corporation の米国およびその他の国における登録商標または商標です。その他、記載されている会社名および製品名は、一般に各社の商標です。

Y

AX B