Windows Subsystem for Linux の簡単なはなし
-
Upload
miho-yamamoto -
Category
Engineering
-
view
26 -
download
5
Transcript of Windows Subsystem for Linux の簡単なはなし
Windows Subsystem for Linuxの簡単なはなし
山本 美穂
日本マイクロソフト株式会社テクニカルエバンジェリスト Twitter: @mihochannel
Blog: http://aka.ms/miyamam
Microsoft Linux
Microsoft joins theLinux Foundation
Azure で利用可能な技術
Applications
Clients
Infrastructure
Management
Databases &Middleware
App Frameworks& Tools
DevOps
PaaS &DevOps
• PowerShell• .NET Core• Visual Studio / Visual Studio Code, Xamarin• App Services (Azure PaaS)• Virtual Machine (Azure IaaS)• SQL Server v.Next
マルチプラットフォーム対応の一例
• Windows 10 Insider Preview build 14316 で初めて実装(要開発者モード)
• Windows で Bash が起動するというもの• Ubuntu 14.04.4 LTS ベース• Build 14936 から Ubuntu 16.04.1 LTS ベー
ス
Anniversary Update で追加された機能
Windows NT の設計使命と目標• 他の 32 ビット アーキテクチャへの容易な移植性を提供すること移植性• 安定性およびマルチプロセッシング サポートを提供すること安定性• 分散コンピューティングをサポートし、複数のコンピュータがリソースを共有できるようにすること共有性• Portable Operating System Interface for UNIX( POSIX)が要求したアプリケーション プログラミング インターフェイス( API )をサポートすること互換性• 米国政府のクラス 2 ( C2 )セキュリティ機能を提供し、クラス B1 とそれ以降のパスを提供すること堅牢性
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
では、 WSL は?仮想マシンではありません! Drawbridge !
WSL
Hardware
OS
Pico process
Hyper-V
Hardware
OS/Hyper-V
Virtual Hardware
Ubuntu
VM とホストOS との間は完全に分離
コンテナに近い実装
こんな構成で動いています
ユーザーモードカーネルモード
Linux (Ubuntu) インスタンス
LXCore / LXSS
Bash.exe
LX Session
manager service
init /bin/bash
syscall
fork
ioctl
COM
bus
Win32 プロセス Pico プロセス
• Lxss manager関連するサービス
システムコールを実装しています。
今日現在、 384 syscall あるうち 235 件対応
ファイルシステムの特徴VolFS
• Linux ファイルシステム機能をフルで実装• Permission• シンボリックリンク• ファイル名特性• Windows 非互換
DriveFS
• Windows 互換• 実態は OS のフォルダをマウントしている
Windows から WSL のファイルを編集しないで!
ファイルシステムの注意点
https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/
• 動いた、動かない、シェル芸、なんでも OK
• UserVoice (Ideas & asks): https://aka.ms/winbashuv
• GitHub Issues: https://aka.ms/winbashgithub
フィードバックお願いします!
• Microsoft ♥ Linux な話• Windows Subsystem for Linux な話• SQL Server v.Next な話
本日のアジェンダ
SQL Server v.Next タイムライン
2016 年 3 月private previewをアナウンス
2016 年 11 月Public Preview @ Connect()
CY2017 (今年)一般提供開始
月次でアップデート
CTP1.2( 現在)
よくある誤解Windows 版ないでしょ?
あります。コンテナで提供してます。
microsoft/mssql-server-windowshttps://hub.docker.com/r/microsoft/mssql-server-windows/
• 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
現在利用可能な機能
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
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
TechNet Virtual Labs で操作できますよ
• https://technet.microsoft.com/en-us/virtuallabs/bb467605.aspx
• 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
• 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
26
本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。 Microsoft は絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。 本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。 すべての当該著作権法を遵守することはお客様の責務です。 Microsoft の書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)、および目的であっても禁じられています。これらは著作権保護された権利を制限するものではありません。 Microsoft は、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。 Microsoft から書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。© 2017 Microsoft Corporation. All rights reserved.Microsoft, Windows, その他本文中に登場した各製品名は、 Microsoft Corporation の米国およびその他の国における登録商標または商標です。その他、記載されている会社名および製品名は、一般に各社の商標です。
YA
X B