更新时间:2022-08-25 19:07
SPICE协议是最新的基于KVM虚拟机的开源虚拟化桌面传输协议,主要应用于RedHat桌面虚拟化解决方案。
SPICE (Simple Protocol for Independent Computing Environment) 是Red Hat收购Qumranet后获得虚拟技术。SPICE能用于在服务器和远程计算机如桌面和瘦客户端设备上部署虚拟桌面。它类似于其它用于远程桌面管理的渲染协议,如微软的Remote Desktop Protocol或Citrix的Independent Computing Architecture。它支持Windows XP、Windows 7和Red Hat Enterprise Linux等虚拟机实例。大部分SPICE代码是采用GNU GPLv2许可证发布,部分代码是采用LGPL许可证。
SPICE有好几种版本,成功的商业版本主要有SPECTRE(由最初的SPICE作者之一Ken Kundert和Jacob White开始最初的框架)和HSPICE(最初由Meta-Software开发,现属于Synopsys)、Eldo(最初由Anacad公司开发,现属于Mentor Graphics)等。其后由于电路设计规模的级数级增长,旧版本的SPICE的仿真速度远远不能满足需要,并且对电路规模大小也有限制,业界发展了快速SPICE。
Silvaco公司的提供的Smartspice, SmartSpice提供最高的性能和精度,用于设计复杂的高精度模拟电路、模拟混合信号电路、分析关键网路,特性表征单元库等等。SmartSpice兼容于流行的模拟设计流程和foundry提供的器件模型。
在市面上所能看到的许多SPICE同类软件:如OrCADPSpice(OrCAD)、HSPICE(Meta-Software;现属于Synopsys)、IS-SPICE(intusoft)、IG-SPICE(A. B.Associates)、I-SPICE(NCSS timesharing)…等,均是以SPICE2系列为基础再加改进而成的商业化产品。
成功的快速SPICE商业版本主要有HSIM(最初由NASSADA公司开发,NASSDA公司被SYNOPSYS公司购入), NANOSIM(SYNOPSYS,但有电路规模大小的限制,对敏感的模拟电路也有精度的缺陷,在数字电路仿真方面很成功)和ADiT(Evercad,2006年1月被Mentor Graphics并购)、ULTRASIM(CADENCE公司的快速SPICE工具,属于最新的第三代电路仿真工具)等。这些快速SPICE的主要特点是以牺牲准确性换取速度的大幅提高,因此他们的共同问题是如何在快速的同时保持准确性。
其中最广为各级学校电子电机相关科系所使用的,就非OrCAD PSpice莫属了。
与远程桌面服务器的SPICE客户端连接由多个数据通道组成,每个通道都通过单独的TCP或UNIX套接字连接运行。可以指定数据通道以明文或TLS模式运行,允许管理员权衡安全级别与性能。 TLS模式为数据信道上传输的所有流量提供强加密。
除加密外,SPICE协议还允许选择身份验证方案。原始SPICE协议使用共享密钥定义了基于票证的身份验证方案。服务器将生成RSA公钥/私钥对并将其公钥发送给客户端。客户端将使用公钥加密票证(密码)并将结果发送回服务器,服务器将解密并验证票证。当前的SPICE协议还允许使用SASL身份验证协议,从而支持各种管理员可配置的身份验证机制,特别是Kerberos。
虽然只存在一个服务器实现,但自SPICE开源以来,已有多个程序员开发了SPICE客户端的新实现。
spice协议
spice-protocol模块定义了SPICE有线协议格式。这是在BSD许可下提供的,可以在Linux和Windows平台上移植。
spice
spice模块为SPICE协议的服务器端提供参考实现。服务器作为动态库提供,可以链接到任何希望公开SPICE服务器的应用程序。截至2013年,QEMU使用它为虚拟机提供SPICE接口。 spice代码库在LGPL v2 +许可下可用。
2014年12月删除了名为spicec的spice代码库的客户端部分。
spiceGTK
spice-gtk模块使用GObject类型系统和GTK小部件工具包实现SPICE客户端。这包括一个低级库,spice-client-glib,它实现了客户端协议代码,以及一组高级小部件,它们使用GTK提供图形客户端功能。这是在LGPLv2 +许可下提供的,可以在Linux,OS X和Windows平台上移植。
spiceHTML5
spice-html5模块实现了一个使用JavaScript的SPICE客户端,旨在在支持HTML5的Web浏览器中运行。虽然它实现了SPICE协议,但它无法直接与常规SPICE服务器通信。它必须通过WebSocket代理间接连接到服务器。这是在GPLv3 +和LGPLv3 +许可证的组合下提供的。
SPICE协议的起源是在KVM代码库的分支中提供改进的远程桌面功能。
QEMU / KVM
QEMU维护人员在2010年3月合并了对所有QEMU虚拟机提供SPICE远程桌面功能的支持.QEMU二进制文件链接到spice-server库以提供此功能并实现QXL半虚拟化帧缓冲设备以使客户操作系统能够利用SPICE协议提供的性能优势。客户操作系统也可以使用普通的VGA卡,虽然与QXL相比性能会下降。
XSPICE
QXL帧缓冲设备的X.Org Server驱动程序包含一个包装脚本[11],可以启动Xorg服务器,其显示通过SPICE协议导出。这样可以在远程桌面环境中使用SPICE,而无需QEMU / KVM虚拟化。
VIRT-viewe
virt-viewer程序使用spice-gtk客户端库使用SPICE连接到虚拟机,作为其先前对VNC的支持的替代方案。
oVirt
SPICE集成到oVirt私有云管理软件中,允许用户通过SPICE连接到虚拟机。