Українська
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, без будь-якої хмарної синхронізації, захищаючи конфіденційність користувача.