简介
Spice是一个开放远程计算方案,提供客户端远程访问显示和设备(例如:键盘、鼠标、声音)。其主要应用场景是远程访问虚拟机,尽管其他用途也是支持的而且已经有许多发展阶段。
当用户尝试去分流一些对于CPU和GPU不敏感的任务的时候,Spice提供一个类桌面的用户体验。
Spice基本模块:
- Spice Server
- Spice Client
- Spice Protocol
- 相关组件:QXL设备和驱动,Spice Agent
spice server
spice server是以libspice的方式呈现给qemu,通过spice protocol,spice server与qemu交互,同时与远端的spice client通信。server通过channel与client通信,每个channel是一个单独的线程,负责一个特定的功能。qxl设备作为一个pci设备为qemu所使用,以提高guest图形性能。
spice client
spice client作为远程访问的客户端程序,主要用来连接、控制、通信和显示。一般来说,通过解析命令行参数、运行主消息循环、处理事件等来实现。