🧩 Exercícios: WSL2 e Devbox
Extra Guia de Ferramentas • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 16.1 — Diagnóstico e Gerenciamento de Distribuições WSL2
Contexto: Listar distribuições instaladas, verificar a versão do kernel WSL e limitar o consumo máximo de RAM do WSL2 no Windows.
Resultado Esperado
# No PowerShell do Windows:
wsl --list --verbose
wsl --version
wsl --shutdown
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_16_1_SeuNome.md - Envie na tarefa:
Atividade Cap 16 - WSL2 e Ambientes Herméticos
🔑 Gabarito de Código & Solução Comentada
wsl -l -v
wsl --status
Comentário: O arquivo C:\Users\<Usuario>\.wslconfig permite definir memory=8GB e processors=4 para impedir que o Linux consuma toda a RAM do host Windows.
🎯 Nível 2: Prática
Problema 16.2 — Configuração do .wslconfig para Alta Performance
Crie o arquivo %USERPROFILE%\.wslconfig configurando limites de memória de 8GB, 4 núcleos de processador, swap de 2GB e modo de rede moderno mirrored.
🔑 Gabarito de Código & Solução Comentada
# %USERPROFILE%\.wslconfig
[wsl2]
memory=8GB
processors=4
swap=2GB
networkingMode=mirrored
autoProxy=true
dnsTunneling=true
[experimental]
autoMemoryReclaim=gradual
sparseVhd=true
🎯 Nível 3: Integração
Problema 16.3 — Ambiente Hermético Reproduzível com Devbox (Nix)
Crie um arquivo devbox.json que declare como dependências locais o Python 3.12, PostgreSQL 16 e a CLI do Ruff sem instalar nenhum desses pacotes globalmente no sistema operacional.
🔑 Gabarito de Código & Solução Comentada
// devbox.json
{
"$schema": "https://raw.githubusercontent.com/jetpack-io/devbox/0.10.0/.schema/devbox.schema.json",
"packages": [
"python@3.12",
"postgresql@16",
"ruff@latest",
"ripgrep@latest"
],
"shell": {
"init_hook": [
"echo '🚀 Bem-vindo ao ambiente hermético Devbox!'",
"python --version"
]
}
}
🎯 Nível 4: Desafio
Problema 16.4 — Comparação de Velocidade de I/O em WSL2: Ext4 vs NTFS (/mnt/c)
Escreva um script em Bash que crie e compile 1.000 pequenos arquivos em /home/user/bench (ext4) e repita o mesmo teste em /mnt/c/temp/bench (NTFS montado), medindo a diferença percentual de desempenho com hyperfine ou time.
🔑 Gabarito de Código & Solução Comentada
#!/usr/bin/env bash
set -euo pipefail
DIR_EXT4="$HOME/teste_io_ext4"
DIR_NTFS="/mnt/c/temp/teste_io_ntfs"
mkdir -p "$DIR_EXT4" "$DIR_NTFS"
echo "1. Testando I/O no ext4 nativo do Linux..."
time (for i in {1..1000}; do echo "linha $i" > "$DIR_EXT4/arq_$i.txt"; done)
echo "----------------------------------------"
echo "2. Testando I/O no NTFS montado via /mnt/c..."
time (for i in {1..1000}; do echo "linha $i" > "$DIR_NTFS/arq_$i.txt"; done)
# Limpeza
rm -rf "$DIR_EXT4" "$DIR_NTFS"