Português
Appearance
Português
Appearance
Este documento explora em profundidade o design arquitetônico, a seleção tecnológica e a lógica de implementação subjacente das funcionalidades-chave do WSL Dashboard, com o objetivo de fornecer uma perspectiva técnica profunda para desenvolvedores e usuários avançados.
O WSL Dashboard adota uma arquitetura clássica UI reativa + tarefas backend assíncronas, aproveitando o sistema de tipos e o modelo de propriedade da linguagem Rust para garantir segurança de memória e alto desempenho concorrente.
O aplicativo obtém o status das instâncias em tempo real chamando wsl.exe --list --verbose e analisando sua saída (processamento de codificação UTF-16).
A funcionalidade de migração aproveita o mecanismo de importação/exportação do WSL, mas com processamento altamente abstraído e atomizado.
A funcionalidade de rede não é apenas uma chamada simples para netsh interface portproxy.
wsl hostname -I, mapeia automaticamente o IP de rede virtual entre o host e a instância.Utiliza a interface de linha de comando do usbipd-win.
O aplicativo monitora seu próprio uso de recursos chamando APIs nativas do Windows (como GetProcessMemoryInfo).
| Métrica | Objetivo/Medido | Método de otimização |
|---|---|---|
| Velocidade de inicialização | < 500ms | Pré-compilar a interface Slint, reduzindo a análise em tempo de execução. |
| Memória base (bandeja) | ~10MB | Minimizar a frequência de polling em segundo plano, liberando caches de renderização conforme necessário. |
| Uso de CPU (estático) | < 0.1% | Usar o modelo de eventos do Windows, evitando polling de loop vazio. |
| Taxa de renderização | 60 FPS | Aceleração GPU Skia, renderização com anti-aliasing subpixel. |
Para garantir a fluidez da UI, todas as operações que consomem tempo (como exportação VHDX) são distribuídas por meio de tarefas assíncronas:
Command.tokio::sync::mpsc para o processador de tarefas em segundo plano.~\.wsldashboard, sem sincronização em nuvem, protegendo a privacidade do usuário.