<?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/pt/tags/linux/</link><description>Recent content in Linux on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>pt</language><copyright>kenjinote</copyright><lastBuildDate>Sun, 13 Sep 2026 07:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/pt/tags/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>Hyper-V vs WSL2: Comparação de tecnologias de virtualização no Windows</title><link>http://kenji.blog/pt/p/hyper-v-vs-wsl2-windows-virtualization/</link><pubDate>Sun, 13 Sep 2026 07:00:00 +0900</pubDate><guid>http://kenji.blog/pt/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: Comparação de tecnologias de virtualização no Windows" />&lt;h2 id="1-introdução-a-evolução-da-virtualização-no-windows">1. Introdução: A evolução da virtualização no Windows
&lt;/h2>&lt;p>A tecnologia de virtualização na plataforma Windows passou por uma evolução dramática nas últimas décadas. No passado, hipervisores Type 2 de terceiros (como VMware Workstation e VirtualBox) eram a norma, mas desde que a Microsoft introduziu o &amp;ldquo;Hyper-V&amp;rdquo; no Windows Server 2008, hipervisores Type 1 também foram incorporados em SOs desktop como o Windows 10/11.&lt;/p>
&lt;p>E nos últimos anos, o que mais tem chamado a atenção dos desenvolvedores é o &amp;ldquo;WSL2 (Windows Subsystem for Linux 2)&amp;rdquo;. Enquanto o WSL1 dependia da conversão de chamadas de sistema (tradução), o WSL2 adota uma &amp;ldquo;Lightweight Utility VM&amp;rdquo; (Máquina Virtual Utilitária Leve) que aplica a tecnologia do Hyper-V, alcançando total compatibilidade com o Linux e uma melhoria dramática de desempenho.&lt;/p>
&lt;p>Neste artigo, vamos comparar e explicar minuciosamente essas duas poderosas tecnologias de virtualização — o &amp;ldquo;Hyper-V&amp;rdquo; completo e o &amp;ldquo;WSL2&amp;rdquo; focado na experiência do desenvolvedor — abordando suas arquiteturas, desempenho (CPU, memória, E/S de disco), configuração de rede e os melhores casos de uso, juntamente com profundos detalhes técnicos.&lt;/p>
&lt;hr>
&lt;h2 id="2-teoria-básica-dos-hipervisores-e-comparação-de-arquiteturas">2. Teoria básica dos hipervisores e comparação de arquiteturas
&lt;/h2>&lt;p>Ao entender a tecnologia de virtualização, classificar os tipos de hipervisores (Monitores de Máquina Virtual: VMM) é essencial.&lt;/p>
&lt;h3 id="21-diferenças-entre-hipervisores-type-1-e-type-2">2.1. Diferenças entre hipervisores Type 1 e Type 2
&lt;/h3>&lt;p>Um hipervisor é uma camada de software que abstrai o acesso ao hardware e permite que vários sistemas operacionais (SOs convidados) sejam executados simultaneamente em uma única máquina física.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Type 1 (Bare-metal)&lt;/strong>: Executado diretamente no hardware. Não existe o conceito de um SO host (embora, estritamente falando, possa existir um SO de gerenciamento com privilégios). Tem sobrecarga extremamente baixa e oferece alto desempenho e segurança. Exemplos: Hyper-V, VMware ESXi, Xen.&lt;/li>
&lt;li>&lt;strong>Type 2 (Hospedado)&lt;/strong>: Executado como um aplicativo no SO host (como Windows ou macOS). Como todo o acesso ao hardware passa pelo SO host, a sobrecarga é maior. Exemplos: VMware Workstation, Oracle VirtualBox.&lt;/li>
&lt;/ul>
&lt;p>O Hyper-V do Windows é um puro &lt;strong>hipervisor Type 1&lt;/strong>. Quando o Hyper-V é ativado, na verdade, o próprio SO Windows que o usuário opera normalmente passa a ser executado dentro de uma máquina virtual especial chamada &amp;ldquo;Partição Raiz (Root Partition)&amp;rdquo;.&lt;/p>
&lt;h3 id="22-detalhes-da-arquitetura-do-hyper-v">2.2. Detalhes da arquitetura do Hyper-V
&lt;/h3>&lt;p>A arquitetura do Hyper-V adota um design de microkernel e baseia-se em unidades de separação lógicas chamadas Partiçõoes (Partitions).&lt;/p>
&lt;pre class="mermaid">
graph TD
A[&amp;#34;Hardware (CPU, RAM, Disco, NIC)&amp;#34;] --&amp;gt; B[&amp;#34;Hipervisor do Windows (Ring -1)&amp;#34;]
B --&amp;gt; C[&amp;#34;Partição Raiz (SO Windows)&amp;#34;]
B --&amp;gt; D[&amp;#34;Partição Filha 1 (VM Windows)&amp;#34;]
B --&amp;gt; E[&amp;#34;Partição Filha 2 (VM Linux)&amp;#34;]
C --&amp;gt; F[&amp;#34;VMBus (Barramento de Máquina Virtual)&amp;#34;]
D --&amp;gt; F
E --&amp;gt; F
C --&amp;gt; G[&amp;#34;VID (Driver de Infraestrutura de Virtualização)&amp;#34;]
C --&amp;gt; H[&amp;#34;VMWP.exe (Processo de Trabalho)&amp;#34;]
&lt;/pre>
&lt;ul>
&lt;li>&lt;strong>Hipervisor do Windows (Windows Hypervisor)&lt;/strong>: Opera no estado de nível de privilégio mais alto da CPU (Ring -1 ou VMX Root Mode) e é responsável apenas pela alocação de memória e escalonamento da CPU. Não inclui drivers de dispositivo.&lt;/li>
&lt;li>&lt;strong>Partição Raiz (Root Partition)&lt;/strong>: A partição onde o SO Windows host é executado. Ela possui todos os drivers de dispositivo e controla o hardware diretamente. Também fornece funções de gerenciamento para as partições filhas (como provedores WMI e VMWP.exe).&lt;/li>
&lt;li>&lt;strong>Partição Filha (Child Partition)&lt;/strong>: A partição onde o SO convidado é executado. O acesso direto ao hardware não é permitido e as solicitações de E/S são enviadas à partição raiz (I/O Sintético) por meio de um barramento de compartilhamento de memória lógico chamado &amp;ldquo;VMBus&amp;rdquo;.&lt;/li>
&lt;/ul>
&lt;h3 id="23-o-mecanismo-do-wsl2-e-da-lightweight-utility-vm">2.3. O mecanismo do WSL2 e da Lightweight Utility VM
&lt;/h3>&lt;p>O WSL2 utiliza a mesma tecnologia base de hipervisor Type 1 que o Hyper-V, mas utiliza um subconjunto de recursos chamado &amp;ldquo;Plataforma de Máquina Virtual (Virtual Machine Platform: VMP)&amp;rdquo;, que é diferente de uma máquina virtual Hyper-V completa.&lt;/p>
&lt;p>A &amp;ldquo;Lightweight Utility VM&amp;rdquo; (Máquina Virtual Utilitária Leve) adotada no WSL2 elimina completamente a emulação de hardware legado (como BIOS virtual ou placa-mãe virtual) encontrada em VMs tradicionais.&lt;/p>
&lt;pre class="mermaid">
graph TD
A[&amp;#34;SO Host Windows (Espaço do Usuário)&amp;#34;]
B[&amp;#34;Sistema de Arquivos NTFS&amp;#34;]
C[&amp;#34;Servidor de Protocolo 9P (Plan 9)&amp;#34;]
D[&amp;#34;Lightweight Utility VM (Kernel Linux)&amp;#34;]
E[&amp;#34;ext4.vhdx (Disco Virtual)&amp;#34;]
F[&amp;#34;Espaço do Usuário Linux (Distribuições WSL2)&amp;#34;]
A --&amp;gt; C
C --&amp;gt;| &amp;#34;Compartilhamento de Arquivos Cross-OS&amp;#34; | D
D --&amp;gt; E
D --&amp;gt; F
&lt;/pre>
&lt;p>A maior característica do WSL2 é a &lt;strong>velocidade de inicialização&lt;/strong> e a &lt;strong>integração perfeita com o SO host&lt;/strong>. O kernel do Linux é inicializado em menos de alguns segundos e o sistema de arquivos do lado do Windows (NTFS) é acessado por meio do protocolo de sistema de arquivos de rede &lt;code>9P&lt;/code> do Plan 9.&lt;/p>
&lt;hr>
&lt;h2 id="3-análise-detalhada-de-desempenho-recursos-computacionais-e-es">3. Análise detalhada de desempenho: Recursos computacionais e E/S
&lt;/h2>&lt;p>O desempenho da máquina virtual é expresso como a soma das sobrecargas em cada componente de CPU, memória e E/S de disco.&lt;/p>
&lt;h3 id="31-sobrecarga-de-cpu-e-troca-de-contexto">3.1. Sobrecarga de CPU e troca de contexto
&lt;/h3>&lt;p>Tanto o Hyper-V quanto o WSL2 usam virtualização assistida por hardware (Intel VT-x / AMD-V). As instruções da CPU são executadas basicamente na velocidade nativa, mas ao executar instruções privilegiadas ou processar E/S, ocorre uma interrupção chamada &amp;ldquo;VM Exit&amp;rdquo;, realizando uma troca de contexto para o hipervisor.&lt;/p>
&lt;p>A sobrecarga de CPU neste momento, $T_{overhead}$, pode ser expressa pelo seguinte modelo matemático:&lt;/p>
$$ T_{overhead} = \sum_{i=1}^{N} (t_{vm\_exit} + t_{hypercall\_process} + t_{vm\_entry}) $$&lt;p>Onde:&lt;/p>
&lt;ul>
&lt;li>$N$: Número de ocorrências de VM Exit por unidade de tempo&lt;/li>
&lt;li>$t_{vm\_exit}$: Tempo de transição do convidado para o hipervisor&lt;/li>
&lt;li>$t_{hypercall\_process}$: Tempo de processamento de E/S ou interrupções via VMBus&lt;/li>
&lt;li>$t_{vm\_entry}$: Tempo de retorno do hipervisor para o convidado&lt;/li>
&lt;/ul>
&lt;p>Como o WSL2 não possui emulação de legado, $t_{hypercall\_process}$ é otimizado para ser extremamente pequeno. Portanto, em operações de CPU puras (como compilação de kernel ou inferência de modelos de aprendizado de máquina), a degradação de desempenho fica dentro de alguns por cento em comparação com um ambiente bare-metal.&lt;/p>
&lt;h3 id="32-mecanismos-de-alocação-de-memória">3.2. Mecanismos de alocação de memória
&lt;/h3>&lt;p>Existem diferenças claras nas filosofias de design entre os dois na abordagem de gerenciamento de memória.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Hyper-V (Memória Dinâmica)&lt;/strong>: A partição raiz aloca e recupera dinamicamente a memória de acordo com a demanda de memória da VM convidada. No entanto, a memória reservada como cache de página dentro do SO convidado tende a não ser liberada a menos que o sistema esteja sob pressão.&lt;/li>
&lt;li>&lt;strong>WSL2 (Recuperação dinâmica de memória)&lt;/strong>: O WSL2 tem seu próprio mecanismo e retorna periodicamente (Reclaim) a memória que não é mais necessária na VM Linux (incluindo o cache) para o host Windows. Nos primórdios do WSL2, havia o problema do cache de páginas do Linux consumir a memória do Windows (inchaço do processo Vmmem), mas isso foi melhorado agora com patches de kernel.&lt;/li>
&lt;/ul>
&lt;h3 id="33-características-de-es-de-disco-vhdx-vs-ext4vhdx">3.3. Características de E/S de disco (VHDX vs ext4.vhdx)
&lt;/h3>&lt;p>A E/S de disco é o gargalo mais provável no desempenho de uma máquina virtual.&lt;/p>
&lt;p>A latência de E/S, $L_{total}$, é calculada da seguinte forma:&lt;/p>
$$ L_{total} = L_{guest\_fs} + L_{vmbus} + L_{host\_fs} + L_{physical\_disk} $$&lt;p>&lt;strong>No caso do Hyper-V&lt;/strong>:
Convidados gerais do Hyper-V usam discos virtuais no formato &lt;code>VHDX&lt;/code>. As solicitações de E/S emitidas pelo sistema de arquivos (ext4 ou NTFS) dentro do SO convidado passam pelo driver de armazenamento de dispositivo de bloco (storvsc) do VMBus e são processadas como acessos ao arquivo VHDX no NTFS do lado do Windows.&lt;/p>
&lt;p>&lt;strong>No caso do WSL2&lt;/strong>:
As distribuições Linux no WSL2 operam em um sistema de arquivos ext4 nativo construído dentro de um arquivo &lt;code>ext4.vhdx&lt;/code> dedicado. Operações de arquivo dentro do Linux (como dentro do diretório &lt;code>~&lt;/code>) apresentam desempenho nativo equivalente ao do Hyper-V acima.
No entanto, o processo é muito diferente &lt;strong>quando o Linux no WSL2 acessa arquivos no lado do Windows (como &lt;code>/mnt/c/&lt;/code>)&lt;/strong>, ou vice-versa. Para esse acesso cross-OS, o &lt;code>9P (Plan 9 File System Protocol)&lt;/code> é usado.&lt;/p>
$$ L_{cross\_os} = L_{9p\_client} + L_{socket\_transfer} + L_{9p\_server} + L_{ntfs} $$&lt;p>O acesso através deste protocolo 9P possui uma grande sobrecarga de processamento de serialização e, para o propósito de ler e escrever um grande número de arquivos pequenos (por exemplo: um &lt;code>npm install&lt;/code> ou operações do Git em um projeto Node.js localizado em um diretório no lado do Windows), o desempenho diminui significativamente (às vezes mais de 10 vezes mais lento).
Portanto, &lt;strong>ao usar o WSL2, é uma regra de ouro sempre colocar os arquivos de projeto no sistema de arquivos nativo do Linux (sob &lt;code>~/&lt;/code>)&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="4-estrutura-de-rede-nat-default-switch-e-bridged">4. Estrutura de rede: NAT, Default Switch e Bridged
&lt;/h2>&lt;p>A flexibilidade de rede é uma das maiores diferenças entre o Hyper-V e o WSL2.&lt;/p>
&lt;h3 id="41-rede-do-wsl2-baseada-em-nat">4.1. Rede do WSL2 (Baseada em NAT)
&lt;/h3>&lt;p>Por padrão, a rede do WSL2 usa uma configuração &amp;ldquo;NAT (Network Address Translation)&amp;rdquo; usando a tecnologia de comutador virtual (Virtual Switch) do Hyper-V.
A VM Linux recebe automaticamente um endereço IP privado diferente do host Windows (por exemplo: &lt;code>172.20.x.x&lt;/code>). Está integrado um mecanismo onde o host Windows usa &lt;code>localhost&lt;/code> para encaminhar para serviços (portas) iniciados no WSL2, permitindo que os desenvolvedores testem servidores web e outros sem precisar estar cientes da rede.&lt;/p>
&lt;p>Recentemente, um novo modo de rede chamado &amp;ldquo;Mirrored mode&amp;rdquo; (Modo espelhado) foi introduzido em versões de visualização do WSL2. Isso visa melhorar o suporte IPv6 e a compatibilidade com conexões VPN (pode ser configurado em &lt;code>.wslconfig&lt;/code>).&lt;/p>
&lt;h3 id="42-comutador-virtual-do-hyper-v-virtual-switch">4.2. Comutador Virtual do Hyper-V (Virtual Switch)
&lt;/h3>&lt;p>O Hyper-V permite a construção de redes avançadas de nível corporativo. Através do &amp;ldquo;Gerenciador de Comutador Virtual&amp;rdquo;, ele fornece principalmente 3 modos.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Externo (External)&lt;/strong>: Vincula a NIC física da máquina host ao comutador virtual e permite que as VMs convidadas participem diretamente da rede física (conexão em ponte). A VM obtém um IP da mesma sub-rede da rede física através de um servidor DHCP.&lt;/li>
&lt;li>&lt;strong>Interno (Internal)&lt;/strong>: Permite a comunicação apenas entre o SO host e a VM, e entre as VMs. Não pode acessar diretamente redes externas.&lt;/li>
&lt;li>&lt;strong>Privado (Private)&lt;/strong>: Permite a comunicação apenas entre as VMs e bloqueia a comunicação com o SO host. Usado para construir ambientes de teste isolados.&lt;/li>
&lt;/ol>
&lt;h3 id="43-construção-avançada-de-rede-hyper-v-com-powershell">4.3. Construção avançada de rede Hyper-V com PowerShell
&lt;/h3>&lt;p>Em ambientes de desenvolvimento ou teste, quando você deseja construir uma rede NAT personalizada para VMs, o PowerShell permite um controle detalhado. Abaixo está um exemplo de script que cria um comutador virtual interno, configura NAT nele e fornece acesso à internet para as VMs.&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. Criação do comutador virtual interno&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. Definir endereço IP na NIC virtual do host (IP que servirá como gateway)&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. Configuração da rede NAT&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"># Comando para verificação&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>Com esta configuração, ao definir manualmente um IP de &lt;code>192.168.100.x&lt;/code> e o gateway &lt;code>192.168.100.1&lt;/code> no convidado Hyper-V especificado, você pode construir um segmento NAT próprio capaz de se comunicar externamente através do host.&lt;/p>
&lt;hr>
&lt;h2 id="5-casos-de-uso-e-guia-prático-de-seleção">5. Casos de uso e guia prático de seleção
&lt;/h2>&lt;p>Com base nas diferenças em arquitetura e desempenho discutidas até o momento, vamos definir em quais situações qual tecnologia deve ser adotada.&lt;/p>
&lt;h3 id="51-cenários-onde-o-wsl2-deve-ser-selecionado">5.1. Cenários onde o WSL2 deve ser selecionado
&lt;/h3>&lt;p>O WSL2 foi projetado especificamente para &amp;ldquo;melhorar a produtividade do desenvolvedor&amp;rdquo;. É ideal para os seguintes usos:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Desenvolvimento Web e nativo de nuvem&lt;/strong>: Desenvolvimento de contêineres usando Docker Desktop (backend WSL2) ou Podman.&lt;/li>
&lt;li>&lt;strong>Uso de ferramentas exclusivas do Linux&lt;/strong>: Ao usar diariamente bash, grep, awk, sed ou compiladores GCC ou Clang para Linux.&lt;/li>
&lt;li>&lt;strong>Aplicativos com GUI (WSLg)&lt;/strong>: Quando se deseja executar aplicativos Linux X11/Wayland nativamente na área de trabalho do Windows sem problemas.&lt;/li>
&lt;li>&lt;strong>Aprendizado de Máquina e Desenvolvimento de IA&lt;/strong>: Treinamento rápido de TensorFlow ou PyTorch usando a função de repasse de GPU (NVIDIA CUDA on WSL).&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Nota&lt;/strong>: Você pode encontrar limitações se quiser personalizar o kernel em detalhes ou construir serviços complexos que dependem fortemente do systemd (o systemd agora é suportado, mas desabilitado ou restrito por padrão).&lt;/p>
&lt;h3 id="52-cenários-onde-o-hyper-v-deve-ser-selecionado">5.2. Cenários onde o Hyper-V deve ser selecionado
&lt;/h3>&lt;p>O Hyper-V visa &amp;ldquo;virtualização e isolamento completo da infraestrutura&amp;rdquo;. Ele se torna indispensável para os seguintes casos de uso:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Execução de VMs Windows&lt;/strong>: Para executar diferentes versões do Windows (Windows Server, Windows 10 mais antigo, etc.) como um ambiente de teste.&lt;/li>
&lt;li>&lt;strong>Virtualização aninhada (Nested Virtualization)&lt;/strong>: Quando se deseja executar ainda mais máquinas virtuais (Hyper-V ou KVM) dentro de uma máquina virtual. É essencial para ambientes de verificação de engenheiros de infraestrutura.&lt;/li>
&lt;li>&lt;strong>Requisitos avançados de rede&lt;/strong>: Quando se precisa controlar rigorosamente as configurações de rede, como conexões de ponte externa (participação na mesma LAN), marcação de VLAN ou alocação de várias NICs.&lt;/li>
&lt;li>&lt;strong>Instantâneos (Snapshots/Checkpoints)&lt;/strong>: A capacidade de salvar o estado de uma VM em um momento específico e reverter instantaneamente a qualquer momento. Extremamente útil para testes destrutivos de software ou análise de malware.&lt;/li>
&lt;li>&lt;strong>Alocação de recursos fixos&lt;/strong>: Quando se deseja fixar rigorosamente o número de núcleos de CPU e a quantidade de memória para minimizar o impacto no SO host.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="6-considerações-sobre-a-taxa-de-transferência-throughput-de-es-por-meio-de-modelos-matemáticos-apêndice">6. Considerações sobre a taxa de transferência (throughput) de E/S por meio de modelos matemáticos (Apêndice)
&lt;/h2>&lt;p>Como um engenheiro de sistemas, ao avaliar os limites de desempenho de E/S de ambos, é importante entender teoricamente a relação entre a taxa de transferência $S$ e o tamanho do bloco $B$.&lt;/p>
&lt;p>A taxa de transferência de transferência de dados $S$ é a quantidade de transferência de dados por unidade de tempo, e é modelada da seguinte forma:&lt;/p>
$$ S(B) = \frac{B}{L_{setup} + \frac{B}{R_{max}}} $$&lt;ul>
&lt;li>$B$: Tamanho do bloco (Bytes)&lt;/li>
&lt;li>$L_{setup}$: Latência fixa associada à configuração de solicitações de E/S e à troca de contexto&lt;/li>
&lt;li>$R_{max}$: A largura de banda máxima do hardware na cópia ou transferência de dispositivo&lt;/li>
&lt;/ul>
&lt;p>No acesso a arquivos por meio do protocolo 9P do WSL2, este $L_{setup}$ é muito grande (devido à comunicação de soquete e à serialização/desserialização do protocolo). Portanto, quando o tamanho do bloco $B$ é pequeno (como leitura e gravação em massa de arquivos pequenos de cerca de alguns KB), a influência do $L_{setup}$ no denominador se torna dominante, e a taxa de transferência $S$ diminui drasticamente.
Por outro lado, em acessos VHDX via VMBus do Hyper-V, como o $L_{setup}$ é otimizado para um nível próximo a interrupções de hardware, operações altas de IOPS podem ser mantidas mesmo com blocos de pequeno tamanho.&lt;/p>
&lt;p>Esta realidade matemática é o fundamento lógico por trás da melhor prática de que &amp;ldquo;você não deve colocar arquivos de projeto no lado do Windows no WSL2&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="7-conclusão-duas-tecnologias-de-virtualização-que-coexistem">7. Conclusão: Duas tecnologias de virtualização que coexistem
&lt;/h2>&lt;p>O Hyper-V e o WSL2 não se tratam de um ser superior ao outro; eles são &lt;strong>&amp;ldquo;duas soluções com propósitos diferentes&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;ul>
&lt;li>O &lt;strong>WSL2&lt;/strong> é a &amp;ldquo;melhor ferramenta de integração&amp;rdquo; para romper a casca do SO Windows e entregar o ecossistema Linux aos usuários do Windows de forma contínua e rápida. Não é exagero dizer que é o melhor ambiente CLI para desenvolvedores.&lt;/li>
&lt;li>O &lt;strong>Hyper-V&lt;/strong> é um &amp;ldquo;hipervisor completo&amp;rdquo; que traz o robusto isolamento e capacidade de gerenciamento cultivados em data centers corporativos para o desktop. Não tem rival na construção de redes, no teste de SOs Windows e na simulação de ambientes de infraestrutura.&lt;/li>
&lt;/ul>
&lt;p>Nos ambientes Windows modernos, essas duas tecnologias não competem uniformemente, mas coexistem lindamente na mesma plataforma de VM. Ao usá-las nos lugares certos, dependendo da finalidade, o Windows será indiscutivelmente a estação de trabalho de engenharia mais poderosa e flexível do mundo.&lt;/p></description></item></channel></rss>