手机虚拟机哪个好用(安卓手机上最好的虚拟机)

是时候聊一下虚拟机了,因为我们后面即将聊的Linux玩法,包括硬盘分区以及在同一块硬盘上安装多个Linux发行版、在X86的实模式下运行16位的程序、探索Grub和Linux纯字符模式等等,要截图和录像的话,必须借助于虚拟机。 说起虚拟机,大家都不陌生。需要使用虚拟机的场景也非常的多,对于有志于写操作系统的同志,往往需要一个虚拟机来运行和调试他写的系统;对于喜欢研究网络体系结构的朋友,往往需要在自…

是时候聊一下虚拟机了,因为我们后面即将聊的 Linux 玩法,包括硬盘分区以及在同一块硬盘上安装多个 Linux 发行版、在 X86 的实模式下运行 16 位的程序、探索 Grub 和 Linux 纯字符模式等等,要截图和录像的话,必须借助于虚拟机。

说起虚拟机,大家都不陌生。需要使用虚拟机的场景也非常的多,对于有志于写操作系统的同志,往往需要一个虚拟机来运行和调试他写的系统;对于喜欢研究网络体系结构的朋友,往往需要在自己的电脑上虚拟出 N 个系统组成各种各样的网络。(这个需要电脑的配置够强大才行,幸好本人的电脑够。)还有些朋友用着 Windows 却想玩 Linux,用着 Linux 却想玩 Windows,这样用虚拟机玩起来也比较方便;最后对于在 Linux 环境下解决起来比较困难的一些需求,如迅雷、QQ、网银、支付宝等,使用虚拟机安装一个 Windows 系统,也可以非常轻松地搞定。我自己也经常在 Windows 中用 VMWare,感觉它功能强大、使用方便,运行效率也非常高。我的博客中有不少内容都是在虚拟机中折腾出来的。在 Linux 系统下,我也用虚拟机,这一篇随笔就向大家展示一下 Linux 中的几种常见的虚拟机软件。

虚拟机的分类很复杂。什么全虚拟、半虚拟什么的搞得人头晕。而且桌面用户和企业级用户对虚拟机的期望值是不一样的。比如说,我可能期望这样一个虚拟机:

1.它能模拟出一台完整的个人电脑,我可以给它安装任何我想安装的操作系统;

2.它要有比较好用的图形界面,模拟出的电脑也要能无障碍运行 Windows 或 Gnome 这样的图形系统,能打游戏最好;

3.客户操作系统所用的硬盘就是宿主操作系统中的一个镜像文件,随时可复制粘贴,随时可打包带走;

4.最好能模拟出一些本身不存在的硬件,像多个网卡什么的。

很显然,VMWare Workstation 就是这样一个可以完美满足我要求的桌面用户最满意的虚拟机。我经常使用它来折腾各个 Linux 发行版,而且运行流畅。当然,在 Linux 这个开源的世界我们是不该去使用破解版这样的东西的。不过不用担心,在 Linux 江湖中,还有 VirtualBox、QEMU 这样的虚拟机软件可用。

而企业级用户呢,他们期望的虚拟机可能是这样的:

1.它不一定能模拟出一台完整的电脑,重点是 CPU、内存、磁盘和网卡,重点是能当服务器使用;

2.它的性能一定要好,虚拟的 CPU 性能一定要接近物理 CPU,一定要充分利用物理 CPU 的所有特性,为了性能,甚至只能安装经过修改过内核的操作系统;(所谓的半虚拟化技术。)

3.它隔离性一定要好,它的目的是把一台机器分成 N 台机器用,而管理这 N 台虚拟机的宿主机要越不占用资源越好,客户机是主,宿主机是次;(正如 Xen 这样。)

4.由于企业级用户对性能的追求,所以客户机所用的硬盘可能真是一个独立的物理硬盘、磁盘阵列、网络文件系统什么的,而不仅仅只是宿主机上的一个镜像文件;

5.它不一定需要有图形界面,因为使用命令行更容易管理,像自动化啊、远程化啊、批量化啊什么的;

6.更多的企业级高可用性需求,像什么热备份啊、动态迁移啊等等。

从上面这些期望值可以看出,虚拟机领域水很深,市场前景也很广阔。各个虚拟机厂家把自家产品吹得天花乱坠那也是很常见的,因为每一个用户期望的点都可以大做文章嘛。所谓临渊羡鱼,不如退而结网,各种虚拟机看得再过瘾,也不如自己尝试一下。

能模拟不同硬件架构的虚拟机 —— QEMU##

还是老规矩,先给出参考资料,它的学习资料还在这里: QEMU 的官方文档 。

或者,在自己的系统中输入如下命令查看手册页:

man qemu-system-i386
man qemu-img
等等...

QEMU 本身就是一个非常强大的虚拟机,甚至可以在 Xen、KVM 这些虚拟机产品中都少不了 QEMU 的身影。在 QEMU 的官方文档中也提到,QEMU 可以利用 Xen、KVM 等技术来加速。为什么需要加速呢,那是因为如果单纯使用 QEMU 的时候,它里面的 CPU 等硬件都是模拟出来的,也就是全虚拟化,所以运行速度是肯定赶不上物理硬件的。它甚至可以模拟不同架构的硬件,比如说在使用 Intel X86 的 CPU 的电脑中模拟出一个 ARM 体系的电脑或 MIPS 体系的电脑,这样模拟出的 CPU,运行速度更加不可能赶上物理 CPU。使用加速以后呢,可以把客户操作系统的 CPU 指令直接转发到物理系 CPU,自然运行效率大增。

QEMU 同时也是一个非常简单的虚拟机,给它一个硬盘镜像就可以启动一个虚拟机,如果想定制这个虚拟机的配置,用什么样的 CPU 啊、什么样的显卡啊、什么样的网络配置啊,只需要指定相应的命令行参数就可以了。它支持许多格式的磁盘镜像,包括 VirtualBox 创建的磁盘镜像文件。它同时也提供一个创建和管理磁盘镜像的工具 qemu-img。QEMU 及其工具所使用的命令行参数,直接查看其文档即可。

下面开始体验。先看看 Ubuntu 软件源中和 QEMU 有关的包有哪些:

linux系统下,我也用虚拟机——linux虚拟机随笔
linux系统下,我也用虚拟机——linux虚拟机随笔

我的电脑是 Intel 的 CPU,而我想虚拟的也是个人电脑,所以我安装的自然是 qemu-system-x86,另外一个有用的是 qemu-utils。查看 QEMU 软件包中的工具及文档:

linux系统下,我也用虚拟机——linux虚拟机随笔

使用 qemu-img 创建磁盘映像文件,使用 qemu-system-i386 启动虚拟机,并安装操作系统:

linux系统下,我也用虚拟机——linux虚拟机随笔

WinXP 估计是目前全网络上最好下载的操作系统了。运行以上命令后,弹出熟悉的系统安装界面。安装过程我就不啰嗦了。下图是安装完 WinXP 操作系统之后的效果。可以给 qemu-system-i386 指定更多的参数,在再一次启动 WinXP 的时候,我除了给它分配了 2G 内存,我还使用 -smp 2 参数为它分配了两个 CPU,还使用 -vga vmware 为它指定和 VMWare 虚拟显卡一样的显卡。虽然指定两个 CPU,但是性能仍较差。随便拖动一下窗口 CPU 使用率就飙升到 100%。

linux系统下,我也用虚拟机——linux虚拟机随笔

而且从上图中可以看到,虚拟机中的 CPU 虽然显示为 3.5GHz,但是很显然是 QEMU 模拟出来的,和物理 CPU 有显著差别。事实上我的电脑配置相当强悍,Core i7-4770K 的四核八线程 CPU,请看 lshw 的输出结果:

linux系统下,我也用虚拟机——linux虚拟机随笔

Intel Core i7-4770K 的 CPU,虚拟出的 XP 也分配了 2G 的内存和两个 CPU,但是流畅度仍较差。说明单纯使用 QEMU 还是不能满足我们桌面用户的需要。配合Xen 或者 KVM 呢?性能是否会有质的飞跃呢?

更多linux内核视频教程文本资料免费获取后台私信【内核】。

linux系统下,我也用虚拟机——linux虚拟机随笔

被加入 Linux 内核的虚拟机 —— KVM##

上一节展示的 QEMU 是一个强大的虚拟机软件,它可以完全以软件的形式模拟出一台完整的电脑所需的所有硬件,甚至是模拟出不同架构的硬件,在这些虚拟的硬件之上,可以安装完整的操作系统。QEMU 的运行模式如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

很显然,这种完全以软件模拟硬件的形式虽然功能强大,但是性能难以满足用户的需要。模拟出的硬件的性能和物理硬件的性能相比,必然会大打折扣。为了提高虚拟机软件的性能,开发者们各显神通。其中,最常用的办法就是在主操作系统中通过内核模块开一个洞,通过这个洞将虚拟机中的操作直接映射到物理硬件上,从而提高虚拟机中运行的操作系统的性能。如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

其中 KVM 就是这种加速模式的典型代表。在社区中,大家常把 KVM 和 Xen 相提并论,但是它们其实完全不一样。从上图可以看出,使用内核模块加速这种模式,主操作系统仍然占主导地位,内核模块只是在主操作系统中开一个洞,用来连接虚拟机和物理硬件,给虚拟机加速,但是虚拟机中的客户操作系统仍然受到很大的限制。这种模式比较适合桌面用户使用,主操作系统仍然是他们的主战场,不管是办公还是打游戏,都通过主操作系统完成,客户操作系统只是按需使用。至于 Xen,则完全使用不同的理念,比较适合企业级用户使用,桌面用户就不要轻易去碰了,具体内容我后面再讲。

其实 VirtualBox 也是采取的这种内核模块加速的模式。我之所以这么说,是因为在安装 VirtualBox 时,它会要求安装 DKMS。如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

熟悉 Linux 的人知道,DKMS 就是为了方便用户管理内核模块而存在的,不熟悉 DKMS 的人 Google 一下也可以了解个大概。关于 VirtualBox 的具体使用方面的内容,我下一节再讲。这一篇主要讲 KVM。

KVM 和 QEMU 是相辅相成的,QEMU 可以使用 KVM 内核模块加速,而 KVM 需要使用 QEMU 运行虚拟机。从上图可以看到,如果要使用 Ubuntu 的包管理软件安装 KVM,其实安装的就是 qemu-kvm。而 qemu-kvm 并不是一个什么很复杂的软件包,它只包含很少量几个文件,如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

用 man 命令查看一下它的文档,发现 qemu-kvm 包不仅包含的文件很少,而且它的可执行文件 kvm 也只是对 qemu-system-x86_64 命令的一个简单包装,如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

那么问题来了,kvm 内核模块究竟是由哪个包提供的呢?其实,自从 Linux 2.6 开始,kvm 就已经被加入内核了。如果非要找出 kvm 内核模块 kvm.ko 是由哪个包提供的,可以用如下命令考察一下:

linux系统下,我也用虚拟机——linux虚拟机随笔

写到这里,已经可以看出 KVM 的使用是很简单的了。下面,我使用 KVM 运行一下上一篇中安装的 WinXP 操作系统,体验一下 QEMU 经过 KVM 加速后的运行效率。使用如下命令运行使用 KVM 加速的 QEMU:

linux系统下,我也用虚拟机——linux虚拟机随笔

可以看出,使用 KVM 加速后,虚拟机中的 WinXP 运行速度提升了不少,开机只用了 34 秒。我将分辨率调整为 1366*768,图形界面运行也很流畅,不管是打开 IE 浏览器还是 Office 办公软件都没有问题,再也没有出现 CPU 使用率飙升到 100% 的情况。如果用 ps -ef | grep qemu 命令查看一下,发现 kvm 命令运行的还是 qemu-system-x86_64 程序,只不过加上了 -enable-kvm 参数,如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

另外,对于桌面用户来说,有一个好用的图形化界面也是很重要的。虽然 QEMU 和 KVM 自身不带图形界面的虚拟机管理器,但是我们可以使用第 3 方软件,比如 virt-manager。只需要使用 sudo apt-get install virt-manager 即可安装该软件。该软件依赖于 libvirt,在安装过程中也会自动安装。运行 virt-manager 的效果如下图,注意必须使用 sudo 运行,因为该软件需要超级用户权限:

linux系统下,我也用虚拟机——linux虚拟机随笔

该软件可自动识别系统中的虚拟机环境是 QEMU+KVM 还是 Xen。新建一个虚拟机,由于之前安装过一个 WinXP 系统,所以选择导入现有硬盘镜像。点下一步后,出现如下界面:

linux系统下,我也用虚拟机——linux虚拟机随笔

这一步没什么好说的,再点下一步,如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

这里可以设置网络选项。如果勾选“在安装前自定义配置”的话,还可以对硬件进行进一步的自定义,如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

在上图中,我们可以看到虚拟机支持的所有虚拟显卡的类型,在这里,我当然选择的是 VMVGA,因为我以前经常用 VMWare,知道这些操作系统在 VMWare 的虚拟显卡设置下运行得都没有问题。当然,其它的选项都可以试一下,不过在虚拟的操作系统中需要安装相应的驱动程序。

最后,虚拟机运行的效果图如下:

linux系统下,我也用虚拟机——linux虚拟机随笔

可以看到,该程序提供的界面有非常丰富的功能菜单,功能是非常强大的,甚至可以向虚拟机中的操作系统发送组合按键。

可以这么说,如果没有 VirtualBox 的话,QEMU+KVM 的组合应该是桌面用户的首选。

VirtualBox —— 性能强大的经典架构##

VirtualBox 号称是目前开源界最强大的虚拟机产品,在 Linux 平台上,基本上都被大家选择为首选的虚拟机软件。VirtualBox 的强大不是盖的,毕竟其后台是超有钱的 Oracle 公司。VirtualBox 的任性也不是盖的,它硬是没有使用我前文所述的那些 qemu、kvm、libvirt 等被各个虚拟机使用的开源组件,它的前端、后端以及内核加速模块都是自己开发的,唯有远程桌面所需要的 VNC 大约使用了 libvncserver。

我在标题中说到 VirutalBox 是使用的经典架构。所谓经典,主要体现在以下几个方面:

1.虚拟机及虚拟机中的系统(Guest System)仍运行于主操作系统(Host System)之上,只是通过主操作系统的内核模块进行加速;

2.Unix 系统中 Front-End 模式的经典架构,在 VirtualBox 中,VirtualBox 的图形界面只不过是命令行界面的虚拟机软件 VBoxManage 的图形包装而已,同时,它还提供 VBoxSDL、VBoxHeadless 等命令行工具。VBoxHeadless 就可以运行一个不显示虚拟机桌面的虚拟机,如果要显示桌面,可以运行一个远程桌面连接它。前后端分离有一个好处,就是对于桌面用户,可以使用前端的图形界面简化操作,而对于企业级用户,可以使用命令行工具构建自动化脚本,甚至在系统启动时自动运行虚拟机。

我并不是一开始就喜欢上 VirtualBox 的,一点小小的插曲差点就让我错过了这么好的虚拟机软件。本来我刚开始看到在各个 Linux 论坛都将 VirtualBox 放到首位,而不是在新闻中铺天盖地的 KVM、Xen,我就觉得 VirutalBox 可能有点不够专业,再加上第一次使用 VirtualBox 时,发现它不能完美转发 Ctrl+Alt+Fx(x=1~12),发现它的有些配置不能完全在图形界面中设置,需要手动更改配置文件,然后我就放弃了。直到我掌握的正确的折腾 Linux 的方法论,看完了它长达 369 页的用户手册,我才真正了解了它的强大,并深深爱上了它。VirtualBox 把右边的 Ctrl 定义为 Host 键,要向客户机发送 Ctrl+Alt+Fx,只需要按 Host+Fx 就行了。

首先,在 Ubuntu 中安装 VirutalBox 是非常容易的,只需要一个 sudo apt-get install virtualbox 即可。

安装完 VirtualBox 后,可以考察一下它所遵守的我之前提到的“经典架构”,命令和运行结果如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

lsmod 命令可以看到 VirtualBox 安装后,在主操作系统中安装了好几个内核模块,用来对虚拟机进行加速。至于使用内核模块对虚拟机加速的图片我这里就不再贴了,请大家参考我的上一篇。通过 dpkg -L 命令可以考察 VirtualBox 提供了哪些命令行工具。最后,通过 dpkg -S 命令可以看到,VirtualBox这个可执行程序其实是属于 virtualbox-qt 软件包的,它只是一个图形界面的封装。

启动 VirtualBox,新建虚拟机和安装操作系统的过程我就不多说了,图形界面很强大,一步一步执行准没错。安装完 WinXP 后,运行效果如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

从该图中可以看出,WinXP 系统认出的 CPU 是准确的 Intel Core i7-4770K,虽然我只给它分配了两个核心。但是显卡不能准确识别。之所以是这样,是因为 WinXP 系统中没有相应的驱动,所以,需要安装 VirtualBox 的客户系统增强工具。在菜单栏选择安装增强功能,如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

然后 VirtualBox 就会给 WinXP 安装一个虚拟光盘,双击该光盘,就可以在 WinXP 系统中安装客户系统增强工具,如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

客户系统增强工具是安装在 Guest System 中的,可以认为客户系统增强工具主要是包含了客户操作系统中所需要驱动,因为没有这些驱动,客户操作系统可能无法认识那些虚拟出来的硬件,比如虚拟显卡什么的。当然,客户系统增强工具的功能远远不止这些,比如显卡 3D 加速啊、主操作系统和客户操作系统共享文件夹啊什么的,还有一个最牛 B 的,那就是让客户操作系统进入无缝模式。比如安装完用户增强工具后,可以识别出显卡类型,并且有不同的分辨率选项,如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

按 Host+L 键,可以键入无缝模式,如下图,可以看到在 Ubuntu 系统中,Ubuntu 风格的窗口和 WinXP 风格的窗口共存:

linux系统下,我也用虚拟机——linux虚拟机随笔

再玩大一点,使用 IE 浏览器访问博客园,如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

由此可见,在 Linux 系统中使用 Windows 的软件进行办公不再是梦,什么网银、什么 QQ,一样毫无障碍。再按 Host+L 键,虚拟机会回到窗口模式。

VirtualBox 功能非常强大,单凭我这一篇博文是不可能学会的。好在是我这一个系列一直都是秉承“授人以鱼不如授人以渔”的原则,一直都是指导折腾 Linux 系统的方法论,并贴图让没有亲自动手机会的人也对 Linux 系统有一个直观的感受,也一直指出从哪里可以找到相应的学习资料。用 dpkg -L 命令,就可以找出我前面提到的 VirtualBox 自带的长达369页的文档,使用 Ubuntu 自带的 evince 阅读器阅读之,如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

当然,也可以从官网下载 VirtualBox 官方文档 pdf 版,放到手机上有空的时候慢慢阅读。至于我前面说的 VirtualBox 这不能那不能什么的,完全都是我自己不切实际的瞎说,等你看完它的文档,你就会发现它没有什么是不能的。就 VirtualBox 在我机器上的运行效果看,流畅度要超过前面的 QEMU+KVM组合,图形性能也要更加强大。它的文档中还有更多更高级的玩法,仔细阅读吧,精通命令行和配置文件不是梦,而且 VirtualBox 并不仅仅适用于桌面用户,对于企业级的应用,它也是可以的。

Xen —— 令人脑洞大开的奇异架构##

在虚拟机领域,Xen 具有非常高的知名度,其名字经常在各类文章中出现。同时 Xen 也具有非常高的难度,别说玩转,就算仅仅只是理解它,都不是那么容易。之所以如此,那是因为 Xen 采用了和我前面介绍的那几个虚拟机完全不同的架构。在这里,我称之为令人脑洞大开的奇异架构。

在经典的虚拟机架构中,虚拟机软件运行于 Host System 之中,而 Guest System 运行于虚拟机软件之中。为了提高 Guest System 的运行速度,虚拟机软件一般会在 Host System 中使用内核模块开一个洞,将 Guest System 的运行指令直接映射到物理硬件上。但是在 Xen 中,则根本没有 Host System 的概念,传说它所有的虚拟机都直接运行于硬件之上,虚拟机运行的效率非常的高,虚拟机之间的隔离性非常的好。

当然,传说只是传说。我刚开始也是很纳闷,怎么可能让所有的虚拟机都直接运行于硬件之上。后来我终于知道,这只是一个噱头。虚拟机和硬件之间,还是有一个管理层的,那就是 Xen Hypervisor,只不过这个管理层可以做得相当薄。当然 Xen Hypervisor 的功能毕竟是有限的,怎么样它也比不上一个操作系统,因此,在 Xen Hypervisor 上运行的虚拟机中,有一个虚拟机是具有特权的,它称之为 Domain 0,而其它的虚拟机都称之为 Domain U。

Xen的架构如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

从图中可以看出,Xen 虚拟机架构中没有 Host System,在硬件层之上是薄薄的一层 Xen Hypervisor,在这之上就是各个虚拟机了,没有 Host System,只有 Domain 0,而 Guest System 都是 Domain U,不管是 Domain 0 还是 Domain U,都是虚拟机,都是被虚拟机软件管理的对象。

既然 Domain 0 也是一个虚拟机,也是被管理的对象,所以可以给它分配很少的资源,然后将其余的资源公平地分配到其它的 Domain。但是很奇怪的是,所有的虚拟机管理软件其实都是运行在这个 Domain 0 中的。同时,如果要连接到其它 Guest System 的控制台,而又不是使用远程桌面(VNC)的话,这些控制台也是显示在 Domian 0 中的。所以说,这是一个奇异的架构,是一个让人很不容易理解的架构。

这种架构桌面用户不喜欢,因为 Host System 变成了 Domain 0,本来应该掌控所有资源的主操作系统变成了一个受管理的虚拟机,本来用来打游戏、编程、聊天的主战场受到限制了,可能不能完全发挥硬件的性能了,还有可能运行不稳定了,自然会心里不爽。(Domain 0确实不能安装专用显卡驱动,确实会运行不稳定,这个后面会讲。)但是企业级用户喜欢,因为所有的 Domain 都是虚拟机,所以可以更加公平地分配资源,而且由于 Domain U 不再是运行于 Domian 0 里面的软件,而是和 Domain 0 平级的系统,这样即使 Domain 0 崩溃了,也不会影响到正在运行的 Domain U。(真的不会有丝毫影响吗?我表示怀疑。)

下面开始在 Ubuntu 系统中体验 Xen。使用如下命令可以在 Ubuntu 的软件源中搜索和 Xen 相关的软件包以及安装 Xen Hypervisor:

sudo aptitude search xen
sudo aptitude install xen-hypervisor-4.4-amd64

传说在旧版本的 Xen Hypervisor 上只能运行经过修改过的 Linux 内核。但是在目前的版本中不存在该问题。我机器上的 Ubuntu 14.10 系统不经任何修改,就可以当成 Domain 0 中的系统运行。至于是否让该系统运行于 Xen Hypervisor 上,在启动时可以选择,如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

通过查看 Grub 的配置文件,可以看到通过 Xen 虚拟机启动 Ubuntu 系统时,Grub 先启动的是 /boot/xen-4.4-amd64.gz,然后才把 Linux 内核以及 initrd 文件作为模块载入内存。也就是说,Grub 启动 Xen Hypervisor,然后 Xen Hypervisor 运行 Domian 0。

linux系统下,我也用虚拟机——linux虚拟机随笔

前面提到 Host System 一下子变成了 Domain 0 中的操作系统是让桌面用户比较不爽的事,这里详细论述。虽然说目前的 Xen 同时支持全虚拟化和半虚拟化,支持操作系统不经任何修改就运行于 Xen 虚拟机上(全虚拟),但是系统是否稳定还是和内核有很大关系的。比如说我在 Ubuntu 14.04 刚推出的那段时间,在 Ubuntu 14.04 中使用 Xen 是没有什么问题的,但是经过几次系统升级后,Xen 就出问题了,没办法成功进入 Domain 0 中的 Ubuntu 14.04。现在我用的是 Ubuntu 14.10,已经升过好几次级了,目前使用Xen还是很稳定的。其次就是显卡驱动的问题,我的 Ubuntu 当主系统用时,使用的是 NVIDIA 的显卡驱动,但是当 Ubuntu 运行于 Domain 0 中时,就不能使用 NVIDIA 的显卡驱动了,否则无法进入图形界面。

下面来测试一下 Xen 虚拟机的运行效果。通过前文的探讨,可以看出一个虚拟机的运行需要两个要素:一是一套虚拟的硬件系统,二是一个包含了操作系统的磁盘镜像。QEMU 虚拟机关于硬件的配置全由命令行指定,VirtualBox 虚拟机的硬件配置存在于配置文件中,而 Xen 呢,它也存在于配置文件中,这个配置文件要我们自己写。至于磁盘镜像,还是复用我之前创建的那个 WinXP.img 吧,记住,它是 qcow2 格式的。

先进入我主目录的 virtual-os 目录,ls 看一下,里面有我之前创建的 WinXP.img。然后,我们创建一个 WinXP_Xen.hvm 配置文件,其内容如下:

builder = \"hvm\"
name = \"WinXP_Xen.hvm\"
memory = 2048
vcpus = 2
disk = [ \'/home/youxia/virtual-os/WinXP.img, qcow2, hda, rw\' ]
sdl = 1

这段配置文件很简单,也很容易懂。 hvm 代表这是一个全虚拟化的虚拟机,和全虚拟化相对的是半虚拟化,半虚拟化只能运行经过修改的内核,但是可以获得更高的性能。为该虚拟机分配 2 个 CPU 和 2G 内存,并指定硬盘镜像文件。最后一个 sdl=1 表示使用 SDL 图形库显示虚拟操作系统的界面,如果不想用 SDL,也可以写成 vnc=1,这样需要使用 vncviewer 才能连接到虚拟机操作系统的桌面。

至于 Xen 的配置文件怎么写,管理命令怎么用,这个必须得有学习资料。通过 man xl 和 man xl.cfg 查看手册页是可以的,但是最全面的资料还是在 Xen 的官网 上。

使用 sudo xl list 命令可以看到系统中只有一个Domain 0在运行,然后使用 sudo xl create -c WinXP_Xen.hvm 即可运行一个 Domian U 虚拟机,该虚拟机使用 WinXP_Xen.hvm 配置文件。 xl 命令的 -c 选项表示把 Domain U 的控制台显示在 Domain 0 中,如果不用 -c 选项而使用 -V 选项,则创建虚拟机后使用 vncviewer 进行连接。新建的虚拟机运行起来后,再次使用 sudo xl list 命令,可以看到除了Domain 0,还多了一个名称为“WinXP_Xen.hvm”的虚拟机。运行效果如下图:

linux系统下,我也用虚拟机——linux虚拟机随笔

关于 Xen 更多更高级的功能,比如动态迁移什么的,我这里就不试了。至于说到 Xen 虚拟机的隔离性,如果一个 Domain U 崩溃了,肯定是不会影响到 Domain 0和其它 Domain U 的,但是如果 Domain 0 崩溃了,Domain U 真的不会受到任何影响吗?Domain 0 崩溃了怎么重启它呢?这都是我没想明白的问题。在折腾 Xen 的过程中,我曾多次重启过机器,重启后一看,WinXP_Xen.hvm 还在继续运行,似乎是没有受到 Domain 0 的影响,但是我就想,我机器都重启了,电源都断了,Domain U 它真的能丝毫不受影响吗?

我觉得,Xen 虚拟机不应该是桌面用户的首选,因为它架构比较奇异不容易理解,可能因内核升级而出现不稳定,不能充分发挥桌面硬件的性能,如不能使用 Nvidia 的显卡;桌面用户还是应该首选 VirtualBox。企业及客户可以考虑 Xen,因为它可以提供较好的性能和隔离性,企业级用户不需要桌面用户那么多的功能,所以可以把 Domain 0 做到很薄,可以完全不要图形界面,也不用经常升级内核,甚至可以选择一个经过修改优化的内核,这样就可以在一套硬件上运行尽可能多的虚拟机。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月18日 下午10:13
下一篇 2022年5月19日 上午9:23

相关推荐

  • 微信公众号怎么发多篇文章,微信推送多篇文章技巧

    公众号运营者行开始的时候发文都是一篇一篇的推送,看到别的公众号一次能发好几篇,觉得奇怪,研究了一下,原来也不难,只是我们没有找到而已,今天就来分享一下如何一次推送多篇文章 首先我们登录微信公众平台,和写文转载文章一样,找到原创管理–新建图文素材 2.然后左边有个加号,可以写文章,转载文章,还有一个就是选择图文,推送多篇文章就是通过选择图文实现的,例如我们转载一篇文章,编辑完成,点击选择图文,就会…

    2022年9月1日
    3000
  • 广告推广渠道有哪些,五种常见的广告宣传方式

    信息流广告投放,渠道的选择尤为重要,不平渠道分布着不同的受众人群。 巨量引擎投放平台解读 巨量引擎大家都知道吧,今日头条、抖音、西瓜以及火山小视频都是在巨量引擎平台进行信息流广告投放的。 在巨量引擎2019年第四季度投放的信息流广告中,以电商推广为目的的广告占比最多,达到53.38%,活动推广类广告数占比34.20%,应用推广广告数占比12.41%,服饰鞋包、护肤美容、教育培训、文化娱乐及游戏为该…

    2022年7月30日
    560
  • 扫描仪软件怎么安装(扫描电子产品的软件推荐)

    相信大家的手机都已经更新了鸿蒙2.0系统,这次更新新增了一个神奇的功能——扫描仪,我真的是爱惨了,只需要对准图片,一键提取纸上文字,接下来就让我们一起看看吧! 一&提取图片文字 1、没有更新鸿蒙前,总是用翻译功能去提取图片文字,自从更新鸿蒙后,直接打开扫描仪功能就可以一秒将图片文字提取出来,只需要对准需要提取的文字。 2、识别成功后,只需要选中想要提取的文字,下方会自动识别出来,每一个标点…

    2022年5月9日
    1000
  • 2020年网络营销的发展趋势是怎样,网络营销未来前景分析

    互联网的发展经历了快速上升期后已经进入平台期,总用户数和流量已基本稳定。媒体和平台呈现两极分化态势,量级向头部媒体集中,小而散的越来越少,走向联盟整合。行业发展专业分工越来越明确。 而现在的用户越来越难被满足。一方面是用户时间更碎片,行为规律越来越分散,个性化更强;另一方面是各种各样的广告充斥在各个APP、网页、地铁公交、电视商场等,360度包围着,用户难免审美疲劳,多次尝试之后熟知各种营销套路,…

    2022年6月25日
    1070
  • 收款专用章的法律效力,收款专用章和财务专用章的区别

    现实生活中,公司的印章种类很多,主要有公章、财务专用章、合同专用章、法定代表人章、发票专用章等等。其中公章用于公司对外事务处理,工商,税务,银行等外部事务处理事需要加盖;财务专用章主要用于公司票据的出具,支票等在出具时需要加盖,通常称为银行大印鉴;合同专用章,顾名思义,通常在公司签订合同时需要加盖。法定代表人章,用于特定的用途,公司出具票据时也要加盖此印章,通常称为银行小印鉴;发票专用章,在公司开…

    2022年9月21日
    600
  • 苹果如何备份微信聊天记录,试试这两个方法简单易操作

    前几天看到有小伙伴提问,怎么能把手机微信聊天记录导出到电脑微信中呢?其实在这里小编要告诉大家,手机端微信和电脑端微信编码方式是不同,所以并不能将手机微信的聊天记录导到电脑微信中,但是你可以将手机微信的聊天记录直接导入电脑进行查看,这个也是非常方便的。 特别是针对一些常用微信沟通的白领,如果想要将一些重要的手机微信聊天记录导出到电脑上进行保存,方便以后查看的话,下面的方法就非常有用了。废话不多说了,…

    2022年8月1日
    600
  • 商标变更地址流程,商标局变更地址收费吗

    商标变更地址多少钱?2018年商标变更费用多少?一般情况下,当我们申请商标注册后,商标局核准注册后,我们就享有了该商标的使用权。在使用过程中,如因企业合并、公司发展而需变更地址、注册人名义发生改变及删减指定的商品的,应向商标局办理变更商标手续。那么,商标变更地址多少钱?商标地址如何变更呢? 商标变更地址多少钱? 商标局规定一次变更费用为250元,也就是说如果只变更地址要250元。 如果是委托商标代…

    2022年6月16日
    640
  • 搜索引擎优化是什么,了解搜索引擎优化的重要性

    SEO:汉译为搜索引擎优化,是指在了解搜索引擎自然排名机制的基础之上,对网站进行优化,提高网站在搜索引擎中关键词的自然排名,获得更多的展现量,吸引更多用户点击访问,从而达到品牌曝光及营销目标。网络优化包含站外优化和站内优化两方面。 为什么要做SEO?我再从这几个方面来跟大家说说,首先,SEO可以获得免费流量,自然排名这些位置大部分是不需要花钱就能得到的,而且做成熟之后会有源源不断的咨询量,比如体系…

    2022年8月2日
    520
  • 联想超薄智能手机怎么样,联想最新款超薄手机测评

    对于联想,最近好像在京东全线下架了,据说是京东没有得到联想同意把把联想手机全线降价了,导致没有谈拢结果在京东找不到联想相关的手机。虽然联想自己的手机品牌热度不是很高,连ZUK也被放弃了,不过Moto系列是联想的高端手机,毕竟Moto当年也是高端热门手机,从目前情况来看,还是发展的比较好的。 最近联想对于Moto系列手机又有了新动作,继模块化手MotoZ之后的又一部轻薄手机motoRAZR,这部手机…

    2022年9月27日
    360
  • seo网站优化工具有哪些,网站seo分析常用工具介绍

    作为一名seo优化人员不仅要懂得网站的优化方法,还要懂用seo优化工具来加快网站的优化过程 今天小编就为大家推荐几款非常实用的网站seo优化工具: seo必备工具 一、SEO在线优化工具 1.1SEO综合查询-站长工具 简介:seo综合查询可以查到该网站各大搜索引擎的信息、收录、反链以及关键词排名,也可以一目了然的看到该网站的相关信息,比如域名年龄相关备案等,方便站长及时调整网站优化 地址:htt…

    2022年7月14日
    540

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信