免费手机虚拟机哪个好用 手机虚拟机哪个好用可以玩和平精英
文章插图

文章插图
是时候聊一下虚拟机了 , 因为我们后面即将聊的 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-i386man 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内核视频教程文本资料免费获取后台私信【内核】 。
上一节展示的 QEMU 是一个强大的虚拟机软件 , 它可以完全以软件的形式模拟出一台完整的电脑所需的所有硬件 , 甚至是模拟出不同架构的硬件 , 在这些虚拟的硬件之上 , 可以安装完整的操作系统 。QEMU 的运行模式如下图:
其实 VirtualBox 也是采取的这种内核模块加速的模式 。我之所以这么说 , 是因为在安装 VirtualBox 时 , 它会要求安装 DKMS 。如下图:
KVM 和 QEMU 是相辅相成的 , QEMU 可以使用 KVM 内核模块加速 , 而 KVM 需要使用 QEMU 运行虚拟机 。从上图可以看到 , 如果要使用 Ubuntu 的包管理软件安装 KVM , 其实安装的就是 qemu-kvm 。而 qemu-kvm 并不是一个什么很复杂的软件包 , 它只包含很少量几个文件 , 如下图:
最后 , 虚拟机运行的效果图如下:
可以这么说 , 如果没有 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 后 , 可以考察一下它所遵守的我之前提到的“经典架构” , 命令和运行结果如下图:
启动 VirtualBox , 新建虚拟机和安装操作系统的过程我就不多说了 , 图形界面很强大 , 一步一步执行准没错 。安装完 WinXP 后 , 运行效果如下图:
VirtualBox 功能非常强大 , 单凭我这一篇博文是不可能学会的 。好在是我这一个系列一直都是秉承“授人以鱼不如授人以渔”的原则 , 一直都是指导折腾 Linux 系统的方法论 , 并贴图让没有亲自动手机会的人也对 Linux 系统有一个直观的感受 , 也一直指出从哪里可以找到相应的学习资料 。用 dpkg -L 命令 , 就可以找出我前面提到的 VirtualBox 自带的长达369页的文档 , 使用 Ubuntu 自带的 evince 阅读器阅读之 , 如下图:
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的架构如下图:
既然 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 xensudo aptitude install xen-hypervisor-4.4-amd64
传说在旧版本的 Xen Hypervisor 上只能运行经过修改过的 Linux 内核 。但是在目前的版本中不存在该问题 。我机器上的 Ubuntu 14.10 系统不经任何修改 , 就可以当成 Domain 0 中的系统运行 。至于是否让该系统运行于 Xen Hypervisor 上 , 在启动时可以选择 , 如下图:下面来测试一下 Xen 虚拟机的运行效果 。通过前文的探讨 , 可以看出一个虚拟机的运行需要两个要素:一是一套虚拟的硬件系统 , 二是一个包含了操作系统的磁盘镜像 。QEMU 虚拟机关于硬件的配置全由命令行指定 , VirtualBox 虚拟机的硬件配置存在于配置文件中 , 而 Xen 呢 , 它也存在于配置文件中 , 这个配置文件要我们自己写 。至于磁盘镜像 , 还是复用我之前创建的那个 WinXP.img 吧 , 记住 , 它是 qcow2 格式的 。
先进入我主目录的 virtual-os 目录 , ls 看一下 , 里面有我之前创建的 WinXP.img 。然后 , 我们创建一个 WinXP_Xen.hvm 配置文件 , 其内容如下:
builder = "hvm"name = "WinXP_Xen.hvm"memory = 2048vcpus = 2disk = [ '/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”的虚拟机 。运行效果如下图:
【免费手机虚拟机哪个好用 手机虚拟机哪个好用可以玩和平精英】我觉得 , Xen 虚拟机不应该是桌面用户的首选 , 因为它架构比较奇异不容易理解 , 可能因内核升级而出现不稳定 , 不能充分发挥桌面硬件的性能 , 如不能使用 Nvidia 的显卡;桌面用户还是应该首选 VirtualBox 。企业及客户可以考虑 Xen , 因为它可以提供较好的性能和隔离性 , 企业级用户不需要桌面用户那么多的功能 , 所以可以把 Domain 0 做到很薄 , 可以完全不要图形界面 , 也不用经常升级内核 , 甚至可以选择一个经过修改优化的内核 , 这样就可以在一套硬件上运行尽可能多的虚拟机 。
- 磁力连接手机怎么用 手机如何使用磁力连链接
- 几款免费流程图制作软件 制作流程图的免费软件
- 最干净的电脑管理软件免费 最干净的电脑软件下载
- 图片修改软件app 免费修改图片的软件
- 手机怎样申请qq账号 怎么注册qq号
- 手机二维码识别软件 手机二维码识别器
- 相册视频制作软件免费版电脑 视频相册制作软件免费版下载
- 类似红警的单机游戏 红色警戒手机版单机有吗
- 什么软件可以看全球高考小说 全球高考小说免费阅读
- 音频分析软件手机版 手机音频分析app