26
Windows Subsystem for Linux ののののののの のの のの ののののののののののののの ののののののののののののの Twitter: @mihochannel Blog: http://aka.ms/miyamam

Windows Subsystem for Linux の簡単なはなし

Embed Size (px)

Citation preview

Page 1: Windows Subsystem for Linux の簡単なはなし

Windows Subsystem for Linuxの簡単なはなし

山本 美穂

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

Blog: http://aka.ms/miyamam

Page 2: Windows Subsystem for Linux の簡単なはなし

Microsoft Linux

Page 3: Windows Subsystem for Linux の簡単なはなし

Microsoft joins theLinux Foundation

Page 4: Windows Subsystem for Linux の簡単なはなし

Azure で利用可能な技術

Applications

Clients

Infrastructure

Management

Databases &Middleware

App Frameworks& Tools

DevOps

PaaS &DevOps

Page 5: Windows Subsystem for Linux の簡単なはなし

• PowerShell• .NET Core• Visual Studio / Visual Studio Code, Xamarin• App Services (Azure PaaS)• Virtual Machine (Azure IaaS)• SQL Server v.Next

マルチプラットフォーム対応の一例

Page 6: Windows Subsystem for Linux の簡単なはなし

• Windows 10 Insider Preview build 14316 で初めて実装(要開発者モード)

• Windows で Bash が起動するというもの• Ubuntu 14.04.4 LTS ベース• Build 14936 から Ubuntu 16.04.1 LTS ベー

Anniversary Update で追加された機能

Page 7: Windows Subsystem for Linux の簡単なはなし

Windows NT の設計使命と目標• 他の 32 ビット アーキテクチャへの容易な移植性を提供すること移植性• 安定性およびマルチプロセッシング サポートを提供すること安定性• 分散コンピューティングをサポートし、複数のコンピュータがリソースを共有できるようにすること共有性• Portable Operating System Interface for UNIX( POSIX)が要求したアプリケーション プログラミング インターフェイス( API )をサポートすること互換性• 米国政府のクラス 2 ( C2 )セキュリティ機能を提供し、クラス B1 とそれ以降のパスを提供すること堅牢性

Page 8: Windows Subsystem for Linux の簡単なはなし

UNIX SDK

NT-POSIX

Hardware Abstraction Layer

Windows NT Kernel

UNIX/POSIX APIs

POSIX/UNIX Subsystem

UNIXshells

UNIX, XPG, POSIX.2 command & utilities

Workshop; gcc, g++perl, Apache, Tol/Tk,

bash, etc. X11

Motif

UNIXApplications

BSDSockets

telnetd

NFSClient/Server/Gateway

Win32 Subsystem

Win32 APIs

Windows NT sysadmin, commands

& networking

Win95 GUI

Windows NTCommand Shell

WindowsApplications

X11R6.3 server

Windows Applications

winsock

Page 9: Windows Subsystem for Linux の簡単なはなし

では、 WSL は?仮想マシンではありません! Drawbridge !

WSL

Hardware

OS

Pico process

Hyper-V

Hardware

OS/Hyper-V

Virtual Hardware

Ubuntu

VM とホストOS との間は完全に分離

コンテナに近い実装

Page 10: Windows Subsystem for Linux の簡単なはなし

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

ユーザーモードカーネルモード

Linux (Ubuntu) インスタンス

LXCore / LXSS

Bash.exe

LX Session

manager service

init /bin/bash

syscall

fork

ioctl

COM

bus

Win32 プロセス Pico プロセス

Page 11: Windows Subsystem for Linux の簡単なはなし

• Lxss manager関連するサービス

Page 12: Windows Subsystem for Linux の簡単なはなし

システムコールを実装しています。

今日現在、 384 syscall あるうち 235 件対応

Page 13: Windows Subsystem for Linux の簡単なはなし

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

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

DriveFS

• Windows 互換• 実態は OS のフォルダをマウントしている

Page 14: Windows Subsystem for Linux の簡単なはなし

Windows から WSL のファイルを編集しないで!

ファイルシステムの注意点

https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

Page 15: Windows Subsystem for Linux の簡単なはなし

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

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

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

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

Page 16: Windows Subsystem for Linux の簡単なはなし

• Microsoft ♥ Linux な話• Windows Subsystem for Linux な話• SQL Server v.Next な話

本日のアジェンダ

Page 17: Windows Subsystem for Linux の簡単なはなし

SQL Server v.Next タイムライン

2016 年 3 月private previewをアナウンス

2016 年 11 月Public Preview @ Connect()

CY2017 (今年)一般提供開始

月次でアップデート

CTP1.2( 現在)

Page 18: Windows Subsystem for Linux の簡単なはなし

よくある誤解Windows 版ないでしょ?

Page 19: Windows Subsystem for Linux の簡単なはなし

あります。コンテナで提供してます。

microsoft/mssql-server-windowshttps://hub.docker.com/r/microsoft/mssql-server-windows/ 

Page 20: Windows Subsystem for Linux の簡単なはなし

• RHEL, Ubuntu, Docker のサポート

• パッケージベースのインストール

• Open Shift, Docker Swarm のサポート

• Pacemaker を利用したクラスタ構成

• バックアップ & リストア

• SSMS から Linux 上の SQL Server のサポート

• コマンドライン : sqlcmd, bcp, sqlpackage• SQL Agent• レプリケーション

• ログ転送

• 透過的なデータ暗号化

• SCOM 管理パック

• 動的管理ビュー

プラットフォーム プログラミング インターフェース• 各種ドライバでの接続

• インメモリ OLTP & 列ストア

• データ圧縮

• Always Encrypted, 行レベルセキュリティ , 動的データマスク

• サービス ブローカー

• Change Data Capture• パーティション テーブル

• 監査

• CLR• JSON, XML

現在利用可能な機能

Page 21: Windows Subsystem for Linux の簡単なはなし

SQL Server vNext on Linux の動作マルチプラットフォームで同一の機能Platform Abstraction Layer (PAL) レイヤを通じて動作既存の SQL OS layer (“SOS”) を有効にUbuntu, RHEL, OSX, Windows で動作

Connectivity and Tools

SQL Platform Abstraction Layer (SQLPAL)

Database Engine

Analysis

Services

Integration

Services

Reporting

Services

Windows

Ubuntu, Red Hat,

Other OS in

Future?

WindowsHost Ext.

Linux Host Extension … …

SQL Platform Abstraction Layer (SQLPAL)

Win32 APIs

Host Extension mapping to OS system calls

(IO, Memory, CPU scheduling)

SQL OS API

SQL OS v2

Non-performance critical code

Performance critical code

Page 22: Windows Subsystem for Linux の簡単なはなし

SQL Server vNext の Drawbridge 実装Pico Process

Hardware

Host OS (Linux )

Database Engine

Library OS ( Windows 6.2 Kernel)

C:\binn\sqlserver.exe

C:\Windows\SYSTEM32\ntoskrnl.dll

var/opt/mssql/mssql.conf/var/opt/mssql/data/master.mdf/var/opt/mssql/data/mastlog.ldf/opt/mssql/bin/sqlserver

Page 23: Windows Subsystem for Linux の簡単なはなし

TechNet Virtual Labs で操作できますよ

• https://technet.microsoft.com/en-us/virtuallabs/bb467605.aspx

Page 24: Windows Subsystem for Linux の簡単なはなし

• 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/

• Do not change Linux files using Windows apps and toolshttps://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

• Release notes for SQL Server on Linuxhttps://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-release-notes 

参考 URL

Page 25: Windows Subsystem for Linux の簡単なはなし

• Configure SQL Server on Linux with mssql-confhttps://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-configure-mssql-conf 

• TechNet Virtual Labshttps://technet.microsoft.com/en-us/virtuallabs/bb467605.aspx 

• Public preview of the next release of SQL Serverhttps://www.microsoft.com/en-us/sql-server/sql-server-vnext-including-Linux

• Windows Command Line Tools For Developershttps://blogs.msdn.microsoft.com/commandline/

参考 URL

Page 26: Windows Subsystem for Linux の簡単なはなし

26

本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。 Microsoft は絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。 本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。 すべての当該著作権法を遵守することはお客様の責務です。 Microsoft の書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)、および目的であっても禁じられています。これらは著作権保護された権利を制限するものではありません。 Microsoft は、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。 Microsoft から書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。© 2017 Microsoft Corporation. All rights reserved.Microsoft, Windows, その他本文中に登場した各製品名は、 Microsoft Corporation の米国およびその他の国における登録商標または商標です。その他、記載されている会社名および製品名は、一般に各社の商標です。

YA

X B