@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/windows-virtualization-internals-wsl2-sandbox-containers/#article>
    schema:about <https://comcomponent.com/knowledge/wsl2/>, <https://comcomponent.com/knowledge/windows-sandbox/>, <https://comcomponent.com/knowledge/container-process-isolation/>, <https://comcomponent.com/knowledge/container-hyperv-isolation/> ;
    schema:mentions <https://comcomponent.com/knowledge/lightweight-utility-vm/>, <https://comcomponent.com/knowledge/linux-kernel/>, <https://comcomponent.com/knowledge/wslconfig/>, <https://comcomponent.com/knowledge/automemoryreclaim/>, <https://comcomponent.com/knowledge/wsl2-cached-memory/>, <https://comcomponent.com/knowledge/dynamic-base-image/>, <https://comcomponent.com/knowledge/direct-map/>, <https://comcomponent.com/knowledge/memory-footprint/>, <https://comcomponent.com/knowledge/security-boundary/>, <https://comcomponent.com/knowledge/untrusted-code-execution/>, <https://comcomponent.com/knowledge/wsb-configuration-file/>, <https://comcomponent.com/knowledge/nested-virtualization/>, <https://comcomponent.com/knowledge/disk-footprint/>, <https://comcomponent.com/knowledge/namespace-isolation/>, <https://comcomponent.com/knowledge/same-os-file-placement/>, <https://comcomponent.com/knowledge/cross-os-file-access/> .

<https://comcomponent.com/knowledge/wsl2/> a skos:Concept ;
    skos:prefLabel "WSL 2"@ja ;
    skos:definition "WSLの現行既定のアーキテクチャ。管理された軽量ユーティリティVMの中でMicrosoftビルドのLinuxカーネルを動かし、各ディストリビューションをVM内の隔離されたコンテナーとして実行する。"@ja ;
    skos:altLabel "WSL2" ;
    ks:uses <https://comcomponent.com/knowledge/lightweight-utility-vm/> ;
    ks:uses <https://comcomponent.com/knowledge/linux-kernel/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/wslconfig/> .

<https://comcomponent.com/knowledge/windows-sandbox/> a skos:Concept ;
    skos:prefLabel "Windows サンドボックス"@ja ;
    skos:definition "使い捨てのクリーンなデスクトップ環境を数分で用意できる、Windows Pro/Enterprise/Education系で使えるホスト同系統の軽量な仮想化検証環境。"@ja ;
    skos:altLabel "Windows Sandbox" ;
    ks:uses <https://comcomponent.com/knowledge/dynamic-base-image/> ;
    ks:uses <https://comcomponent.com/knowledge/direct-map/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/wsb-configuration-file/> .

<https://comcomponent.com/knowledge/container-process-isolation/> a skos:Concept ;
    skos:prefLabel "プロセス分離"@ja ;
    skos:definition "Windowsコンテナーの分離モードの1つ。コンテナーがホストとカーネルを共有し、ファイルシステムやレジストリなどの名前空間の仮想化で分離する。"@ja ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/untrusted-code-execution/> ;
    ks:uses <https://comcomponent.com/knowledge/namespace-isolation/> .

<https://comcomponent.com/knowledge/container-hyperv-isolation/> a skos:Concept ;
    skos:prefLabel "Hyper-V分離"@ja ;
    skos:definition "Windowsコンテナーの分離モードの1つ。各コンテナーが高度に最適化されたVMの中で実行され、実質的に専用のカーネルを持つ。"@ja ;
    ks:implements <https://comcomponent.com/knowledge/security-boundary/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/untrusted-code-execution/> ;
    ks:uses <https://comcomponent.com/knowledge/lightweight-utility-vm/> .

<https://comcomponent.com/knowledge/lightweight-utility-vm/> a skos:Concept ;
    skos:prefLabel "軽量ユーティリティVM"@ja ;
    skos:definition "特定用途向けに最適化され、利用者から隠れて管理される軽量な仮想マシン。WSL2やHyper-V分離コンテナーの実行基盤。"@ja .

<https://comcomponent.com/knowledge/linux-kernel/> a skos:Concept ;
    skos:prefLabel "Linuxカーネル"@ja ;
    skos:definition "オープンソースのUnix系OSカーネル。OpenHarmony標準システムのカーネルとして採用され、GPLv2ライセンスに従う。"@ja ;
    skos:altLabel "Linux" .

<https://comcomponent.com/knowledge/wslconfig/> a skos:Concept ;
    skos:prefLabel ".wslconfig"@ja ;
    skos:definition "WSL2のVM全体に適用される設定ファイル。メモリ上限・プロセッサ数・スワップなどを構成する。"@ja .

<https://comcomponent.com/knowledge/wsl2-cached-memory/> a skos:Concept ;
    skos:prefLabel "WSL2のキャッシュメモリ"@ja ;
    skos:definition "WSL2のVMがファイルキャッシュとして保持するメモリ。プロセスが解放したメモリの自動返却とは別の経路で回収される。"@ja ;
    ks:configuredBy <https://comcomponent.com/knowledge/automemoryreclaim/> .

<https://comcomponent.com/knowledge/automemoryreclaim/> a skos:Concept ;
    skos:prefLabel "autoMemoryReclaim設定"@ja ;
    skos:definition ".wslconfigの実験的設定。WSL2のVMが保持するキャッシュメモリの自動回収を制御し、既定値はdropCache。"@ja .

<https://comcomponent.com/knowledge/dynamic-base-image/> a skos:Concept ;
    skos:prefLabel "動的ベースイメージ"@ja ;
    skos:definition "ホストにインストール済みのWindowsの不変ファイルの共有と、可変ファイルのクリーンなコピーの組み合わせで、起動可能な完全イメージを構成するWindows Sandboxの技術。"@ja ;
    ks:mitigates <https://comcomponent.com/knowledge/disk-footprint/> .

<https://comcomponent.com/knowledge/direct-map/> a skos:Concept ;
    skos:prefLabel "ダイレクトマップ"@ja ;
    skos:definition "Windows SandboxがOSバイナリについてホストと同じ物理メモリページを使うメモリ共有技術。"@ja ;
    ks:mitigates <https://comcomponent.com/knowledge/memory-footprint/> ;
    ks:requires <https://comcomponent.com/knowledge/dynamic-base-image/> .

<https://comcomponent.com/knowledge/memory-footprint/> a skos:Concept ;
    skos:prefLabel "メモリフットプリント"@ja ;
    skos:definition "仮想環境の実行がホストの物理メモリに占める使用量。"@ja .

<https://comcomponent.com/knowledge/wsb-configuration-file/> a skos:Concept ;
    skos:prefLabel ".wsb構成ファイル"@ja ;
    skos:definition "ネットワーク・共有フォルダ・メモリ上限・vGPU・クリップボード共有・起動時コマンドなどをXMLで固定できる、Windows サンドボックスの構成ファイル。"@ja ;
    skos:altLabel ".wsb" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/untrusted-code-execution/> .

<https://comcomponent.com/knowledge/security-boundary/> a skos:Concept ;
    skos:prefLabel "セキュリティ境界"@ja ;
    skos:definition "Microsoftが越境をセキュリティ脆弱性として扱い、修正を保守する分離の境界。"@ja .

<https://comcomponent.com/knowledge/untrusted-code-execution/> a skos:Concept ;
    skos:prefLabel "信頼できないコードの実行"@ja ;
    skos:definition "出所や挙動を信頼できないプログラムや検体を実行すること。"@ja .

<https://comcomponent.com/knowledge/nested-virtualization/> a skos:Concept ;
    skos:prefLabel "入れ子の仮想化"@ja ;
    skos:definition "ハイパーバイザー上のVMの中でさらにハイパーバイザーを動かす構成。Hyper-VではWSL2やHyper-V分離コンテナーのための1段の入れ子が本番でサポートされる。"@ja .

<https://comcomponent.com/knowledge/disk-footprint/> a skos:Concept ;
    skos:prefLabel "ディスクフットプリント"@ja ;
    skos:definition "仮想環境がホストのディスクに占める使用量。"@ja .

<https://comcomponent.com/knowledge/namespace-isolation/> a skos:Concept ;
    skos:prefLabel "名前空間の分離"@ja ;
    skos:definition "ファイルシステム・レジストリ・ネットワークポート・プロセスID空間・オブジェクトマネージャー名前空間などを名前空間ごとに仮想化し、コンテナーから見える実体を分ける分離手法。"@ja .

<https://comcomponent.com/knowledge/same-os-file-placement/> a skos:Concept ;
    skos:prefLabel "同一OS側へのファイル配置"@ja ;
    skos:definition "プロジェクトファイルを、それを操作するツールと同じOSのファイルシステム側に置く方針。OSの境界を越えるファイルI/Oを避けるための原則。"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/cross-os-file-access/> .

<https://comcomponent.com/knowledge/cross-os-file-access/> a skos:Concept ;
    skos:prefLabel "OS間ファイルアクセス"@ja ;
    skos:definition "WSL2のLinux側からWindows側のファイル(/mnt/cなど)へのアクセスのように、OSの境界を越えて行うファイルI/O。"@ja .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wsl2/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/lightweight-utility-vm/> ;
    schema:description "WSL2は管理された軽量ユーティリティVMの中でLinuxを動かし、各ディストリビューションはそのVM内の隔離されたコンテナーとして動く。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/wsl/about> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wsl2/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/linux-kernel/> ;
    schema:description "WSL2はMicrosoftがStableブランチからビルドした本物のLinuxカーネルを動かし、Store配布のWSLではカーネルはWSLパッケージとして更新される(wsl --updateで適用)。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/wsl/compare-versions> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wsl2/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/wslconfig/> ;
    schema:description "WSL2のVM全体のメモリ上限・プロセッサ数・スワップは.wslconfigで構成できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/wsl/wsl-config> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wsl2-cached-memory/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/automemoryreclaim/> ;
    schema:description "WSL2のキャッシュメモリの自動回収は.wslconfigの実験的設定autoMemoryReclaimで制御でき、既定値dropCacheでは自動的に回収される。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/wsl/wsl-config> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-sandbox/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dynamic-base-image/> ;
    schema:description "Windows Sandboxは、ホストの不変OSファイルの共有と可変ファイルのクリーンなコピーから起動可能な完全イメージを構成し、Windowsの複製を保存せずに起動する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-architecture> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-sandbox/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/direct-map/> ;
    schema:description "Windows Sandboxは、OSバイナリについてホストと同じ物理メモリページを使うダイレクトマップでメモリを共有する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-architecture> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/direct-map/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/memory-footprint/> ;
    schema:description "OSバイナリの物理ページをホストと共有することで、従来型VMと比べてメモリフットプリントが小さくなる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-architecture> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-sandbox/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/wsb-configuration-file/> ;
    schema:description "既定で有効なネットワーク接続などのWindows Sandboxの機能は、.wsb構成ファイルで無効化・制御できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/security/application-security/application-isolation/windows-sandbox/> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/container-hyperv-isolation/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/security-boundary/> ;
    schema:description "Windowsコンテナーの分離モードのうち、ハイパーバイザー分離のコンテナーのみが堅牢なセキュリティ境界とされ、脆弱性対応の対象として保守される。"@ja ;
    ks:evidence <https://learn.microsoft.com/virtualization/windowscontainers/manage-containers/container-security> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/container-process-isolation/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/untrusted-code-execution/> ;
    schema:description "プロセス分離のコンテナーはホストとカーネルを共有するため、敵対的なマルチテナントや信頼できないコードの実行には推奨されない。"@ja ;
    ks:evidence <https://learn.microsoft.com/virtualization/windowscontainers/manage-containers/container-security> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/container-hyperv-isolation/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/untrusted-code-execution/> ;
    schema:description "信頼できないコードの実行には、コンテナーごとに実質的な専用カーネルを持つHyper-V分離を選ぶべきとされる。"@ja ;
    ks:evidence <https://learn.microsoft.com/virtualization/windowscontainers/manage-containers/container-security> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wsl2/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/nested-virtualization/> ;
    schema:description "Hyper-V VMの中でWSL2を動かす場合は入れ子の仮想化が必要であり、1段の入れ子がサポートされる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/virtualization/hyper-v/nested-virtualization> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/container-hyperv-isolation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/lightweight-utility-vm/> ;
    schema:description "Hyper-V分離では各コンテナーが高度に最適化された軽量VMの中で動き、実質的に専用のカーネルを持つ。"@ja ;
    ks:evidence <https://learn.microsoft.com/virtualization/windowscontainers/manage-containers/hyperv-container> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/direct-map/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/dynamic-base-image/> ;
    schema:description "ダイレクトマップは、Sandboxがホストと同じOSイメージを動かすことを前提に、OSバイナリの物理ページ共有を可能にする。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-architecture> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dynamic-base-image/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/disk-footprint/> ;
    schema:description "Windowsの複製をダウンロードも保存もせず、インストール後のベースイメージは約500MBに収まる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-architecture> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/container-hyperv-isolation/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/nested-virtualization/> ;
    schema:description "Hyper-V VMの中でHyper-V分離コンテナーを動かす場合は入れ子の仮想化が必要であり、1段の入れ子が本番でサポートされる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/virtualization/hyper-v/nested-virtualization> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/container-process-isolation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/namespace-isolation/> ;
    schema:description "プロセス分離は、ファイルシステム・レジストリ・ネットワークポート・プロセスID空間・オブジェクトマネージャー名前空間などの名前空間ごとの仮想化でコンテナーを分離する。"@ja ;
    ks:evidence <https://learn.microsoft.com/virtualization/windowscontainers/manage-containers/hyperv-container> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wsb-configuration-file/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/untrusted-code-execution/> ;
    schema:description "検体の実行にSandboxを使う場合は、.wsb構成ファイルでネットワークやクリップボードのリダイレクトを無効化して分離を強めることが本記事の推奨である。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/security/application-security/application-isolation/windows-sandbox/>, <https://learn.microsoft.com/virtualization/windowscontainers/manage-containers/container-security> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/same-os-file-placement/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/cross-os-file-access/> ;
    schema:description "OSの境界を越えるファイルI/Oは遅くなりやすいため、プロジェクトファイルを操作するツールと同じOS側に置くことが推奨される。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/wsl/compare-versions> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .
