公式 README を読み込み中…
GitHub と設定済みミラーの両方に接続できませんでした。再試行できます。
1 台の Windows 10/11 x64 PC。複数の独立したデスクトップ。
1 台の Windows 10/11 x64 マシンを、表示・入力・音声・アプリ・リモートストリーミング接続をそれぞれ独立して持つ複数のデスクトップインスタンスへ拡張します。
1 台のホスト。複数のインスタンス。
Avalon とは?
Avalon は Windows 10/11 x64 向けのマルチセッション・デスクトップストリーミングプラットフォームです。
通常の PC が 1 つの対話型デスクトップだけを提供するのではなく、同じ Windows ホスト上で複数の独立した Windows インスタンスを同時に動作させます。
各インスタンスはそれぞれ独自の以下の要素を持てます。
- Windows デスクトップセッション
- 仮想ディスプレイ
- 解像度とリフレッシュレート
- 入力ストリーム
- 音声ストリーム
- アプリケーションとゲーム
- Moonlight のリモート接続
これにより、ユーザーごとに完全な仮想マシンを用意しなくても、1 台の高性能 PC を複数台のリモート PC のように利用できます。
実際にはどのように見える?
1 台の Windows 10/11 x64 PC で 3 つの Avalon インスタンスを動かす例です。
Windows 10/11 x64 Host
│
┌──────┴──────┐
│ Avalon │
└──────┬──────┘
│
┌─────────────┼─────────────┐
│ │ │
▼ ▼ ▼
Instance 01 Instance 02 Instance 03
│ │ │
▼ ▼ ▼
Moonlight Moonlight Moonlight
TV Tablet Laptop
各クライアントは自分専用の Windows デスクトップへ接続します。
インスタンスは同じデスクトップ、マウスカーソル、音声出力、アプリケーションセッションを共有せず、並行して動作します。
なぜ Avalon?
従来のリモートデスクトップは、基本的に 1 人のユーザーが 1 つのデスクトップを操作することを前提に設計されています。
仮想マシンは強い分離を実現できますが、複数の OS、追加メモリ、ストレージ消費、GPU 構成の複雑さ、管理コストも伴います。
Avalon は別の方法を選びます。
Windows セッション、仮想ディスプレイ、独立したストリーミングプロセス、集中したライフサイクル管理を組み合わせ、複数の対話型デスクトップを 1 台の Windows 10/11 x64 ホスト上で共存させます。
複雑さは Avalon の内部に留めます。ユーザーが理解する流れはシンプルです。
インスタンスを作成
↓
表示とペアリングを設定
↓
Moonlight を開く
↓
接続
主な機能
複数の独立インスタンス
1 台のホスト上で複数の Windows デスクトップセッションを同時に実行できます。
各インスタンスは独立した対話型デスクトップ環境として動作します。
独立ストリーミング
各インスタンスは独自のストリーミングコンテキストを持ち、Moonlight クライアントから個別に接続できます。
テレビが 1 つのインスタンスへ接続している間に、タブレットや別の PC が別のインスタンスへ同時接続できます。
独立ディスプレイ
各インスタンスは解像度やリフレッシュレートを含む独自の仮想ディスプレイ設定を利用できます。
すべてのインスタンスに物理モニターを用意する必要はなく、表示環境は Avalon が管理します。
独立入力
キーボードとマウス入力は共有されるのではなく、対象となる Windows セッションへルーティングされます。
入力スタックの発展に合わせて、Avalon はインスタンス単位のデバイス分離をより完全にする方向で設計されています。
独立音声
各インスタンスは独自の Windows セッション音声経路を使用するため、複数ユーザーが異なるアプリやゲームの音声を同時に再生しても単純に混ざりません。
セッションのライフサイクル管理
Avalon 自身がセッションを作成し維持します。
インスタンスを生かしておくためだけに、外部の RDP クライアントを常時接続しておく必要はありません。
Web 管理
すべてのインスタンスを 1 つの Web インターフェースから管理します。
代表的な操作は次のとおりです。
- インスタンスの作成と削除
- インスタンスの開始と停止
- 解像度とリフレッシュレートの設定
- Moonlight クライアントのペアリング
- 接続状態の確認
- 診断情報の確認
- ホスト全体の設定管理
通常利用でコマンドラインを扱う必要はありません。
Moonlight をそのまま使う
Avalon は既存の Moonlight ストリーミング体験を活かす設計です。
以下のような端末で、引き続き Moonlight を利用できます。
- Windows
- Linux
- macOS
- Android
- iOS / iPadOS
- Android TV
- Moonlight が対応するスマート TV やストリーミング端末
Avalon が変えるのはホスト側の構成です。まったく新しいストリーミングクライアントを覚える必要はありません。
利用例
家庭内ゲーム
1 台のゲーミング PC を、同じ家庭の複数人が利用できる独立したゲーム環境にします。
一人がリビングのテレビで遊びながら、別の人が携帯ゲーム機やノート PC から別インスタンスへ接続できます。
複数アカウント・複数インスタンス
同じ PC 上で異なるアプリ、アカウント、ゲームセッションを別々の Windows 環境として動かせます。
リモートワークステーション
1 台の高性能デスクトップを、独立してアクセスできる複数のリモート作業環境として利用できます。
テストと開発
ソフトウェアテスト、自動化、互換性検証、ユーザー別環境のために複数の Windows セッションを維持できます。
Homelab とセルフホスト
高性能 Windows マシンを、集中管理できるマルチユーザーのリモートコンピューティングホストとして利用できます。
Avalon の仕組み
Avalon は内部で複数の層を連携させます。
Web Management
│
▼
Avalon Control Service
│
▼
Windows Sessions
Virtual Displays
Streaming Processes
Input / Audio Routing
│
▼
Moonlight Clients
通常ユーザーにとって、これら内部実装を理解する必要はありません。
インスタンスを作成すると、Avalon がセッション、表示、ストリーミング環境、ライフサイクルを準備し、その後クライアントから接続します。
分離モデル
Avalon が提供するのは Windows セッションレベルの分離 です。
各インスタンスは独自の Windows セッション、デスクトップ、アプリ、表示、入力経路、音声経路を持ちます。
ただし、Avalon のインスタンスは 完全な仮想マシンではありません。
次のリソースは共有されます。
- 同じ Windows ホスト環境
- 同じカーネル
- 同じ物理 CPU
- 同じ物理 GPU
- 同じホストのハードウェア資源
したがって Avalon を VM 相当のセキュリティ境界として扱うべきではありません。
目的はハードウェア仮想化ではなく、効率的なマルチユーザー・マルチデスクトップストリーミングです。
現在の状態
Avalon は現在 Alpha 段階です。
アーキテクチャ、管理 UI、互換レイヤー、デバイススタックは継続的に改善されています。
現時点では次のような変更や問題が発生する可能性があります。
- 互換性を壊す変更
- 未完成のハードウェア互換性
- UI の変更
- ドライバーやセッションに関するエッジケース
- 安定版までに変更される機能仕様
現段階の Avalon を本番の重要インフラとして扱うことは推奨しません。
テスト結果、ログ、再現可能なバグ報告、実際の利用フィードバックは非常に重要です。
対応プラットフォーム
現在の対象は次のとおりです。
Windows 10 x64 / Windows 11 x64
Avalon は Windows のデスクトップ、セッション、グラフィックスモデルを中心に設計されています。
現時点で他のホスト OS は主要な開発目標ではありません。
パフォーマンス
実際のストリーミング性能は次のような多くの条件に左右されます。
- GPU
- エンコーダー対応
- グラフィックスドライバー
- 解像度
- リフレッシュレート
- コーデック
- ネットワーク品質
- クライアント側のデコード性能
- 同時に動作するインスタンス数
Avalon はすべてのシステムで特定の解像度、リフレッシュレート、HDR モード、同時インスタンス数を保証するものではありません。
テスト範囲の拡大に合わせて互換性情報を充実させていきます。
プロジェクトの考え方
Avalon はシンプルな考えから始まっています。
高性能な PC は、常に 1 つの画面、1 つのデスクトップ、1 人のユーザーだけに制限される必要はない。
ホストは 1 台でも、その上で動く体験は 1 つである必要はありません。
開発
この README は Avalon の安定した製品紹介として管理します。
リアルタイムの開発状況やプロジェクトからのお知らせは devlog.md を参照してください。
バグ報告、質問、機能要望は GitHub Issues を利用してください。
Avalon
1 台のホスト。複数のインスタンス。
