Extra Guia de Ferramentas • Trilha Progressiva em 4 Níveis


🧭 Navegação Pedagógica


🎯 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)

  1. Salve o arquivo como: Atividade_16_1_SeuNome.md
  2. 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"