返回 Avalon
DEVELOPMENT

开发进展

查看 Avalon 当前能力、使用说明、已知限制与开发状态。

内容来源README-zh-CN.md
NETWORK站内备用副本
READMEAvalonStream/AvalonStream · bundled fallback
Avalon

一台 Windows 10/11 x64,多个彼此独立的桌面。

把一台普通的 Windows 10/11 x64 主机,变成多个可以同时运行、独立连接和远程串流的 Windows 实例。

每个实例拥有自己的显示、输入、声音、应用和远程连接。

一台主机,多个实例。

English


Avalon 是什么?

Avalon 是一个面向 Windows 10/11 x64 的多会话桌面串流平台。

传统情况下,一台 Windows PC 通常只有一个主要交互桌面。

Avalon 希望改变这一点。

通过 Avalon,同一台 Windows 10/11 x64 主机可以同时运行多个彼此独立的 Windows 实例。

每个实例都可以拥有自己的:

  • Windows 桌面会话
  • 虚拟显示器
  • 分辨率与刷新率
  • 输入
  • 音频
  • 应用与游戏
  • Moonlight 远程串流连接

最终效果很简单:

一台 PC,可以同时被当作多台彼此独立的远程电脑使用。

而这一切并不要求为每个用户运行一整套完整虚拟机。


它实际是什么样的?

假设一台 Windows 10/11 x64 主机上运行三个 Avalon 实例:

                Windows 10/11 x64 主机
                       │
                ┌──────┴──────┐
                │    Avalon    │
                └──────┬──────┘
                       │
         ┌─────────────┼─────────────┐
         │             │             │
         ▼             ▼             ▼
       实例 01       实例 02       实例 03
         │             │             │
         ▼             ▼             ▼
     Moonlight      Moonlight      Moonlight
        电视           平板            笔记本

每一台客户端连接的都是自己的 Windows 桌面。

不同实例之间不会共享同一个桌面、鼠标光标、应用会话或音频输出。


为什么需要 Avalon?

传统远程桌面工具通常围绕:

一个人连接一块桌面

来设计。

完整虚拟机虽然能够提供很强的隔离,但同时也意味着:

  • 多套操作系统
  • 更高的内存占用
  • 更多磁盘空间
  • 更复杂的 GPU 使用方式
  • 更高的部署与维护成本

Avalon 选择另一条路线。

它利用 Windows 会话、虚拟显示、独立串流进程以及统一的生命周期管理,让多个可交互桌面同时存在于同一台 Windows 10/11 x64 主机中。

复杂的部分由 Avalon 处理。

用户实际需要理解的流程只有:

创建实例
    ↓
设置显示与配对
    ↓
打开 Moonlight
    ↓
连接

核心能力

多实例

一台 Windows 10/11 x64 主机可以同时运行多个独立 Windows 会话。

每个实例都是一个可以独立使用的桌面环境。

每个实例独立串流

每个实例拥有自己的串流上下文,并可以通过 Moonlight 单独连接。

例如:

客厅电视可以连接实例 A。

平板可以同时连接实例 B。

另一台电脑可以连接实例 C。

彼此互不干扰。

独立显示

每个实例可以使用自己的虚拟显示配置,包括:

  • 分辨率
  • 刷新率
  • 显示状态

不需要为每个实例都准备一台真实物理显示器。

独立输入

键盘和鼠标输入会被送往对应的 Windows 会话,而不是所有实例共享同一套输入。

Avalon 的输入系统也在继续向更加完整的实例级设备隔离方向发展。

独立音频

每个实例使用自己的 Windows 会话音频路径。

不同用户可以同时运行不同应用、播放不同游戏声音,而不会简单混在一起。

会话自持

Avalon 自己负责创建并保持实例生命周期。

不需要长期挂着一个额外的 RDP 客户端,仅仅为了让会话继续存在。

Web 管理

Avalon 提供统一的 Web 管理界面。

日常操作可以集中完成,例如:

  • 创建实例
  • 删除实例
  • 启动和停止实例
  • 设置分辨率和刷新率
  • Moonlight PIN 配对
  • 查看连接状态
  • 查看诊断信息
  • 管理主机设置

普通使用不需要依赖命令行。


为 Moonlight 而设计

Avalon 不要求用户重新学习一套陌生的串流客户端。

客户端仍然可以使用熟悉的 Moonlight。

包括:

  • Windows
  • Linux
  • macOS
  • Android
  • iPhone / iPad
  • Android TV
  • Moonlight 支持的电视和串流设备

Avalon 改变的是主机端的组织方式。

而不是要求用户重新适应整个串流生态。


使用场景

家庭游戏

一台高性能游戏主机,可以同时服务多个家庭成员。

例如一个人在客厅电视玩游戏,另一个人在掌机或笔记本上连接另一个实例。

多开与多账号

在同一台机器上运行多个彼此分开的 Windows 环境。

适合不同账号、不同应用或者多个游戏会话。

远程工作站

把一台高性能桌面电脑变成多个可以分别远程访问的工作环境。

测试与开发

同时维护多个 Windows 会话,用于:

  • 软件测试
  • 自动化
  • 多用户兼容测试
  • 不同运行环境

Homelab / 自托管

把一台高性能 Windows 主机作为集中管理的多用户远程计算节点。


Avalon 是怎样工作的?

从用户角度看,Avalon 的结构非常简单:

Web 管理
    │
    ▼
Avalon 控制服务
    │
    ▼
Windows 会话
虚拟显示
串流进程
输入 / 音频
    │
    ▼
Moonlight 客户端

底层实现可以很复杂。

但这些复杂度不应该由普通用户承担。

你只需要:

创建一个实例,然后连接它。

剩下的交给 Avalon。


关于隔离

Avalon 提供的是:

Windows 会话级隔离

每个实例拥有自己的:

  • Windows 会话
  • 桌面
  • 应用
  • 显示
  • 输入路径
  • 音频路径

但 Avalon 实例不是完整虚拟机

不同实例仍然共享:

  • 同一套 Windows 主机系统
  • 同一个 Windows 内核
  • 同一颗物理 CPU
  • 同一块物理 GPU
  • 同一台主机的硬件资源

因此不应该把 Avalon 当作 VM 级别的安全隔离边界。

Avalon 的目标是:

高效的多用户、多桌面、远程串流。

而不是完整硬件虚拟化。


当前状态

Avalon 目前处于 Alpha 阶段

项目中的很多部分仍在持续迭代,包括:

  • 会话管理
  • 虚拟显示
  • 输入系统
  • 硬件兼容性
  • Web 管理界面
  • 串流生命周期
  • 诊断系统

Alpha 阶段可能出现:

  • 破坏性更新
  • UI 调整
  • 硬件兼容问题
  • 驱动问题
  • 会话边缘情况
  • 功能行为变化

因此目前不建议把 Avalon 当作关键生产环境基础设施。

现阶段最有价值的是:

测试、日志、可复现 Bug 和真实使用反馈。


平台

当前目标平台:

Windows 10 x64 / Windows 11 x64

Avalon 是围绕 Windows 桌面、会话和图形体系设计的。

目前没有将其他主机操作系统作为主要开发目标。


性能

Avalon 实际能够达到的串流效果取决于:

  • GPU
  • 硬件编码能力
  • 显卡驱动
  • 分辨率
  • 刷新率
  • 编码格式
  • 网络环境
  • 客户端解码能力
  • 同时运行的实例数量

因此 Avalon 不会对所有硬件统一承诺固定的:

4K
120 FPS
HDR
N 个实例

随着测试范围扩大,我们会逐步完善兼容性与性能说明。


Avalon 的理念

Avalon 的核心想法其实很简单:

一台足够强大的 PC,不应该永远只能服务一块屏幕、一个桌面和一个用户。

主机可以只有一台。

但运行在上面的世界,不必只有一个。


开发

Avalon 正在持续开发中。

这份 README 作为 Avalon 的稳定产品介绍。

实时开发动态以及留言说明请查看 devlog.md

Bug、使用问题和功能建议可以通过 GitHub Issues 提交。


Avalon

一台主机,多个实例。