한국어
Appearance
한국어
Appearance
이 문서는 WSL Dashboard의 아키텍처 설계, 기술 선택, 핵심 기능의 구현 로직에 대한 심층 분석을 제공하며, 기술적 관점을 찾는 개발자와 고급 사용자를 대상으로 합니다.
WSL Dashboard는 Rust의 타입 시스템과 소유권 모델을 활용하여 메모리 안전성과 높은 동시성 성능을 보장하는 클래식한 반응형 UI 기반 + 비동기 백엔드 작업 아키텍처를 채택합니다.
앱은 wsl.exe --list --verbose를 호출하고 출력을 파싱(UTF-16 인코딩 처리)하여 실시간 인스턴스 상태를 가져옵니다.
마이그레이션 기능은 WSL의 가져오기/내보내기 메커니즘을 활용하지만 높은 수준의 추상화와 원자성을 갖습니다.
네트워킹 기능은 단순한 netsh interface portproxy 호출을 넘어섭니다.
wsl hostname -I 출력을 파싱하여 호스트와 인스턴스 간 가상 네트워크 IP를 자동으로 매핑합니다.usbipd-win 명령줄 인터페이스를 활용합니다.
앱은 네이티브 Windows API(예: GetProcessMemoryInfo)를 호출하여 자체 리소스 사용량을 모니터링합니다.
| 지표 | 목표 / 측정值 | 최적화 접근 방식 |
|---|---|---|
| 시작 시간 | < 500ms | 사전 컴파일된 Slint 인터페이스, 런타임 파싱 최소화. |
| 기본 메모리 (트레이) | ~10MB | 최소화된 백그라운드 폴링 주기, 렌더링 캐시 온디맨드 해제. |
| CPU 사용량 (유휴) | < 0.1% | Windows 이벤트 기반 모델, busy-loop 폴링 없음. |
| 렌더링 프레임 속도 | 60 FPS | Skia GPU 가속, 서브픽셀 안티앨리어싱 렌더링. |
UI 반응성을 보장하기 위해 모든 시간 소모 작업(예: VHDX 내보내기)은 비동기 작업으로 전송됩니다:
Command 메시지로 캡슐화합니다.tokio::sync::mpsc를 통해 백그라운드 작업 핸들러로 전송합니다.~\.wsldashboard 디렉토리에만 저장되며任何形式의 클라우드 동기화가 없어 사용자 프라이버시를 보호합니다.