Submit Search
Upload
Inside wsl
•
2 likes
•
3,897 views
Satoshi Mimura
Follow
Introduce of the internal mechanism of Windows Subsystem for linux.
Read less
Read more
Technology
Report
Share
Report
Share
1 of 56
Download now
Download to read offline
Recommended
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
VirtualTech Japan Inc.
自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
Nginx lua
Nginx lua
Moriyoshi Koizumi
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
V sphere 7 update 3 へのアップグレードについて
V sphere 7 update 3 へのアップグレードについて
Satoshi Imai
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
vSphere環境での自動化とテスト
vSphere環境での自動化とテスト
富士通クラウドテクノロジーズ株式会社
DNS再入門
DNS再入門
Takashi Takizawa
Recommended
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
OpenStackをコマンドで攻める! 構築・運用とトラブル解決 - OpenStack最新情報セミナー 2014年6月
VirtualTech Japan Inc.
自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
Nginx lua
Nginx lua
Moriyoshi Koizumi
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
V sphere 7 update 3 へのアップグレードについて
V sphere 7 update 3 へのアップグレードについて
Satoshi Imai
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
vSphere環境での自動化とテスト
vSphere環境での自動化とテスト
富士通クラウドテクノロジーズ株式会社
DNS再入門
DNS再入門
Takashi Takizawa
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
Takuya ASADA
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
VirtualTech Japan Inc.
Deploying IPv6 on OpenStack
Deploying IPv6 on OpenStack
Vietnam Open Infrastructure User Group
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
akira6592
HTTP/2 入門
HTTP/2 入門
Yahoo!デベロッパーネットワーク
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
Kentaro Ebisawa
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
VirtualTech Japan Inc.
余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」
余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」
IIJ
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
富士通クラウドテクノロジーズ株式会社
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
Kohei Tokunaga
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
Toru Makabe
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
npsg
Hyper-V、オンプレミスでもコンテナを
Hyper-V、オンプレミスでもコンテナを
Tetsuya Yokoyama
こわくない!WSL
こわくない!WSL
Miho Yamamoto
More Related Content
What's hot
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
Takuya ASADA
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
VirtualTech Japan Inc.
Deploying IPv6 on OpenStack
Deploying IPv6 on OpenStack
Vietnam Open Infrastructure User Group
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
akira6592
HTTP/2 入門
HTTP/2 入門
Yahoo!デベロッパーネットワーク
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
Kentaro Ebisawa
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
VirtualTech Japan Inc.
余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」
余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」
IIJ
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
富士通クラウドテクノロジーズ株式会社
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
Kohei Tokunaga
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
Toru Makabe
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
npsg
What's hot
(20)
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
Deploying IPv6 on OpenStack
Deploying IPv6 on OpenStack
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
HTTP/2 入門
HTTP/2 入門
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」
余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
Similar to Inside wsl
Hyper-V、オンプレミスでもコンテナを
Hyper-V、オンプレミスでもコンテナを
Tetsuya Yokoyama
こわくない!WSL
こわくない!WSL
Miho Yamamoto
IBM LinuxONE コミュニティクラウドでクラウド開発環境構築
IBM LinuxONE コミュニティクラウドでクラウド開発環境構築
K Kimura
Windows Hardware
Windows Hardware
Atomu Hidaka
SQL Server コンテナ入門(Docker編)
SQL Server コンテナ入門(Docker編)
Tomoyuki Oota
Hyper-v、オンプレミスでもコンテナを (トレノケ雲の会 mod2)
Hyper-v、オンプレミスでもコンテナを (トレノケ雲の会 mod2)
Trainocate Japan, Ltd.
Windows subsystem for linuxで始める組み込みlinux ラズパイ3のブートイメージを作ってみる-
Windows subsystem for linuxで始める組み込みlinux ラズパイ3のブートイメージを作ってみる-
Toyohiko Komatsu
Bash on ubuntu on windows
Bash on ubuntu on windows
Kentaro Inomata
WSL2使ってみた / Preview for WSL2
WSL2使ってみた / Preview for WSL2
株式会社MonotaRO Tech Team
OpenSolaris Printing Environment
OpenSolaris Printing Environment
Naruhiko Ogasawara
ZFS on Linux @ZFS Day 2011.10
ZFS on Linux @ZFS Day 2011.10
Kazuhisa Hara
Solaris (Branded) Zone Internals
Solaris (Branded) Zone Internals
Katsunori FUJIWARA
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
Takeshi HASEGAWA
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Yu Nobara
Similar to Inside wsl
(14)
Hyper-V、オンプレミスでもコンテナを
Hyper-V、オンプレミスでもコンテナを
こわくない!WSL
こわくない!WSL
IBM LinuxONE コミュニティクラウドでクラウド開発環境構築
IBM LinuxONE コミュニティクラウドでクラウド開発環境構築
Windows Hardware
Windows Hardware
SQL Server コンテナ入門(Docker編)
SQL Server コンテナ入門(Docker編)
Hyper-v、オンプレミスでもコンテナを (トレノケ雲の会 mod2)
Hyper-v、オンプレミスでもコンテナを (トレノケ雲の会 mod2)
Windows subsystem for linuxで始める組み込みlinux ラズパイ3のブートイメージを作ってみる-
Windows subsystem for linuxで始める組み込みlinux ラズパイ3のブートイメージを作ってみる-
Bash on ubuntu on windows
Bash on ubuntu on windows
WSL2使ってみた / Preview for WSL2
WSL2使ってみた / Preview for WSL2
OpenSolaris Printing Environment
OpenSolaris Printing Environment
ZFS on Linux @ZFS Day 2011.10
ZFS on Linux @ZFS Day 2011.10
Solaris (Branded) Zone Internals
Solaris (Branded) Zone Internals
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
More from Satoshi Mimura
Inside wsl
Inside wsl
Satoshi Mimura
おうちで簡単ハードウェアセキュリティ
おうちで簡単ハードウェアセキュリティ
Satoshi Mimura
某Ctf にて writeup
某Ctf にて writeup
Satoshi Mimura
Edomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみよう
Satoshi Mimura
Visual Studio で TeX 編集
Visual Studio で TeX 編集
Satoshi Mimura
3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話
3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話
Satoshi Mimura
WHAT_A_KERNEL_IRQL
WHAT_A_KERNEL_IRQL
Satoshi Mimura
アプリ作者と Windows XP
アプリ作者と Windows XP
Satoshi Mimura
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
Satoshi Mimura
マシン語によるコード実行
マシン語によるコード実行
Satoshi Mimura
Iron python と c sharp
Iron python と c sharp
Satoshi Mimura
Unix と windows 世界の融合
Unix と windows 世界の融合
Satoshi Mimura
Windows Phone 7 と XNA の世界
Windows Phone 7 と XNA の世界
Satoshi Mimura
More from Satoshi Mimura
(13)
Inside wsl
Inside wsl
おうちで簡単ハードウェアセキュリティ
おうちで簡単ハードウェアセキュリティ
某Ctf にて writeup
某Ctf にて writeup
Edomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみよう
Visual Studio で TeX 編集
Visual Studio で TeX 編集
3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話
3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話
WHAT_A_KERNEL_IRQL
WHAT_A_KERNEL_IRQL
アプリ作者と Windows XP
アプリ作者と Windows XP
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
マシン語によるコード実行
マシン語によるコード実行
Iron python と c sharp
Iron python と c sharp
Unix と windows 世界の融合
Unix と windows 世界の融合
Windows Phone 7 と XNA の世界
Windows Phone 7 と XNA の世界
Recently uploaded
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Recently uploaded
(8)
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Inside wsl
1.
Inside WSL
2.
Who am I?
三村 聡志 a.k.a. 親方 Twitter : @mimura1133 Website : http://mimumimu.net/ 最近アプリ診断してる Windows + Visual Studio が いつものスタイル。
3.
Inside WSL WSL でできること WSL
の仕組み WSL 1 WSL 2 Hacking WSL
4.
WSL でできること
5.
WSL とは? Windows Subsystem
for Linux の略 Windows 10 Fall Creators Update (1709) 以降で 利用可能
6.
WSL で出来ること WSL1, WSL2 Linux
のユーザモード環境の提供 64bit ELF のネイティブ実行 WSL2 Linux のカーネルモード環境 Linux カーネルを利用した高度な処理 iftop, mount などなど.
7.
Linux の資産がつかえる!
8.
WSL で出来ること 他にもこういうことができます: WSL 内からの
Win32 プログラムの実行 WSL で稼働している Linux への ファイルアクセス WSL 内からの Windows への ファイルアクセス
9.
WSL を使ってみる
10.
WSL を使ってみる -
1 ストアからインストール
11.
WSL を使ってみる –
2 インストールが終わったら あとは楽しむ。
12.
WSL の仕組み –
WSL1
13.
WSL1 の仕組み Windows 10
の “Pico Process” という仕組みを利用して Windows 上で ELF を実行する Windows の1プロセスの扱いのため プロセスがタスクマネージャーから見える
14.
Pico Process? From MSDN
15.
Pico Process? Windows のプロセスには下記3タイプがある Minimal
Process プロセスID は付与されるが PEB,TEB, NTDLL のリンク等は行われない NT Process 通常の Windows プロセス Pico Process Pico Provider と関連付いた Minimal Process.
16.
WSL1 の仕組み
17.
WSL1 の仕組み ELF ファイルを
pico プロセスとして起動 Pico Provider は lxss.sys (%SYSTEMROOT%SYSTEM32DRIVERSLXSS.SYS) 起動されると Windows 側では LX Session Manager Service が起動する (%SYSTEMROOT%SYSTEM32LXSSLxssManager.dll) (%SYSTEMROOT%SYSTEM32LXSSwslhost.exe) (%SYSTEMROOT%SYSTEM32wsl.exe) 表示側は conhost.exe (コマンドプロンプト等と同じ)
18.
WSL1 の仕組み ELF ファイルを
pico プロセスとして起動 Pico Provider は lxss.sys (%SYSTEMROOT%SYSTEM32DRIVERSLXSS.SYS) Pico Provider が適宜システムコールを理解し Windows Kernel に指示を出す 実行権限は wsl.exe と同じ.
19.
WSL1 の仕組み なおファイルについては すべてそのまま保存されている
20.
WSL の仕組み –
WSL2
21.
WSL2 の仕組み From channel
9.
22.
WSL2 の仕組み カスタマイズされた Linux
Kernel を利用する ELF ファイルはその上で実行する Kernel Image: 通常は %SYSTEMROOT%System32lxsstools 以下のものを利用
23.
余談ですが Windows 10 では Windows
Hypervisor Platform が提供 Hyper-V の仕組みを利用して VM を実行できる API 群 管理者権限は不要 C#, C++ 向けの API 実装は存在する https://github.com/mimura1133/WHVPSharp
24.
WSL2 を利用するために 現時点で WSL2
用の ディストリビューションは出ていない 既存のものを変換して作る wsl --set-version ubuntu 2
25.
WSL2 の仕組み
26.
WSL2 の仕組み 起動時に Linux
VM (Optimized) を起動 Lightweight VM が立ち上がる WSL1 同様、起動されると Windows 側では LX Session Manager Service が起動する (%SYSTEMROOT%SYSTEM32LXSSLxssManager.dll) (%SYSTEMROOT%SYSTEM32LXSSwslhost.exe) (%SYSTEMROOT%SYSTEM32wsl.exe)
27.
WSL2 の仕組み WSL を起動すると 下記のように
“WSL” という名前の Docker が起動する WSL を閉じても走り続ける wsl --terminate で止められる.
28.
WSL2 の仕組み ファイルは VHDX
の下に保存される Hyper-V の仮想ディスクイメージ (ext4) Win – Linux は 9p Protocol. (Plan9)
29.
Hacking WSL – WSL
を使いやすくしよう
30.
コマンドを使いやすくする 利用したい Linux コマンドと同じ名前の バッチファイルを作成する 下記の内容を書く: @bash
-c "%~n0 %*"
31.
コマンドを使いやすくする
32.
コマンドを使いやすくする あとは PATH を通す Windows
と Linux のコラボができる
33.
ユーザディレクトリを合わせる Linux の userdir
を Windows の %userprofile% に リンクさせる /mnt/c/Users 以下に通常存在する “ln –s” でリンクを張れば OK.
34.
Hacking WSL – WSL
の深い挙動の違いを見る
35.
挙動の違いを見る WSL1 と WSL2
は VM か Pico Process かの違いがある それに合わせていくつかの挙動が異なる
36.
プロセスの見え方 WSL1 Pico Process のため 1つ1つがタスクマネージャから見える WSL2 VM
のため vmmem, vmwp.exe が 起動する
37.
Processes (WSL1) Windows 上からプロセスが見える WSL
が起動すると wslhost.exe がドライバと通信し 結果を conhost.exe が描画する
38.
Processes (WSL2) Windows 上からはこれしか見えない ただし
hcsdiag からは下記のように見える
39.
mount の挙動の違い WSL1 root は
wslfs (実体は NTFS 上にある) マウントできない WSL2 root は ext4 (実体は VHDX 上にある) マウントできる
40.
mount (WSL1)
41.
mount (WSL2)
42.
Tcpdump の挙動の違い WSL1 Pico Provider
(lxss.sys) に ローパケット処理が実装されていない WSL2 動作する 同じ理由で iptables, nmap 等も動作する
43.
tcpdump (WSL1)
44.
tcpdump (WSL2)
45.
ip addr の挙動の違い WSL
1 Windows とアドレス・ポートを共有 WSL 2 Windows 側で NAPT される
46.
ip addr (WSL1) Windows
とおなじアドレスが 付与されていることが分かる
47.
ip addr (WSL2) NAPT
されている
48.
GDB の挙動の違い WSL1 Pico Process
で Emulation しているため アドレスが Linux らしいものとは異なる WSL2 Linux 上のためアドレスがキッチリ
49.
gdb (WSL1)
50.
gdb (WSL2)
51.
WSL まとめ
52.
WSL まとめ Windows Subsystem
for Linux は Windows 上で Linux の資産を活かす技術 WSL1 は 直接 Windows で実行 WSL2 は Docker 上で実行 再現度は WSL2 が高く、気軽さは WSL1 が高い
53.
余談集
54.
フォレンジックしたい WSL1 NTFS 上にファイルが書かれる 基本的にはWindows のフォレンジックでよい WSL2 vhdx
ファイルを読む こういうツールを使って raw にすればあとは楽 http://euee.web.fc2.com/tool/nhc.html
55.
フォレンジックしたい プロセスのログとしては下記の起動ログを追う wslhost.exe
56.
検知システムを書きたい! (WSL1) PsSetCreateProcessNotifyRoutineEx2
PsSetCreateThreadNotifyRoutineEx この関数を使ってフックを掛ける typedef enum _SUBSYSTEM_INFORMATION_TYPE { SubsystemInformationTypeWin32, SubsystemInformationTypeWSL, MaxSubsystemInformationType }
Download now