日本語
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 のイベント駆動モデルを使用、空のループポーリングを回避。 |
| レンダリング FPS | 60 FPS | Skia GPU アクセラレーション、サブピクセルアンチエイリアスレンダリング。 |
UI の滑らかさを保証するため、すべての時間のかかる操作(VHDX のエクスポートなど)は非同期タスクを介して分散されます:
Command メッセージとしてカプセル化します。tokio::sync::mpsc を介してバックエンドのタスクプロセッサに送信されます。~\.wsldashboard にのみローカルに保存され、クラウド同期は行われず、ユーザーのプライバシーが保護されます。