Русский
Appearance
Русский
Appearance
В этом документе подробно рассматриваются архитектурный дизайн WSL Dashboard, выбор технологий и логика реализации ключевых функций, предоставляя разработчикам и опытным пользователям взгляд с технической глубиной.
WSL Dashboard использует классическую архитектуру «реактивный UI + асинхронные фоновые задачи», задействуя систему типов и модель владения Rust для обеспечения безопасности памяти и высокой производительности при параллельной работе.
Приложение получает состояние экземпляров в реальном времени, вызывая wsl.exe --list --verbose и разбирая его вывод (с обработкой кодировки UTF-16).
Функция переноса использует механизм импорта/экспорта WSL, но с высокой степенью абстракции и атомарной обработки.
Сетевые функции — это не просто вызов netsh interface portproxy.
wsl hostname -I автоматически сопоставляются виртуальные сетевые IP хоста и экземпляра.Используется интерфейс командной строки usbipd-win.
Приложение контролирует собственное потребление ресурсов, вызывая нативные API Windows (например, GetProcessMemoryInfo).
| Показатель | Цель/факт | Метод оптимизации |
|---|---|---|
| Скорость запуска | < 500 мс | Предкомпиляция интерфейса Slint, уменьшение разбора во время выполнения. |
| Базовая память (трей) | ~10 МБ | Минимизация частоты фоновых опросов, освобождение кэша отрисовки по требованию. |
| Загрузка CPU (в покое) | < 0,1% | Использование событийной модели Windows, отсутствие пустых циклов опроса. |
| Частота кадров отрисовки | 60 FPS | Аппаратное ускорение Skia на GPU, субпиксельное сглаживание. |
Для обеспечения плавности UI все трудоёмкие операции (например, экспорт VHDX) распределяются через асинхронные задачи:
Command.tokio::sync::mpsc обработчику фоновых задач.~\.wsldashboard, без какой-либо облачной синхронизации, защищая конфиденциальность пользователя.