物联网嵌入式技术项目教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.4 虚拟机嵌入式开发相关知识

虚拟机(Virtual Machine,VM)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有内存、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。

1.资源配置

虚拟机资源涉及多个方面,如CPU、内存、网络以及磁盘。在规划虚拟机时应该考虑这些资源之间的关系,如果分配资源不合理,将会导致虚拟机内的应用程序性能表现不佳。

(1)CPU

虚拟机的每个虚拟CPU(vCPU)只运行在一个物理核心之上,因此CPU频率越高虚拟机的运行速度也就越高,vCPU数量越多越有助于提升应用的性能表现。如果虚拟机需要占用大量的CPU时间,那么可以考虑为虚拟机分配第二个vCPU,但是为虚拟机分配两个以上vCPU并不一定能让应用运行得更快,因为只有多线程应用才能有效地使用多个vCPU。

(2)RAM

RAM资源通常有限,因此在给虚拟机分配RAM时需要格外小心。物理内存被完全占用后,必须确定哪些虚拟机能够保留物理内存,哪些虚拟机要释放物理内存,这称为“内存回收”。当虚拟机占用的物理内存被回收后,存在的一个风险就是会对虚拟机的性能造成影响。虚拟机被回收的内存越多,相应的风险也就越大。最明智的做法是只为虚拟机分配完成工作所需要的内存。分配额外的内存将会增加回收风险。

(3)网络带宽

网络带宽包括两方面:一是虚拟机和虚拟交换机之间的带宽,二是虚拟交换机与外部网络之间的带宽。对于与外部物理网络的连接,一定要确保主机具备速度最快的物理网卡。进行大量网络传输的虚拟机,虚拟机以及数据包的传输都会消耗CPU时间。因此,运行在CPU受限的服务器之上的虚拟机由于CPU无法快速响应请求可能会面临网络吞吐量不高的情况。

(4)磁盘性能

磁盘性能往往是制约虚拟机性能的关键因素。虚拟机磁盘性能受阵列磁盘数量、类型以及运行在其上的虚拟机数量的限制。因为集中地共享存储架构将导致通过同一位置访问所有的虚拟机磁盘,阵列的存储控制器以及磁盘过载情况很容易出现,只剩下虚拟机在等待存储的响应。虚拟机等待磁盘I/O、虚拟机CPU空闲对性能的影响有很大不同。等待I/O的虚拟机无法做其他工作,因此高I/O等待时间意味着性能肯定会下降。进行周密的存储设计以避免上述情况的发生至关重要。

2.主要用途

(1)演示不同环境

虚拟机上可以安装各种演示环境,便于进行各种演示。

(2)减小主机程序负担

为保证主机的快速运行,减少安装不必要不常用的程序,偶尔使用的程序或者测试用的程序可以在虚拟机上运行。

(3)方便复杂性、保密性应用

虚拟机可避免每次重新安装系统,可将不常用且保密要求较高的软件(如银行类的常用工具)单独放在一个环境下运行。

(4)方便特殊应用测试

如果需要测试不熟悉的应用,可以在虚拟机中随便安装和彻底删除。

(5)同时使用多个操作系统

虚拟机同时使用不同操作系统十分方便,如Linux、Mac等系统都有多个不同版本,直接在主机中安装代价极大,且无法同时使用和快速切换,这时可以采用虚拟机,安装不同的操作系统。

3.常用虚拟机软件

(1)VMware Workstation

1999年,VMware公司发布了第一款产品——基于主机模型的虚拟机VMware Workstation。2001年又推出了面向服务器市场的VMware GSX Server和VMware ESX Server。

VMware Workstation可以同时运行各种Linux发行版、DOS、Windows的各种版本、UNIX等,甚至可以在同一台性能强大的计算机上安装多个Linux发行版、多个Windows版本。

VMware Workstation的优点如下。

1)可同时在同一台PC上运行多个操作系统,每个操作系统都有自己的虚拟机,就如同网络上一个独立的PC。

2)同时运行的两个虚拟机之间可以相互进行对话,一个虚拟机处于全屏模式,另一个虚拟机在后台运行。

3)在虚拟机上安装同一种操作系统的多个发行版,不需要重新对硬盘进行分区。

4)虚拟机之间共享文件、应用、网络资源等。

5)可以运行客户机-服务器(Client-Server,C/S)方式的应用,也可以在同一台计算机上使用另一台虚拟机的所有资源。

(2)Parallels Desktop

Parallels Desktop是适用于Mac OS平台的虚拟机解决方案。可同时在一台Mac OS计算机上随时访问Windows和Mac两个系统上的应用程序而无须重启。相较VMware,Parallels Desktop无须重启,在两个系统同时运行期间可以实现文件互传、素材共用。

此外,该虚拟机的融合模式(Coherence)支持不显示Windows界面但是仍可使用Windows应用程序,或者在Mac OS上保留熟悉的Windows背景与“开始”菜单。同时运行Windows与Mac OS两种应用程序的方式都不会对性能产生任何影响。

多虚拟机支持Windows、Linux、Chrome OS、Mac OS、Android OS等。

Parallels Desktop优点如下。

1)无缝集成,在Mac设备上也能使用Siri与Cortana,它还支持iCloud、Dropbox与Google Drive。

2)性能较好,比如暂停虚拟机与重启操作系统的速度较VMware Fusion 8.5快了3倍,可以实时优化虚拟磁盘,只有在实际需要时才会占用空间。

3)方便开发,免费为Docker、Jenkins和Chef等常用开发工具提供支持。

(3)Virtual PC

Virtual PC是微软公司的虚拟化技术。允许在一个计算机上同时运行多个PC操作系统,包括DOS、Windows、Windows Server 2003、UNIX、Linux等,比如在Windows里运行Windows和Linux。在较新的操作系统中运行Virtual PC虚拟机可以为传统应用提供安全环境以保持兼容性,它可以保存重新配置时间,方便相关支持和开发工作。

Virtual PC的优点如下。

1)兼容性好,和大多数Windows系统的兼容性是最好的。

2)占用内存小,使用方便。

3)对网络的支持好,安装完成系统后配置一下IP即可上网。

(4)Oracle VirtualBox

VirtualBox是由Oracle公司出品的软件。

VirtualBox主要支持的操作系统包括:Linux、Mac OS、OpenSolaris、Solaris 10、Windows等。

值得注意的是VirtualBox是开源软件,目前新版本已更新至VirtualBox 6.1.32。

VirtualBox的优点如下。

1)小巧精悍,安装文件下载方便,安装占用的硬盘空间较小。

2)官网发布支持更新更多操作系统类型的速度比VMware WorkStation更快。

3)开源免费。