<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on kenji.blog</title><link>http://kenji.blog/de/tags/linux/</link><description>Recent content in Linux on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>kenjinote</copyright><lastBuildDate>Sun, 13 Sep 2026 07:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/de/tags/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>Hyper-V vs WSL2: Vergleich von Virtualisierungstechnologien auf Windows</title><link>http://kenji.blog/de/p/hyper-v-vs-wsl2-windows-virtualization/</link><pubDate>Sun, 13 Sep 2026 07:00:00 +0900</pubDate><guid>http://kenji.blog/de/p/hyper-v-vs-wsl2-windows-virtualization/</guid><description>&lt;img src="http://kenji.blog/p/hyper-v-vs-wsl2-windows-virtualization/img/eyecatch.jpg" alt="Featured image of post Hyper-V vs WSL2: Vergleich von Virtualisierungstechnologien auf Windows" />&lt;h2 id="1-einführung-die-evolution-der-virtualisierung-unter-windows">1. Einführung: Die Evolution der Virtualisierung unter Windows
&lt;/h2>&lt;p>Die Virtualisierungstechnologie auf der Windows-Plattform hat sich in den letzten Jahrzehnten dramatisch entwickelt. Früher waren Type-2-Hypervisoren von Drittanbietern (wie VMware Workstation und VirtualBox) der Mainstream, aber seit Microsoft &amp;ldquo;Hyper-V&amp;rdquo; in Windows Server 2008 eingeführt hat, sind Type-1-Hypervisoren auch in Desktop-Betriebssysteme wie Windows 10/11 integriert.&lt;/p>
&lt;p>In den letzten Jahren hat &amp;ldquo;WSL2 (Windows Subsystem for Linux 2)&amp;rdquo; bei Entwicklern die meiste Aufmerksamkeit erregt. Während WSL1 auf die Übersetzung von Systemaufrufen (Translation) angewiesen war, nutzt WSL2 eine &amp;ldquo;Lightweight Utility VM&amp;rdquo;, die Hyper-V-Technologie anwendet, um vollständige Linux-Kompatibilität und dramatische Leistungsverbesserungen zu erzielen.&lt;/p>
&lt;p>In diesem Artikel werden wir die Architektur, Leistung (CPU, Speicher, Festplatten-I/O), Netzwerkkonfiguration und optimale Anwendungsfälle dieser beiden leistungsstarken Virtualisierungstechnologien – der voll ausgestatteten &amp;ldquo;Hyper-V&amp;rdquo; und der auf Entwicklererfahrung fokussierten &amp;ldquo;WSL2&amp;rdquo; – mit tiefgreifenden technischen Details ausführlich vergleichen und erklären.&lt;/p>
&lt;hr>
&lt;h2 id="2-grundlegende-theorie-von-hypervisoren-und-architekturvergleich">2. Grundlegende Theorie von Hypervisoren und Architekturvergleich
&lt;/h2>&lt;p>Um die Virtualisierungstechnologie zu verstehen, ist die Typklassifizierung von Hypervisoren (Virtual Machine Monitors: VMM) unerlässlich.&lt;/p>
&lt;h3 id="21-unterschiede-zwischen-type-1--und-type-2-hypervisoren">2.1. Unterschiede zwischen Type-1- und Type-2-Hypervisoren
&lt;/h3>&lt;p>Ein Hypervisor ist eine Softwareschicht, die den Hardwarezugriff abstrahiert und es mehreren Betriebssystemen (Gastbetriebssystemen) ermöglicht, gleichzeitig auf einer einzigen physischen Maschine zu laufen.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Type 1 (Bare-Metal)&lt;/strong>: Läuft direkt auf der Hardware. Das Konzept eines Host-Betriebssystems existiert nicht (streng genommen kann es ein Management-Betriebssystem mit Privilegien geben), was einen extrem geringen Overhead aufweist und hohe Leistung sowie Sicherheit bietet. Beispiele: Hyper-V, VMware ESXi, Xen.&lt;/li>
&lt;li>&lt;strong>Type 2 (Hosted)&lt;/strong>: Läuft als Anwendung auf einem Host-Betriebssystem (wie Windows oder macOS). Alle Hardwarezugriffe laufen über das Host-Betriebssystem, was zu einem größeren Overhead führt. Beispiele: VMware Workstation, Oracle VirtualBox.&lt;/li>
&lt;/ul>
&lt;p>Windows Hyper-V ist ein reiner &lt;strong>Type-1-Hypervisor&lt;/strong>. Wenn Hyper-V aktiviert ist, läuft das Windows-Betriebssystem, mit dem der Benutzer normalerweise interagiert, tatsächlich innerhalb einer speziellen virtuellen Maschine, die als &amp;ldquo;Root-Partition (Root Partition)&amp;rdquo; bezeichnet wird.&lt;/p>
&lt;h3 id="22-architekturdetails-von-hyper-v">2.2. Architekturdetails von Hyper-V
&lt;/h3>&lt;p>Die Hyper-V-Architektur verwendet ein Microkernel-Design und basiert auf logischen Isolationseinheiten, die als Partitionen (Partitions) bezeichnet werden.&lt;/p>
&lt;pre class="mermaid">
graph TD
A[&amp;#34;Hardware (CPU, RAM, Festplatte, NIC)&amp;#34;] --&amp;gt; B[&amp;#34;Windows Hypervisor (Ring -1)&amp;#34;]
B --&amp;gt; C[&amp;#34;Root-Partition (Windows OS)&amp;#34;]
B --&amp;gt; D[&amp;#34;Kind-Partition 1 (Windows VM)&amp;#34;]
B --&amp;gt; E[&amp;#34;Kind-Partition 2 (Linux VM)&amp;#34;]
C --&amp;gt; F[&amp;#34;VMBus (Virtual Machine Bus)&amp;#34;]
D --&amp;gt; F
E --&amp;gt; F
C --&amp;gt; G[&amp;#34;VID (Virtualization Infrastructure Driver)&amp;#34;]
C --&amp;gt; H[&amp;#34;VMWP.exe (Worker-Prozess)&amp;#34;]
&lt;/pre>
&lt;ul>
&lt;li>&lt;strong>Windows Hypervisor&lt;/strong>: Läuft im am höchsten privilegierten CPU-Status (Ring -1 oder VMX Root Mode) und ist nur für die Speicherzuweisung und CPU-Planung zuständig. Er enthält keine Gerätetreiber.&lt;/li>
&lt;li>&lt;strong>Root-Partition&lt;/strong>: Die Partition, in der das Host-Windows-Betriebssystem läuft. Sie verfügt über alle Gerätetreiber und steuert die Hardware direkt. Sie bietet auch Verwaltungsfunktionen für die Kind-Partitionen (wie WMI-Provider und VMWP.exe).&lt;/li>
&lt;li>&lt;strong>Kind-Partition (Child Partition)&lt;/strong>: Die Partition, in der das Gastbetriebssystem läuft. Ein direkter Zugriff auf die Hardware ist nicht gestattet; stattdessen sendet sie über einen logischen Memory-Sharing-Bus namens &amp;ldquo;VMBus&amp;rdquo; I/O-Anfragen (Synthetic I/O) an die Root-Partition.&lt;/li>
&lt;/ul>
&lt;h3 id="23-wie-wsl2-und-die-lightweight-utility-vm-funktionieren">2.3. Wie WSL2 und die Lightweight Utility VM funktionieren
&lt;/h3>&lt;p>WSL2 nutzt die gleiche zugrundeliegende Type-1-Hypervisor-Technologie wie Hyper-V, verwendet jedoch eine Unterfunktion namens &amp;ldquo;Virtual Machine Platform (VMP)&amp;rdquo;, die sich von einer voll funktionsfähigen Hyper-V-Maschine unterscheidet.&lt;/p>
&lt;p>Die in WSL2 verwendete &amp;ldquo;Lightweight Utility VM&amp;rdquo; eliminiert vollständig die Legacy-Hardware-Emulation (wie virtuelles BIOS oder virtuelles Motherboard), über die herkömmliche VMs verfügen.&lt;/p>
&lt;pre class="mermaid">
graph TD
A[&amp;#34;Windows Host OS (User Space)&amp;#34;]
B[&amp;#34;NTFS-Dateisystem&amp;#34;]
C[&amp;#34;9P-Protokoll-Server (Plan 9)&amp;#34;]
D[&amp;#34;Lightweight Utility VM (Linux Kernel)&amp;#34;]
E[&amp;#34;ext4.vhdx (Virtuelle Festplatte)&amp;#34;]
F[&amp;#34;Linux User Space (WSL2-Distributionen)&amp;#34;]
A --&amp;gt; C
C --&amp;gt;| &amp;#34;Betriebssystemübergreifende Dateifreigabe&amp;#34; | D
D --&amp;gt; E
D --&amp;gt; F
&lt;/pre>
&lt;p>Die größten Merkmale von WSL2 sind seine &lt;strong>Startgeschwindigkeit&lt;/strong> und &lt;strong>nahtlose Integration mit dem Host-Betriebssystem&lt;/strong>. Der Linux-Kernel bootet in weniger als ein paar Sekunden und greift über das &lt;code>9P&lt;/code>-Netzwerkdateisystemprotokoll von Plan 9 auf das Dateisystem der Windows-Seite (NTFS) zu.&lt;/p>
&lt;hr>
&lt;h2 id="3-gründliche-leistungsanalyse-rechenressourcen-und-io">3. Gründliche Leistungsanalyse: Rechenressourcen und I/O
&lt;/h2>&lt;p>Die Leistung einer virtuellen Maschine drückt sich als die Summe des Overheads in CPU-, Speicher- und Festplatten-I/O-Komponenten aus.&lt;/p>
&lt;h3 id="31-cpu--und-kontextwechsel-overhead">3.1. CPU- und Kontextwechsel-Overhead
&lt;/h3>&lt;p>Sowohl Hyper-V als auch WSL2 verwenden hardwareunterstützte Virtualisierung (Intel VT-x / AMD-V). CPU-Befehle werden grundsätzlich mit nativer Geschwindigkeit ausgeführt, aber bei der Ausführung privilegierter Befehle oder der Verarbeitung von I/O tritt ein Interrupt namens &amp;ldquo;VM Exit&amp;rdquo; auf, und es erfolgt ein Kontextwechsel zum Hypervisor.&lt;/p>
&lt;p>Der CPU-Overhead $T_{overhead}$ zu dieser Zeit kann durch das folgende mathematische Modell ausgedrückt werden:&lt;/p>
$$ T_{overhead} = \sum_{i=1}^{N} (t_{vm\_exit} + t_{hypercall\_process} + t_{vm\_entry}) $$&lt;p>Wobei:&lt;/p>
&lt;ul>
&lt;li>$N$: Anzahl der VM Exits pro Zeiteinheit&lt;/li>
&lt;li>$t_{vm\_exit}$: Übergangszeit vom Gast zum Hypervisor&lt;/li>
&lt;li>$t_{hypercall\_process}$: Verarbeitungszeit für I/O oder Interrupts über den VMBus&lt;/li>
&lt;li>$t_{vm\_entry}$: Rückkehrzeit vom Hypervisor zum Gast&lt;/li>
&lt;/ul>
&lt;p>Da WSL2 keine Legacy-Emulation aufweist, ist $t_{hypercall\_process}$ extrem gering und optimiert. Daher bleibt bei reinen CPU-Berechnungen (wie z.B. Kernel-Kompilierung oder Inferenz von Machine-Learning-Modellen) die Leistungseinbuße im Vergleich zu einer Bare-Metal-Umgebung innerhalb weniger Prozent.&lt;/p>
&lt;h3 id="32-mechanismen-der-speicherzuweisung">3.2. Mechanismen der Speicherzuweisung
&lt;/h3>&lt;p>Es gibt einen klaren Unterschied in der Designphilosophie zwischen den beiden in Bezug auf Speicherverwaltungsmethoden.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Hyper-V (Dynamic Memory)&lt;/strong>: Die Root-Partition weist je nach Speicherbedarf der Gast-VM dynamisch Speicher zu und gibt ihn wieder frei. Allerdings wird Speicher, der als Page-Cache im Gast-Betriebssystem reserviert wurde, tendenziell nur dann freigegeben, wenn das System unter Druck steht.&lt;/li>
&lt;li>&lt;strong>WSL2 (Dynamische Speicherfreigabe)&lt;/strong>: WSL2 verfügt über einen eigenen Mechanismus zur regelmäßigen Rückgabe (Reclaim) von Speicher (einschließlich Cache), der innerhalb der Linux-VM nicht mehr benötigt wird, an den Windows-Host. In frühen Versionen von WSL2 gab es ein Problem, bei dem der Linux-Page-Cache den Windows-Speicher aufzehrte (Aufblähung des Vmmem-Prozesses), was jedoch mittlerweile durch Kernel-Patches behoben wurde.&lt;/li>
&lt;/ul>
&lt;h3 id="33-eigenschaften-von-festplatten-io-vhdx-vs-ext4vhdx">3.3. Eigenschaften von Festplatten-I/O (VHDX vs ext4.vhdx)
&lt;/h3>&lt;p>Festplatten-I/O ist der am häufigsten auftretende Flaschenhals in der Leistung virtueller Maschinen.&lt;/p>
&lt;p>Die I/O-Latenz $L_{total}$ wird wie folgt berechnet:&lt;/p>
$$ L_{total} = L_{guest\_fs} + L_{vmbus} + L_{host\_fs} + L_{physical\_disk} $$&lt;p>&lt;strong>Im Falle von Hyper-V&lt;/strong>:
Typische Hyper-V-Gäste verwenden virtuelle Festplatten im &lt;code>VHDX&lt;/code>-Format. I/O-Anfragen, die vom Dateisystem (ext4 oder NTFS) innerhalb des Gastbetriebssystems ausgegeben werden, durchlaufen den VMBus-Block-Device-Storage-Treiber (storvsc) und werden als Zugriff auf die VHDX-Datei auf dem NTFS-Dateisystem der Windows-Seite verarbeitet.&lt;/p>
&lt;p>&lt;strong>Im Falle von WSL2&lt;/strong>:
WSL2-Linux-Distributionen laufen auf einem nativen ext4-Dateisystem, das in einer dedizierten &lt;code>ext4.vhdx&lt;/code>-Datei erstellt wurde. Dateioperationen innerhalb von Linux (wie im &lt;code>~&lt;/code> Verzeichnis) bieten eine native Leistung, die der von Hyper-V oben entspricht.
Wenn Sie jedoch &lt;strong>von WSL2-Linux auf Dateien auf der Windows-Seite zugreifen (wie &lt;code>/mnt/c/&lt;/code>)&lt;/strong>, oder umgekehrt, ist der Prozess ganz anders. Dieses Cross-OS-Zugriffsverfahren nutzt das &lt;code>9P (Plan 9 File System Protocol)&lt;/code>.&lt;/p>
$$ L_{cross\_os} = L_{9p\_client} + L_{socket\_transfer} + L_{9p\_server} + L_{ntfs} $$&lt;p>Der Zugriff über dieses 9P-Protokoll weist einen hohen Overhead für Serialisierungsverarbeitung auf, und bei Anwendungen, die eine große Anzahl kleiner Dateien lesen und schreiben (z.B. &lt;code>npm install&lt;/code> oder Git-Operationen in einem Node.js-Projekt in einem Windows-Verzeichnis), verschlechtert sich die Leistung erheblich (manchmal mehr als die 10-fache Verzögerung).
Aus diesem Grund ist es &lt;strong>eine eiserne Regel bei der Verwendung von WSL2, Projektdateien immer im nativen Linux-Dateisystem (unter &lt;code>~/&lt;/code>) abzulegen&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="4-netzwerkstruktur-nat-default-switch-bridged">4. Netzwerkstruktur: NAT, Default Switch, Bridged
&lt;/h2>&lt;p>Die Flexibilität der Netzwerkfunktionen ist einer der Hauptunterschiede zwischen Hyper-V und WSL2.&lt;/p>
&lt;h3 id="41-netzwerk-von-wsl2-nat-basiert">4.1. Netzwerk von WSL2 (NAT-basiert)
&lt;/h3>&lt;p>Standardmäßig nutzt das WSL2-Netzwerk eine &amp;ldquo;NAT (Network Address Translation)&amp;quot;-Konfiguration unter Verwendung der Virtual Switch-Technologie von Hyper-V.
Der Linux-VM wird automatisch eine private IP-Adresse zugewiesen (z.B. &lt;code>172.20.x.x&lt;/code>), die sich vom Windows-Host unterscheidet. Ein Mechanismus ist integriert, der Dienste (Ports), die innerhalb von WSL2 gestartet wurden, vom Windows-Host als &lt;code>localhost&lt;/code> weiterleitet, sodass Entwickler Webserver usw. testen können, ohne sich der Netzwerkkonfiguration bewusst sein zu müssen.&lt;/p>
&lt;p>In den letzten Jahren wurde in einer Vorschauversion ein neuer Netzwerkmodus namens &amp;ldquo;Mirrored Mode&amp;rdquo; für WSL2 eingeführt. Dies verbessert die IPv6-Unterstützung und die VPN-Verbindungskompatibilität (kann in &lt;code>.wslconfig&lt;/code> konfiguriert werden).&lt;/p>
&lt;h3 id="42-hyper-v-virtual-switch">4.2. Hyper-V Virtual Switch
&lt;/h3>&lt;p>Hyper-V ermöglicht die Erstellung von fortgeschrittenen Netzwerken auf Enterprise-Niveau. Über den &amp;ldquo;Virtual Switch Manager&amp;rdquo; bietet es hauptsächlich drei Modi:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Extern (External)&lt;/strong>: Bindet die physische NIC der Hostmaschine an den Virtual Switch, sodass die Gast-VM direkt an das physische Netzwerk angeschlossen wird (Bridged Connection). Die VM bezieht eine IP aus dem gleichen Subnetz wie das physische Netzwerk vom DHCP-Server.&lt;/li>
&lt;li>&lt;strong>Intern (Internal)&lt;/strong>: Erlaubt nur die Kommunikation zwischen dem Host OS und der VM sowie zwischen VMs. Sie können nicht direkt nach außen kommunizieren.&lt;/li>
&lt;li>&lt;strong>Privat (Private)&lt;/strong>: Erlaubt nur die Kommunikation zwischen VMs und blockiert auch die Kommunikation mit dem Host OS. Wird verwendet, um isolierte Testumgebungen zu erstellen.&lt;/li>
&lt;/ol>
&lt;h3 id="43-fortgeschrittene-hyper-v-netzwerkkonfiguration-mit-powershell">4.3. Fortgeschrittene Hyper-V Netzwerkkonfiguration mit PowerShell
&lt;/h3>&lt;p>In Entwicklungs- oder Testumgebungen ermöglicht PowerShell eine detaillierte Kontrolle, wenn Sie ein benutzerdefiniertes NAT-Netzwerk für VMs erstellen möchten. Nachfolgend ein Skriptbeispiel, um einen internen Virtual Switch zu erstellen, NAT zu konfigurieren und VMs Internetzugang zu ermöglichen.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="c"># 1. Erstellung eines internen Virtual Switch&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$SwitchName&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;HyperV-NatSwitch&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">New-VMSwitch&lt;/span> &lt;span class="n">-SwitchName&lt;/span> &lt;span class="nv">$SwitchName&lt;/span> &lt;span class="n">-SwitchType&lt;/span> &lt;span class="n">Internal&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c"># 2. IP-Adresse für die virtuelle Host-NIC festlegen (Gateway-IP)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$GatewayIP&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;192.168.100.1&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$NetPrefix&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="mf">24&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$InterfaceAlias&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;vEthernet (&lt;/span>&lt;span class="nv">$SwitchName&lt;/span>&lt;span class="s2">)&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">New-NetIPAddress&lt;/span> &lt;span class="n">-IPAddress&lt;/span> &lt;span class="nv">$GatewayIP&lt;/span> &lt;span class="n">-PrefixLength&lt;/span> &lt;span class="nv">$NetPrefix&lt;/span> &lt;span class="n">-InterfaceAlias&lt;/span> &lt;span class="nv">$InterfaceAlias&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c"># 3. Konfiguration des NAT-Netzwerks&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$NatName&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;HyperV-NatNetwork&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$NatSubnet&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;192.168.100.0/24&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">New-NetNat&lt;/span> &lt;span class="n">-Name&lt;/span> &lt;span class="nv">$NatName&lt;/span> &lt;span class="n">-InternalIPInterfaceAddressPrefix&lt;/span> &lt;span class="nv">$NatSubnet&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c"># Befehl zur Überprüfung&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">Get-NetNat&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Mit dieser Konfiguration können Sie ein eigenes NAT-Segment aufbauen, das über den Host mit der Außenwelt kommunizieren kann, indem Sie der angegebenen Hyper-V-Gastmaschine manuell eine &lt;code>192.168.100.x&lt;/code> IP und das Gateway &lt;code>192.168.100.1&lt;/code> zuweisen.&lt;/p>
&lt;hr>
&lt;h2 id="5-anwendungsfälle-und-praktischer-leitfaden-zur-auswahl">5. Anwendungsfälle und praktischer Leitfaden zur Auswahl
&lt;/h2>&lt;p>Basierend auf den bisherigen Architektur- und Leistungsunterschieden definieren wir, in welchen Situationen welche Technologie angewendet werden sollte.&lt;/p>
&lt;h3 id="51-szenarien-in-denen-wsl2-gewählt-werden-sollte">5.1. Szenarien, in denen WSL2 gewählt werden sollte
&lt;/h3>&lt;p>WSL2 ist speziell zur &amp;ldquo;Steigerung der Produktivität von Entwicklern&amp;rdquo; konzipiert. Es ist ideal für folgende Zwecke:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Webentwicklung und Cloud-native Entwicklung&lt;/strong>: Containerentwicklung mit Docker Desktop (WSL2-Backend) oder Podman.&lt;/li>
&lt;li>&lt;strong>Verwendung von dedizierten Linux-Tools&lt;/strong>: Bei der täglichen Verwendung von bash, grep, awk, sed oder GCC/Clang-Compilern für Linux.&lt;/li>
&lt;li>&lt;strong>GUI-Anwendungen (WSLg)&lt;/strong>: Wenn Sie Linux-X11/Wayland-Anwendungen nahtlos auf dem Windows-Desktop ausführen möchten.&lt;/li>
&lt;li>&lt;strong>Machine Learning und KI-Entwicklung&lt;/strong>: Schnelles Training mit TensorFlow oder PyTorch unter Verwendung von GPU-Passthrough-Funktionen (NVIDIA CUDA on WSL).&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Hinweis&lt;/strong>: Einschränkungen können auftreten, wenn Sie den Kernel stark anpassen möchten oder komplexe Dienste aufbauen, die stark von systemd abhängen (obwohl systemd derzeit unterstützt wird, ist es standardmäßig deaktiviert oder eingeschränkt).&lt;/p>
&lt;h3 id="52-szenarien-in-denen-hyper-v-gewählt-werden-sollte">5.2. Szenarien, in denen Hyper-V gewählt werden sollte
&lt;/h3>&lt;p>Hyper-V ist auf &amp;ldquo;Infrastrukturvirtualisierung und vollständige Isolation&amp;rdquo; ausgerichtet. Es ist unverzichtbar für folgende Zwecke:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Ausführung von Windows VMs&lt;/strong>: Zum Ausführen verschiedener Windows-Versionen (z.B. Windows Server oder ein älteres Windows 10) als Testumgebungen.&lt;/li>
&lt;li>&lt;strong>Nested Virtualization (verschachtelte Virtualisierung)&lt;/strong>: Wenn Sie eine virtuelle Maschine (Hyper-V oder KVM) innerhalb einer anderen virtuellen Maschine ausführen möchten. Unerlässlich für die Testumgebungen von Infrastruktur-Ingenieuren.&lt;/li>
&lt;li>&lt;strong>Fortgeschrittene Netzwerkanforderungen&lt;/strong>: Wenn Sie die Netzwerkkonfiguration strikt kontrollieren müssen, wie z.B. bei externen Bridged-Verbindungen (Teilnahme am selben LAN), VLAN-Tagging, Zuweisung mehrerer NICs, usw.&lt;/li>
&lt;li>&lt;strong>Snapshots (Checkpoints)&lt;/strong>: Eine Funktion, mit der Sie den Zustand einer VM zu einem bestimmten Zeitpunkt speichern und jederzeit sofort zurücksetzen können. Äußerst nützlich für destruktive Softwaretests oder Malware-Analysen.&lt;/li>
&lt;li>&lt;strong>Feste Ressourcenzuweisung&lt;/strong>: Wenn Sie die Anzahl der CPU-Kerne und die Speichermenge strikt fixieren möchten, um die Auswirkungen auf das Host OS zu minimieren.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="6-überlegungen-zum-io-durchsatz-anhand-mathematischer-modelle-anhang">6. Überlegungen zum I/O-Durchsatz anhand mathematischer Modelle (Anhang)
&lt;/h2>&lt;p>Als Systemingenieur ist es wichtig, die Beziehung zwischen Durchsatz $S$ und Blockgröße $B$ theoretisch zu verstehen, wenn man die Grenzen der I/O-Leistung beider Technologien bewertet.&lt;/p>
&lt;p>Der Datentransfer-Durchsatz $S$ ist die pro Zeiteinheit übertragene Datenmenge und wird wie folgt modelliert:&lt;/p>
$$ S(B) = \frac{B}{L_{setup} + \frac{B}{R_{max}}} $$&lt;ul>
&lt;li>$B$: Blockgröße (Bytes)&lt;/li>
&lt;li>$L_{setup}$: Feste Latenz im Zusammenhang mit der Einrichtung von I/O-Anfragen und dem Kontextwechsel&lt;/li>
&lt;li>$R_{max}$: Maximale Hardware-Bandbreite bei Kopien oder Geräteübertragungen&lt;/li>
&lt;/ul>
&lt;p>Beim Dateizugriff über das 9P-Protokoll von WSL2 wird dieser $L_{setup}$ sehr groß (aufgrund von Socket-Kommunikation und der Serialisierung/Deserialisierung von Protokollen). Wenn die Blockgröße $B$ gering ist (Lesen und Schreiben vieler kleiner Dateien von wenigen KB), wird daher der Einfluss von $L_{setup}$ im Nenner dominant, und der Durchsatz $S$ sinkt drastisch.
Im Gegensatz dazu wird beim VHDX-Zugriff über den VMBus von Hyper-V der $L_{setup}$ auf ein Niveau nahe einem Hardware-Interrupt optimiert, sodass hohe IOPS auch bei kleinen Blöcken aufrechterhalten werden können.&lt;/p>
&lt;p>Diese mathematische Realität ist die logische Grundlage für die Best Practice: &amp;ldquo;Projektdateien sollten unter WSL2 nicht auf der Windows-Seite abgelegt werden&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="7-zusammenfassung-zwei-koexistierende-virtualisierungstechnologien">7. Zusammenfassung: Zwei koexistierende Virtualisierungstechnologien
&lt;/h2>&lt;p>Hyper-V und WSL2 sind nicht so, dass das eine besser ist als das andere, sondern &lt;strong>&amp;ldquo;zwei Lösungen mit unterschiedlichen Zielen&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>WSL2&lt;/strong> ist das &amp;ldquo;beste Integrationstool&amp;rdquo;, um die Hülle des Windows-Betriebssystems zu durchbrechen und das Linux-Ökosystem Windows-Benutzern nahtlos und mit hoher Geschwindigkeit zur Verfügung zu stellen. Es ist keine Übertreibung zu sagen, dass dies die ultimative CLI-Umgebung für Entwickler ist.&lt;/li>
&lt;li>&lt;strong>Hyper-V&lt;/strong> ist ein &amp;ldquo;vollwertiger Hypervisor&amp;rdquo;, der die robuste Isolation und Verwaltungsfunktionen, die in Enterprise-Rechenzentren entwickelt wurden, auf den Desktop bringt. Beim Aufbau von Netzwerken, Testen von Windows-Betriebssystemen und Simulieren von Infrastrukturumgebungen ist er unübertroffen.&lt;/li>
&lt;/ul>
&lt;p>In der modernen Windows-Umgebung konkurrieren diese beiden Technologien nicht, sondern koexistieren harmonisch auf derselben VM-Plattform. Durch den richtigen Einsatz beider Technologien je nach Verwendungszweck wird Windows zur leistungsstärksten und flexibelsten Engineering-Workstation der Welt.&lt;/p></description></item></channel></rss>