虚拟机图形化使用

在客户机中,特别是对于桌面级的Linux系统和所有的Windows系统来说,虚拟机中的图形显示是非常重要也是几乎必需的功能。本节主要主要介绍KVM中图形界面显示相关配置。

4.5.1 SDL的使用

SDL(Simple DirectMedia Layer)是一个用C语言编写的、跨平台的、免费和开源的多媒体程序库,它提供了一个简单的接口用于操作硬件平台的图形显示、声音、输入设备等。SDL库被广泛应用于各种操作系统(如Linux、FreeBSD、Windows、Mac OS、iOS、Android等)上的游戏开发、多媒体播放器、模拟器(如QEMU)等众多应用程序之中。尽管SDL是用C语言编写的,但是其他很多流行的编程语言(如C++、C#、Java、Objective C、Lisp、Erlang、Pascal、Perl、Python、PHP、Ruby等等)都提供了SDL库的绑定,在这些编程语言中都可以很方便的调用SDL的功能。

在QEMU模拟器中的图形显示默认就是使用SDL的。当然,需要在编译qemu-kvm时需要配置SDL的支持,之后才能编译SDL功能到QEMU的命令行工具中,最后才能启动客户机时使用SDL的功能。在编译qemu-kvm的系统中,需要有SDL的开发包的支持,在RHEL6.3系统中需要安装SDL-devel这个RPM包。如果有SDL-devel软件包,在3.4.2节中配置QEMU时默认就会配置为提供SDL的支持,通过运行configure程序,在其输出信息中可以看到“SDL support   yes”即表明SDL支持将会被编译进去。当然,如果不想将SDL的支持编译进去,在配置qemu-kvm时加上“–disable-sdl”的参数即可,configure输出信息中会显示提示“SDL support   no”。

在运行QEMU命令行的系统中必须安装SDL软件包,否则命令行启动客户机时会有产生“无法加载libSDL”的错误,命令行的输入输出演示如下:

[root@jay-linux kvm_demo]# qemu-system-x86_64 rhel6u3.img

qemu-system-x86_64: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory

[root@jay-linux kvm_demo]# yum install SDL   #安装SDL软件包

SDL的功能很好用,也比较强大,不过它也有一个局限性,就是在创建客户机并以SDL方式显示时,它会直接弹出一个窗口,所以SDL方式只能在图形界面中使用。如果在非图形界面中(如ssh连接到宿主机中),使用SDL时会出现如下的错误信息。

[root@jay-linux kvm_demo]# qemu-system-x86_64 rhel6u3.img

Could not initialize SDL(No available video device) – exiting

qemu-kvm命令启动客户机时,采用SDL方式,其效果如图4-10所示。

图4-10 启动客户机时使用SDL,自动弹出客户机的显示窗口

在使用SDL时,如果将鼠标放入到客户机中进行操作会被完全抢占,此时在宿主机中不能使用鼠标进行任何操作。QEMU默认使用“Ctrl+Alt”组合键[15]来实现鼠标在客户机与宿主机中切换。图4-11显示了客户机抢占了鼠标的使用场景,在QEMU monitor上部边框中提示了按哪个组合键可以释放出鼠标。

图4-11 SDL显示中客户机完全占用鼠标

使用SDL方式启动客户机时,弹出的QEMU窗口是一个普通的窗口,其右上角有最小化、最大化(或还原)和关闭窗口等功能。其中,如果点击了“关闭”按钮,会将QEMU窗口关闭,而同时客户机也被直接关闭了,QEMU进程会直接退出。为了避免因误操作而关闭窗口从而让客户机直接推出的情况发生,QEMU命令行提供了“-no-quit”参数来去掉SDL窗口的直接关闭功能。加了“-no-quit”参数后,SDL窗口中的“关闭”按钮的功能将会失效,而最小化、最大化(或还原)等功能正常。图4-12演示了启动客户机时加上了“-no-quit”参数时情况。

图4-12 添加“-no-quit”参数后,SDL窗口中的关闭窗口功能失效


虚拟机图形化是指在虚拟机环境中实现图形界面的显示和交互,为用户提供更直观、便捷的操作体验。以下是关于虚拟机图形化的实现方法、工具及优势的介绍: ### 实现方法 - **基于软件的图形化解决方案**:利用虚拟机软件自身的图形化功能,如 VirtualBox 和 VMware Workstation 等,这些软件提供了直观的图形化界面,用户可以通过鼠标点击和菜单操作来创建、配置和管理虚拟机。以 VirtualBox 为例,用户可以在其图形界面中轻松设置虚拟机的内存、硬盘、网络等参数,还能直接启动和停止虚拟机。 ```python # 示例代码:使用 VirtualBox 的 Python API 创建虚拟机 import virtualbox vbox = virtualbox.VirtualBox() vm = vbox.create_machine("", "MyVM", [], "", "") vbox.register_machine(vm) ``` - **远程桌面协议(RDP)**:通过 RDP 协议,用户可以在本地计算机上远程连接到虚拟机的图形界面。在虚拟机中开启 RDP 服务,然后在本地使用 RDP 客户端软件(如 Windows 的远程桌面连接)输入虚拟机的 IP 地址和登录信息,即可远程访问虚拟机的图形桌面。 - **X Window 系统**:在 Linux 虚拟机中,X Window 系统是实现图形化的常用方式。它允许用户在虚拟机中运行图形应用程序,并将图形界面显示在本地或远程的客户端上。用户可以通过 SSH 隧道或 VNC 等方式连接到虚拟机的 X Window 系统。 ### 相关工具 - **VirtualBox**:一款开源的虚拟机软件,提供了丰富的图形化管理功能,支持多种操作系统作为虚拟机的客户机系统。它具有直观的用户界面,易于上手,适合个人用户和开发者使用。 - **VMware Workstation**:一款功能强大的商业虚拟机软件,提供了高性能的虚拟机运行环境和完善的图形化管理工具。它支持多线程、快照、克隆等高级功能,广泛应用于企业级的开发和测试环境。 - **VNC(Virtual Network Computing)**:一种远程桌面协议,允许用户通过网络连接到虚拟机的图形界面。VNC 服务器运行在虚拟机中,VNC 客户端可以在本地计算机上安装,通过输入虚拟机的 IP 地址和端口号,即可远程访问虚拟机的桌面。 ### 优势 - **直观易用**:图形化界面使得用户可以通过鼠标点击和菜单操作来完成虚拟机的各种配置和管理任务,无需记忆复杂的命令行指令,降低了使用门槛。 - **可视化管理**:用户可以直观地看到虚拟机的运行状态、资源使用情况等信息,方便进行监控和管理。 - **提高工作效率**:图形化界面提供了丰富的交互功能,如拖放文件、复制粘贴等,使得用户在虚拟机和本地计算机之间的数据传输和操作更加便捷,提高了工作效率。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值