Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1097089
  • 博文数量: 80
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 746
  • 用 户 组: 普通用户
  • 注册时间: 2018-06-12 20:01
个人简介

寫写code、调調bug、填填坑,僅此而已。

文章分类

全部博文(80)

文章存档

2019年(30)

2018年(50)

分类: 架构设计与优化

2019-05-15 15:05:11

最近研究spice相关技术,,
以下内容完全是转载。。。

Spice是一种开放的远程计算解决方案,为远程机器的显示器和设备(例如键盘,鼠标,音频)提供客户端访问。 Spice实现了与本地计算机交互类似的用户体验,同时尝试将大部分密集型CPU和GPU任务从客户端卸载。 Spice适用于LAN和WAN使用,不会影响用户体验。

基础架构

Spice基本构建块是Spice protocol,Spice server和Spice client。 与Spice相关的组件包括QXL device和 guest QXL driver。

图形命令流

上图显示了使用 libspice 和 QEMU 时图形命令的基本Spice架构和 guest 到 client 的数据流。 libspice 也可以被任何其他 VDI 兼容的主机应用程序使用。图形命令数据流由用户程序请求OS图形引擎(X或GDI)执行渲染操作开始。图形引擎将命令传递给QXL driver,QXL driver将OS命令转换为QXL命令并将它们推入命令环。命令环驻留在设备内存中。 libspice 从环中提取命令并将它们添加到图形命令树中。图形命令树包含一组命令,其执行将重新生成显示内容。 libspice使用树来优化到客户端的命令传输,方法是删除被其他命令隐藏的命令。命令树还用于视频流检测。 libspice还维护一个要发送到客户端的 命令队列,以更新其显示。当从队列中拉出命令以传输到客户端时,它被转换为Spice协议消息。从树中删除的命令也会从发送队列中删除。当libspic e不再需要一个命令时,它会被推入设备释放环。驱动程序使用此环来释放命令资源。当客户端收到图形命令时,它使用该命令更新显示。

请参阅转载地址详细内容 

阅读(5608) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~