摘要:〇、基本原理目前的Channel类型枚举值定义如下:enum { SPICE_CHANNEL_MAIN = 1, SPICE_CHANNEL_DISPLAY, SPICE_CHANNEL_INPUTS, SPICE_CHANNEL_CURSOR, SPICE_CHANNEL_PLAYBACK, SPICE_CHANNEL_RECORD, SPICE_CHANNEL_TUNNEL, // 没定义USE_TUNNEL,则此Channel无效 SPICE_END_CHANNEL};每个Channel就是客户端与服务端一个的网络连接。客户端将每个Chan...
阅读全文
随笔分类 - 虚拟化
各种虚拟化解决方案
摘要:〇、概述网络事件处理是libspice设计中最关键的部分,可以说是整个Spice的骨架,用以支撑Spice的运行,是理解Spice运作方式的切入口之一(VDI是另一个阅读代码的切入口)。Spice的server和client通信方式采用了三种框架:1、 Qemu的main函数中采用非阻塞select方式轮训网络事件2、 Libspice中有一个专门的线程,采用非阻塞epoll模型监听网络事件3、 Qemu中采用定时器方式进行网络数据发送一、select模型处理 Spice中最基本的网络事件处理均采用select模型,即大部分的网络事件是在Qemu的主函数中进行捕获的。直接看代码:void ma
阅读全文
摘要:〇、VDI接口工作方式Spice中的VDI(Virtual Device Interfaces)是一个经过专门设计的接口规范,其设计哲学可以推广到很多需要做功能扩展的软件项目中。此类接口设计的主要目标是在尽量不改变原有代码的情况下,通过动态库的方式来为原有软件提供全新的功能组件。这种设计哲学在以开源代码为基础的商业软件开发中,其价值尤为明显,动态库的代码是完全私有的,因此可以不公开代码。具体到VDI,其设计目标是提供一个标准方法,能够将虚拟设备的接口通过软件组件直接开放给其他软件组件使用。这里提到了两次“软件组件”,是VDI接口标准的两大组成部分,前者被称作back-end,后者被称作fron
阅读全文

浙公网安备 33010602011771号