日本語
Appearance
日本語
Appearance
このドキュメントでは、WSL Dashboard のアーキテクチャ設計、技術選定、および主要機能の基盤となる実装ロジックについて詳しく解説し、開発者や上級ユーザーに技術的な深い視点を提供します。
WSL Dashboard は、古典的な レスポンシブ UI 駆動 + 非同期バックエンドタスク アーキテクチャを採用し、Rust 言語の型システムと所有権モデルを活用して、メモリ安全性と高並行パフォーマンスを確保しています。
アプリは 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 イベント駆動モデルを使用し、空ループのポーリングを回避。 |
| レンダリングフレームレート | 60 FPS | Skia GPU アクセラレーション、サブピクセルレベルのアンチエイリアシングレンダリング。 |
UI の滑らかさを保証するため、すべての時間のかかる操作(VHDX のエクスポートなど)は非同期タスクで配信されます:
Command メッセージとしてカプセル化します。tokio::sync::mpsc を介してバックエンドタスクプロセッサに送信します。~\.wsldashboard にのみ保存され、クラウド同期は一切行わず、ユーザーのプライバシーを保護します。