QEMU中VNC Server架构分析

本文深入分析了QEMU的VNC Server架构,包括显卡、VncDisplay、VncState、VncClient和VNCJobQueue等关键概念。在QEMU启动过程中,vnc_init_func()函数负责初始化VNC Server,创建VncDisplay结构,启动worker线程,并建立与VNC客户端的连接。VNC worker thread处理VncJobQueue,更新VncState并将数据发送到客户端。同时,显卡与VncDisplay之间的定时器用于更新图像和鼠标显示。
摘要由CSDN通过智能技术生成

QEMU的入口main函数所在的源文件vl.c中针对QEMU_OPTION_vnc对vnc参数进行解析,vnc选项支持的具体参数在ui/vnc.c中进行定义,如下所示:

static QemuOptsList qemu_vnc_opts = {
    .name = "vnc",
    .head = QTAILQ_HEAD_INITIALIZER(qemu_vnc_opts.head),
    .implied_opt_name = "vnc",
    .desc = {
        {
            .name = "vnc",
            .type = QEMU_OPT_STRING,
        },{
            .name = "websocket",
            .type = QEMU_OPT_STRING,
        },{
            .name = "tls-creds",
            .type = QEMU_OPT_STRING,
        },{
            /* Deprecated in favour of tls-creds */
            .name = "x509",
            .type = QEMU_OPT_STRING,
        },{
            .name = "share",
            .type = QEMU_OPT_STRING,
        },{  
            .name = "display",
            .type = QEMU_OPT_STRING,
        },{  
            .name = "head",
            .type = QEMU_OPT_NUMBER,
        },{  
            .name = "connections",
            .type = QEMU_OPT_NUMBER,
        },{  
            .name = "to",
            .type = QEMU_OPT_NUMBER,
        },{  
            .name = "ipv4",
            .type = QEMU_OPT_BOOL,
        },{  
           
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值